-
-
[原创]看雪CTF2016 第六题
-
发表于: 2016-11-12 14:07 2398
-
来了一题明码比较
在没调试器的情况下,输入假码会访问内存导常而结束程序。
用OD加载,运行输入假码,点注册。OD因为程序异常会停下来,在:
这个时候内存是:
所在停了。
往上面一点就可以看到跳到这里的跳转:
然后在
下断,重新用od启动程序,输入假码,点注册。
程序在下断处停了下来,然后就可以从栈区里得到注册了。
"233"是输入的假码,而 "33053055C3055C2E3030553055C2" 就是真码了。
在没调试器的情况下,输入假码会访问内存导常而结束程序。
用OD加载,运行输入假码,点注册。OD因为程序异常会停下来,在:
00D52282 |> \0102 add dword ptr [edx], eax 00D52284 |. 030405 060708>add eax, dword ptr [eax+9080706] ;停在这一行 00D5228B |. 006A 00 add byte ptr [edx], ch 00D5228E |. FF35 242EE000 push dword ptr [E02E24] ;
这个时候内存是:
ds:[09080707]=??? eax=00000001
所在停了。
往上面一点就可以看到跳到这里的跳转:
00D521B4 |. 50 push eax ;push 真码 00D521B5 |. FF75 D8 push dword ptr [ebp-28] ;push 假码 00D521B8 |. E8 25F7FFFF call 00D518E2 ;这个是比较函数 00D521BD |. 83C4 08 add esp, 8 00D521C0 |. 83F8 00 cmp eax, 0 00D521C3 |. B8 00000000 mov eax, 0 00D521C8 |. 0F94C0 sete al 00D521CB |. 8945 D4 mov dword ptr [ebp-2C], eax 00D521CE |. 8B5D D8 mov ebx, dword ptr [ebp-28] 00D521D1 |. 85DB test ebx, ebx 00D521D3 |. 74 09 je short 00D521DE 00D521D5 |. 53 push ebx 00D521D6 |. E8 B7010000 call 00D52392 00D521DB |. 83C4 04 add esp, 4 00D521DE |> 837D D4 00 cmp dword ptr [ebp-2C], 0 00D521E2 |. 0F84 9A000000 je 00D52282 ;这个是关键跳
然后在
00D521B8 |. E8 25F7FFFF call 00D518E2 ;这个是比较函数
下断,重新用od启动程序,输入假码,点注册。
程序在下断处停了下来,然后就可以从栈区里得到注册了。
030BFBD0 006DBDB8 ASCII "233" 030BFBD4 006D4DE8 ASCII "33053055C3055C2E3030553055C2"
"233"是输入的假码,而 "33053055C3055C2E3030553055C2" 就是真码了。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
看原图
赞赏
雪币:
留言: