Category Archives: writeups

SWPU cm50 and cm100

cm50 题目下载链接: cm50.zip .net程序用dnspy打开,其实就是一个拨打电话的程序。输入电话号码,然后点击“拨打”键就可以打电话。 用dnspy打开后,关键逻辑在于“拨打”的点击事件里。 首先验证电话号码长度是否为5, 然后再将电话号码逐位跟4异或并与contrast数组比较。由于异或的传递性,我们可以直接拿contrast跟4异或就好了。这里可以得到08067 之后的flag跟输入的电话号码没有关系,而是直接xor1和xor2和4异或得到,结果是greet_08067 xor1 = [86,65,83,85,76,111,6,15,6,0,1] xor2 = [53,55,50,52,60,52,50,51,50,50,50] contrast = [52,60,52,50,51] phoneNum = “” flag = “” for i in range(0,5): contrast[i] ^= 4 phoneNum += chr(contrast[i]) print phoneNum for j in range(0,11): flag … Continue reading

Posted in writeups | Leave a comment

HCTF level1

程序检测了OD,IDA的进程名,也有用IsDebuggerPresent和ntdll!NtQueryInformationProcess来检查调试器 大部分的分析工作都是用IDA静态分析,因为很久没做逆向了,因此光是分析就花了很长时间,写脚本也花了不少时间。因此感觉一般。 题目下载链接: Evr_Q_a1bad588324e19cda44e20fd8cb291b5a735470ef4736f7969aa30fe4ec10ac3.zip import string enc_flag = [0x1E, 0x15, 0x2, 0x10, 0x0D, 0x48, 0x48, 0x6F, 0xDD, 0xDD, 0x48, 0x64, 0x63, 0xD7, 0x2E, 0x2C, 0xFE, 0x6A, 0x6D, 0x2A, 0xF2, 0x6F, 0x9A, 0x4D, 0x8B, 0x4B, 0xCF, 0xBF, 0x4F, 0x47, 0x4E, 0x13, … Continue reading

Posted in writeups | Leave a comment

Base64自定义字符集的一道逆向

这次分析的是WhiteHat Grand Prix Qualification Round 2015的一道100分的逆向题Dong Van. 这道题的关键在于使用了自定义编码的Base64来处理字符串. 文件下载地址: re100_35d14595b17756b79556f6eca775c31a 分析 下载下来是7z压缩文件, 用7z解压. 使用file命令查看文件属性, 是一个x64的ELF可执行文件 ➜ dong-van chmod +x Re100 ➜ dong-van file Re100 Re100: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, … Continue reading

Posted in writeups | Leave a comment

武汉国家安全周线下Writeup

逆向体验 这次的逆向题都是老套路,并没有很亮的保护技术.所以也就有机会让我这个菜鸡也能去分析清楚.所以也就有了以下的writeup.这里贴出此处逆向题的题目:传送门 Re200 程序没有加壳,也没有任何反跟踪技术.就是赤裸裸的代码逆向.这里贴出main函数 int __cdecl main(int argc, const char **argv, const char **envp) { if ( argc != 2 || strlen(argv[1]) > 0x18 ) { result = 0; } else { memcpy(&dword_404410, argv[1], strlen(argv[1])); v3 = sub_401000(); Handles = … Continue reading

Posted in writeups | Leave a comment