欢迎光临
我们一直在努力

上海扫描三维逆向公司,上海逆向行驶

1625-5 王子昂 总结《2017年11月4日》 【连续第400天总结】
A. 上海邀请赛CTF(WP-Re)
B.

Reverse Crackme

查壳发现有NsPack,百度下来脱壳机搞定
IDA反编译看到算法
vps云服务器
将两个数组Dump下来写脚本即可:

d = [116, 104, 105, 115, 95, 105, 115, 95, 110, 111, 116, 95, 102, 108, 97, 103]f = [18, 4, 8, 20, 36, 92, 74, 61, 86, 10, 16, 103, 0, 65, 0, 1, 70, 90, 68, 66, 110, 12, 68, 114, 12, 13, 64, 62, 75, 95, 2, 1, 76, 94, 91, 23, 110, 12, 22, 104, 91, 18]for i in range(42): print(chr(f[i]^d[i%16]), end=”) Juckcode

反编译不全,在OD中运行跟踪发现有大量花指令阻碍F5

不会脚本去花,于是一步一步跟
先打开”flag”文件,失败则报错,于是创建一个文件给他
接着在sub_401350函数中进行了大量运算,后来看结果发现是b64
再往下看,发现进行了四次b64+略微处理的操作
观察sub_401350的call可以发现四次调用b64的地址:

B64的调用向上翻一点就能找到,分别是+0x40、<<7和-0x9e
得到4个字符串以后在内存中可以看到:

然后将它们进行了逐个字符的拼接:

然后对它进行b64decode以后,通过sprintf(“%x”)以十六进制形式写入字符串,最后每个字符+0x10后输出

加密看起来很复杂,解密就很简单了,因为得到-0x10再b64encode以后的合成字符串只要提取其中一部分,组成之前4个字符串中的任意一个就可以解出明文了

于是写出逆变换脚本:

s = “FFIF@@IqqIH@sGBBsBHFAHH@FFIuB@tvrrHHrFuBD@qqqHH@GFtuB@EIqrHHCDuBsBqurHH@EuGuB@trqrHHCDuBsBruvHH@FFIF@@AHqrHHEEFBsBGtvHH@FBHuB@trqrHHADFBD@rquHH@FurF@@IqqrHHvGuBD@tCDHH@EuGuB@tvrrHHCDuBD@tCDHH@FuruB@tvrIH@@DBBsBGtvHH@GquuB@EIqrHHvGuBsBtGEHH@EuGuB@tvrIH@BDqBsBIFEHH@GFtF@@IqqrHHEEFBD@srBHH@GBsuB@trqrHHIFFBD@rquHH@FFIuB@tvrrHHtCDB@@”s1=””for i in s: s1 += (chr(ord(i)-0x10))s2 = bytes.fromhex(s1)s3 = base64.b64encode(s2)s4 = ”for i in range(len(s3)//4): s4 += hex(s3[i*4])[2:]s4 = bytes.fromhex(s4)for i in range(4-(len(s4)%4)): s4 += b’=’s5 = base64.b64decode(s4)print(s5)

C. 明日计划
Misc-clemency的WP

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。