本帖最后由 小菜鸟一枚 于 2019-12-7 15:49 编辑
学破解第74天,《攻防世界reverse新手练习区re1分析》
前言:
一直对黑客充满了好奇,觉得黑客神秘,强大,无所不能,来论坛两年多了,天天看各位大佬发帖,自己只能做一个伸手党。也看了官方的入门视频教程,奈何自己基础太差,看不懂。自我反思之下,决定从今天(2019年6月17日)开始定下心来,从简单的基础教程开始学习,希望能从照抄照搬,到能独立分析,能独立破解。
不知不觉学习了好几个月,发现自己离了教程什么都不会,不懂算法,不懂编程,随着破解学习的深入,越发的觉得自己没有基础,所以从第71天起,开始接触一门编程语言C++,开启新的学习之路。
立帖为证!--------记录学习的点点滴滴
1.为啥选择它呢?当然是因为楼主是个小菜鸟,这道题最简单,就拿它分析分析了!
2.首先将程序跑起来,随便输入一个字符串,了解程序执行流程!
程序要求我们输入正确的flag!
3.丢进OD跑起来,我们知道用户编写的代码在code段(00401000),所以直接Ctrl+G输入00401000,F4来到
[Asm] 纯文本查看 复制代码 00401000 $ 55 push ebp
00401001 . 8BEC mov ebp,esp
00401003 . 83EC 44 sub esp,0x44
00401006 . A1 00504100 mov eax,dword ptr ds:[0x415000]
0040100B . 33C5 xor eax,ebp
0040100D . 8945 FC mov dword ptr ss:[ebp-0x4],eax ; kernel32.BaseThreadInitThunk
00401010 f30f6f05 343e>movdqu xmm0,dqword ptr ds:[0x413e34]
00401018 33 db 33 ; CHAR '3'
00401019 C0 db C0
0040101A 68 db 68 ; 欢迎来到DUTCTF呦\n
0040101B . 4C3E4100 dd 0448ee96.00413E4C ; ASCII "欢迎来到DUTCTF呦\n"
0040101F f30f7f45 bc movdqu dqword ptr ss:[ebp-0x44],xmm0
我们一路F8单步向下走,这里是提示字符串
[Asm] 纯文本查看 复制代码 00401038 . E8 3E020000 call 0448ee96.0040127B
0040103D . 68 603E4100 push 0448ee96.00413E60 ; 这是一道很可爱很简单的逆向题呦\n
00401042 . E8 34020000 call 0448ee96.0040127B
00401047 . 68 803E4100 push 0448ee96.00413E80 ; 输入flag吧:
0040104C . E8 2A020000 call 0448ee96.0040127B
00401051 . 8D45 DC lea eax,dword ptr ss:[ebp-0x24]
00401054 . 50 push eax ; kernel32.BaseThreadInitThunk
00401055 . 68 8C3E4100 push 0448ee96.00413E8C ; %s
0040105A . E8 72000000 call 0448ee96.004010D1
0040105A 这个call要求我们输入flag,我们随便输入个123456,继续单步向下走
[Asm] 纯文本查看 复制代码 00401062 . 8D45 DC lea eax,dword ptr ss:[ebp-0x24]
00401065 . 8D4D BC lea ecx,dword ptr ss:[ebp-0x44]
00401068 > 8A11 mov dl,byte ptr ds:[ecx]
0040106A . 3A10 cmp dl,byte ptr ds:[eax]
两个lea传送指令,然后逐字节比较是否相等!
123456是我们输入的值,然后和"DUTCTF{We1c0met0DUTCTF}"比较,不相等就直接跳到失败提示那里了!
所以毫无疑问,flag就是"DUTCTF{We1c0met0DUTCTF}"了。
4.重新运行程序,输入DUTCTF{We1c0met0DUTCTF},得到正确提示!
5.其他方法
1)直接右键搜索中文字符串,就能看到DUTCTF{We1c0met0DUTCTF}字符串
2)使用十六进制编辑器直接搜索flag,就能在附近发现DUTCTF{We1c0met0DUTCTF}字样
总结:楼主是个小菜鸟,离了教程啥都不会! |