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='')
原文地址:https://www.cnblogs.com/zuoanfengxi/p/12933970.html