pycdc的安装
git clone https://github.com/zrax/pycdc.git
需要将下载下来的源码编译,下载一个编译软件
sudo apt-get install cmake
进入pycdc文件夹
cmake .
sudo make install
sudo ldconfig (就是不管做了什么关于library的变动后,最好都ldconfig一下,不然会出现一些意想不到的结果。不会花太多的时间,但是会省很多的事)
安装完成
运行pycdas分析pyc
./pycdas easy_pyc.pyc
反汇编报错,原因是试图载入一个常量表范围外的常亮,也就是大佬说的越界问题 13091的16进制0x2333,也就大佬说的在16进制编辑器中将2333改为0000
修改后重新反汇编,加载出所有代码
在上次那个指令集对照网址中对照指令集的意思,整理出源码
对照过程如下:
import string
cmp = [ 0, 10,7, 1, 29, 14,7, 22, 22, 31,57,30, 9, 52,27]
s=''
for c in cmp:
for i in string.printable:
if ~ord(i) & 102 | ord(i) & -103==c:
s+=i
break
print s
flag是异或后得到的,所以再异或一次就可以还原
cmp = [ 0, 10,7, 1, 29, 14,7, 22, 22, 31,57,30, 9, 52,27]
for i in cmp:
i=chr((~i&102 ) | (i&103))
print(i,end="")
flag{happy_xoR}
网友评论