2020年第二届“网鼎杯”网络安全大赛 青龙组 Writeup模板 0x00 题目名称bang操作内容: 简单加固
2020网鼎逆向题+WP
提取出dex文件,之后用dex2jar工具将dex转换成jar 利用JADX可以看到flag如下图
2020网鼎逆向题+WP
FLAG值: flag{borring_things} 0x01 题目名称signal操作内容: 虚拟机类题目,找到成功地址(0x40179E)和失败地址(0x4016E6) 利用angr暴力破解,脚本如下图:
2020网鼎逆向题+WP
结果如下图
2020网鼎逆向题+WP
FLAG值: flag{757515121f3d478} 0x01 题目名称jocker操作内容:SMC自解密 IDA打开发现main函数栈指针不正确,修复后如图
2020网鼎逆向题+WP
其中encrypt函数被加密,通过 异或0x41解密 写IDA脚本如下 #include <idc.idc> static main() { auto addr = 0x401500; auto i = 0; for(i=0;i!=186;i++) { PatchByte(addr+i,Byte(addr+i)^0x41); } Message("ojbk\n"); } 解密之后重建 encrypt函数如下图
2020网鼎逆向题+WP
写解密脚本获得前19位flag a=[0x0000000E, 0x0000000D, 0x00000009,0x00000006, 0x00000013, 0x00000005, 0x00000058, 0x00000056, 0x0000003E,0x00000006, 0x0000000C, 0x0000003C, 0x0000001F, 0x00000057, 0x00000014,0x0000006B, 0x00000057, 0x00000059, 0x0000000D] b=b'hahahaha_do_you_find_me?' for i in range(19): print(chr(a^b),end='') #flag{d07abccf8a410c 最后5位flag通过分析得知是通过main函数中的finally验证,修复后的finally函数如下
2020网鼎逆向题+WP
其中(*a1!=37)==v9不清楚什么意思,查看汇编猜测是跟v3到v7取值有关,尝试异或爆破,发现一组解“b37a}”类似缺失的最后5位,提交flag验证正确,爆破脚本如下 s='' for i in range(0xff): for x in [37,116,112,38,58]: s+=chr(x^i) print(s) s='' 后续发现是跟71异或 FLAG值: flag{d07abccf8a410cb37a}
完整WORD版WP和题目备份在附件,包括一个0解的安卓逆向 |