Jarvis OJ

Jarvis OJ - 软件密码破解-1 -Writeup

转载请标明出处http://www.cnblogs.com/WangAoBo/p/7243801.html

记录这道题主要是想记录一下动态调试的过程

题目:

分析:

刚开始拿到这道题目还是想用IDA静态分析,但无奈函数太多找不到关键函数,看别人Writeup也只是说关键函数为sub_401BB0但不知道怎么找到的,欢迎知道的表哥留言告知。

于是尝试拿OD动态调试,用OD打开,中文搜索引擎 -> 搜索UNICODE,可以在搜索到的字符串中找到你赢了

双击定位到对应汇编

向上翻,不远处就能看到关键判断和跳转

因此推测再向上边几行为关键代码,下断点动态调试逐句分析可得:

整个逻辑即为:

将输入与CTF100.005777F8亦或,再把亦或后的结果与给定的值进行比较

mov ecx, CTF100.005777FB右键 -> 数据窗口中跟随 -> 立即数即可看到CTF100.005777F8的值

因此可得到如下解题脚本:

1 l1 = [0x28, 0x57, 0x64, 0x6B, 0x93, 0x8F, 0x65, 0x51, 0xE3, 0x53, 0xE4, 0x4E, 0x1A, 0xFF]
2 l2 = [0x1B, 0x1C, 0x17, 0x46, 0xF4, 0xFD, 0x20, 0x30, 0xB7, 0x0C, 0x8E, 0x7E, 0x78, 0xDE]
3 
4 ans = ''
5 for i, j in zip(l1, l2):
6     ans += chr(i ^ j)
7 
8 print ans

 

运行得到flag

于是flag即为3Ks-grEaT_j0b!

你可能感兴趣的:(Jarvis OJ)