171104 逆向-上海CTF(Re)
来源:互联网 发布:js实现的字幕滚动 编辑:程序博客网 时间:2024/05/18 14:26
1625-5 王子昂 总结《2017年11月4日》 【连续第400天总结】
A. 上海邀请赛CTF(WP-Re)
B.
Reverse
Crackme
查壳发现有NsPack,百度下来脱壳机搞定
IDA反编译看到算法
将两个数组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 0
- 171104 逆向-上海CTF(Re)
- 171105 逆向-上海CTF(cLemency)
- 170920 逆向-CTF练习平台(RE-love)
- 171008 逆向-实验吧ctf(300re-bin)
- 171009 逆向-实验吧ctf(250re-apk)
- 南邮CTF逆向题第一道Hello,RE!解题思路
- 170707 逆向-南邮CTF逆向(WxyVM1)
- 170708 逆向-南邮CTF逆向(maze)
- 强网杯ctf pwn&re writeup (部分)
- 171022 逆向-Xp0intCTF(Re)
- 171023 逆向-BDCTF(Re)
- 西普部分CTF题目(逆向)
- 170818 逆向-南邮CTF(WxyVM2)
- 记第一次成功的逆向(ctf)
- 逆向CTF (linux)
- CTF dotNet逆向分析
- 170921 逆向-成信CTF平台(ReverseMe&CLAZZ)
- 171125 逆向-湖湘杯RE
- 蓝桥杯 算法训练 最大最小公倍数
- STM8 IAR中实现类似 位带操作【兼容库函数】
- Oracle之索引、位图索引、物化视图、缓存结果集等性能比拼
- JS数据类型
- spring in action笔记(一)——why spring
- 171104 逆向-上海CTF(Re)
- 《python数据分析组键篇》之numpy
- frameset框架
- 171105 逆向-上海CTF(cLemency)
- 深入浅出UML类图
- Oracle之SQL不等价例子
- 对于Java学习的一些看法,记录心得也是学习的一种方式
- 结合协同过滤和个性化AGENT的增强推荐
- Java学习小结