仿射密码

仿射密码是是加法密码与乘法密码的结合。它一种表单代换密码,字母表的每个字母相应的值使用一个简单的数学函数对应一个数值,再把对应数值转换成字母。加密后字母的大小写不变的。

  • 加密函数:E(x) = (ax + b) (mod m),其中a与m互为质数,这也是能求a逆模的必要条件。
  • 解密函数:D(x) = a^-1(x - b)(mod m),其中 a^-1为a在Zm群的逆元。

当 a = 1时相当于凯撒密码, 其实整个密码就是凯撒密码那种意思,只是加强版吧。

对于求逆元可以直接使用python gmpy2库的 invert() 方法。

Read more »

开始是一道CTF题加了UPX壳, 利用堆栈平衡脱壳,import rec进行IAT修复后,程序不能正常打开了. 后来才知道是开启了ASLR, 关闭后即可打开。 加壳会对PE文件的重定位表进行压缩,在OD直接dump出的程序是丢失重定位表的, 而程序又是开启了ASLR,那程序自然会访问到无效的地址而打不开

Read more »

BUU做题记录(后面做的都继续记录在本文章后面。

Read more »

刚刚接触信息安全在攻防世界等平台刷题的部分记录,让以后来看一下开始的历程。

Read more »

之前做很多题的时候还没有搭blog,随便记录点后面做的简单题。

Read more »

编译问题

由于现在的计算机是64位,而debug是当年在16位的计算机上搞的,在32位计算机中,微软还在系统同增加了debug这个工具,但是到了64位,却没有加,所以我们要自己去下载一个 dosbox 开源的dos模拟器,然后将debug在dosbox中运行。当然这些都是没问题的。问题是:

Read more »

PTA上C语言学习,细节方面有收获的地方与PAT乙级刷题心得。

Read more »

关于memset赋初值

  • 一般我们使用memset都是赋值0作为初始化值,但不能赋值非0嘛?其实是可以的,但仅限于对像字符数组那样的单字节数据。

  • 因为memset是以字节为单位进行一个字节一个字节进行填充的。

Read more »