论坛一个简单ExploitMe的体验过程
帖子地址https://www.chinapyg.com/forum.php?mod=viewthread&tid=70973&extra=page%3D1首次运行会写dat文件test.dat
试修改 test.dat使程序溢出
OD载入直接查找字符串,找到“OK, Successful!”,双击进入,在上面一个地址0040182处下断,关键部分如下
0040182D .E8 36A40200 CALL ExploitM.0042BC68
00401832 .8B8D ACFDFFFF MOV ECX, DWORD PTR SS: ; |ECX<---取第二个字符
00401838 .8B95 B0FDFFFF MOV EDX, DWORD PTR SS: ; |EDX<---取第一个字符
0040183E .89C8 MOV EAX, ECX ; |
00401840 .C1E0 08 SHL EAX, 0x8 ; |
00401843 .29C8 SUB EAX, ECX ; |
00401845 .C1E2 0A SHL EDX, 0xA ; |
00401848 .01C2 ADD EDX, EAX ; |
0040184A .8B8D A8FDFFFF MOV ECX, DWORD PTR SS: ; |ECX<---取第三个字符
00401850 .8B85 A4FDFFFF MOV EAX, DWORD PTR SS: ; |EAX<---取第四个字符
00401856 .8D0481 LEA EAX, DWORD PTR DS: ; |
00401859 .C1E0 07 SHL EAX, 0x7 ; |
0040185C .29C2 SUB EDX, EAX ; |
0040185E .81C2 92070000 ADD EDX, 0x792 ; |
00401864 .66:85D2 TEST DX, DX ; |
00401867 .0F85 5D040000 JNZ ExploitM.00401CCA ; |
0040186D .C70424 000000>MOV DWORD PTR SS:, 0x0 ; |
00401874 .31C0 XOR EAX, EAX ; |
00401876 .894424 0C MOV DWORD PTR SS:, EAX ; |
0040187A .B8 0B304400 MOV EAX, ExploitM.0044300B ; |TIP:
0040187F .894424 08 MOV DWORD PTR SS:, EAX ; |
00401883 .B8 33304400 MOV EAX, ExploitM.00443033 ; |OK, Successful!
00401888 .894424 04 MOV DWORD PTR SS:, EAX ; |
0040188C >E8 07440100 CALL <JMP.&USER32.MessageBoxA> ; \MessageBoxA
算法过程:假设txt中的四个字符分别是M,N,P,Q,则他们满足下面的关系(M,N,P,Q<0xFF)
(N00-N)+(SHL M,0xA)-=0x792 (这是什么语法?{:lol:})
不会编程就是悲剧,鼓捣了半天,总算弄出来了(一组:1c 92 d2 50),不正确的地方请多多指正,感谢您看完,结果并不重要,体验过就好
不错!加分鼓励! 貌似很牛逼。 本帖最后由 hoy0a1d 于 2014-3-31 13:22 编辑
代码写的一团糟。。。
页:
[1]