python | 脚本初识
payload的一点思考
addr= 0x401186
payload=0xf*'a'\
+'bbbb'\
+str(addr)
print (payload)
已下是凯撒密码解密的一个小的脚本,大佬请略过
m='adsafwef'
n=''
offset=1
for i in m:
j=ord(i)+offset
chr(j)
n+=chr(j)
print(n)
求模逆,由于在仿射密码中见过
#coding:utf-8
#求模逆运算
x=11 #求11对于26的模逆
y=26
m=y*1+0*x
n=y*0+1*x
p=0
q=1
while(m!=1 and n!=1):
k=n
h=q
t=int((m/n))
n=m - t*n
q=p - t*q
m=k
p=h
if(m==1 or n==1):
key=q%26
print(key)
m='jackozoo'#密文
k=''
for i in m:
y=ord(i)-ord('a')
x=key*(y-7)%26
x+=ord('a')
k+=chr(x)
print(k) #明文
补充:仿射解密
C=(a*m+b)mod26
a,b为密匙,b<26,m是待加密的字母对应的数字
a与26互素(由欧拉函数可知26*(1-1/2)*(1-1/13)=12)求出互质数的个数
gcd(a,26)=1,密匙空间=26*12
先求11对26的模逆: 11^-1mod26 = 19 .
求法:
26=1*26+0*11
11=0*26+1*11|2
4=1*26-2*11|2
3=-2*26+5*11|1
1=3*26-7*11
-7%26=19(相当于-7+26)
可知a^-1=19(a的逆元)
故解密变换为: x = 19(y-7) mod 26 ;
https://www.cnblogs.com/ZhouL3777/archive/2012/12/30/2839702.html
print不换行
print(,end='')
zer0_1s