2018第四届上海网络安全easy_pyc 的新手复现

2018-11-05  本文已影响0人  ryh000

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}

上一篇 下一篇

猜你喜欢

热点阅读