小菜鸟一枚 发表于 2019-12-7 15:42

学破解第74天,《攻防世界reverse新手练习区re1分析》

本帖最后由 小菜鸟一枚 于 2019-12-7 15:49 编辑

学破解第74天,《攻防世界reverse新手练习区re1分析》

前言:
一直对黑客充满了好奇,觉得黑客神秘,强大,无所不能,来论坛两年多了,天天看各位大佬发帖,自己只能做一个伸手党。也看了官方的入门视频教程,奈何自己基础太差,看不懂。自我反思之下,决定从今天(2019年6月17日)开始定下心来,从简单的基础教程开始学习,希望能从照抄照搬,到能独立分析,能独立破解。
不知不觉学习了好几个月,发现自己离了教程什么都不会,不懂算法,不懂编程,随着破解学习的深入,越发的觉得自己没有基础,所以从第71天起,开始接触一门编程语言C++,开启新的学习之路。

立帖为证!--------记录学习的点点滴滴


1.为啥选择它呢?当然是因为楼主是个小菜鸟,这道题最简单,就拿它分析分析了!


2.首先将程序跑起来,随便输入一个字符串,了解程序执行流程!

程序要求我们输入正确的flag!


3.丢进OD跑起来,我们知道用户编写的代码在code段(00401000),所以直接Ctrl+G输入00401000,F4来到
00401000   $55            push ebp
00401001   .8BEC          mov ebp,esp
00401003   .83EC 44       sub esp,0x44
00401006   .A1 00504100   mov eax,dword ptr ds:
0040100B   .33C5          xor eax,ebp
0040100D   .8945 FC       mov dword ptr ss:,eax         ;kernel32.BaseThreadInitThunk
00401010      f30f6f05 343e>movdqu xmm0,dqword ptr ds:
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:,xmm0


我们一路F8单步向下走,这里是提示字符串
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:
00401054   .50            push eax                                 ;kernel32.BaseThreadInitThunk
00401055   .68 8C3E4100   push 0448ee96.00413E8C                   ;%s
0040105A   .E8 72000000   call 0448ee96.004010D1


0040105A 这个call要求我们输入flag,我们随便输入个123456,继续单步向下走
00401062   .8D45 DC       lea eax,dword ptr ss:
00401065   .8D4D BC       lea ecx,dword ptr ss:
00401068   >8A11          mov dl,byte ptr ds:
0040106A   .3A10          cmp dl,byte ptr ds:


两个lea传送指令,然后逐字节比较是否相等!
123456是我们输入的值,然后和"DUTCTF{We1c0met0DUTCTF}"比较,不相等就直接跳到失败提示那里了!
所以毫无疑问,flag就是"DUTCTF{We1c0met0DUTCTF}"了。


4.重新运行程序,输入DUTCTF{We1c0met0DUTCTF},得到正确提示!


5.其他方法
1)直接右键搜索中文字符串,就能看到DUTCTF{We1c0met0DUTCTF}字符串
2)使用十六进制编辑器直接搜索flag,就能在附近发现DUTCTF{We1c0met0DUTCTF}字样

总结:楼主是个小菜鸟,离了教程啥都不会!

小菜鸟一枚 发表于 2019-12-9 14:06

taoabsilent 发表于 2019-12-9 13:51
都是在哪里学啊``给点连接`谢谢`

兄弟,你点我主页就看得到了啊:lol
https://www.52pojie.cn/thread-1067012-1-1.html

小菜鸟一枚 发表于 2019-12-7 16:27

meago 发表于 2019-12-7 16:20
楼主很厉害了全自学?
我是个穷屌丝,不自学还能怎么办?好在论坛兄弟姐妹们资源多,大多数资源都能找到!:loveliness:

小菜鸟一枚 发表于 2019-12-7 19:48

fe1yu 发表于 2019-12-7 19:39
零基础编程语言还是汇编和c吧 直接c艹有丶打击积极性
他们说零基础学汇编是作死,而且汇编是真的看的我脑壳发麻{:1_924:},一点都看不懂,还是C++好理解多了,据说java和Python更好入门。

drhust 发表于 2019-12-7 15:48

都七十四天了厉害

tzwwzt 发表于 2019-12-7 15:52

加油,你会越来越厉害的

meago 发表于 2019-12-7 16:20

楼主很厉害了全自学?

Deuez 发表于 2019-12-7 16:33

WePojie 发表于 2019-12-7 16:40

厉害,高手在民间,兴趣是成功的一半

490694561 发表于 2019-12-7 16:47

还是建议做ctf用IDA

小菜鸟一枚 发表于 2019-12-7 16:53

490694561 发表于 2019-12-7 16:47
还是建议做ctf用IDA

大佬,我是小白,不会IDA啊!{:1_923:}

seed9 发表于 2019-12-7 17:08

学习是很枯燥的事。能坚持下来就表示有很大决心了
页: [1] 2 3 4 5 6 7
查看完整版本: 学破解第74天,《攻防世界reverse新手练习区re1分析》