首页
社区
课程
招聘
[旧帖] 菜鸟求助汇编问题 0.00雪花
发表于: 2015-3-15 23:05 4758

[旧帖] 菜鸟求助汇编问题 0.00雪花

2015-3-15 23:05
4758
0049933C  |.  6A 00         PUSH 0                                   ; /Arg4 = 00000000
0049933E  |.  6A 00         PUSH 0                                   ; |Arg3 = 00000000
00499340  |.  52            PUSH EDX                                 ; |Arg2
00499341  |.  50            PUSH EAX                                 ; |Arg1
00499342  |.  E8 D998FFFF   CALL test.00492C20                   ; \test.00492C20
00499347  |.  8B8E 7C030000 MOV ECX,DWORD PTR DS:[ESI+37C]           ;  DS:[180AE414]=00131544

我是注入dll, call 后如何继续执行下一句 00499347 ???

' _asm{
' MOV EDX,00000000h
' MOV EAX,00000007h
' MOV ECX,0C1140CCh
' push 00000000h
' push 00000000h
' push edx
' push eax
' mov eax,00492C20h
' CALL eax
' leave
' retn 10
' }

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 25
活跃值: (477)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
2
你在CALL之后,不要写其他的就可以了

专业提供汇编16 32疑难解答,汇编教学,逆向教学
2015-3-15 23:12
0
雪    币: 6922
活跃值: (3657)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
表示不能理解
2015-3-15 23:25
0
雪    币: 19
活跃值: (1086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
ret去掉 0x10是4个参数add esp,0x10
还有一个是返回地址要弹出来 add esp,0x14
jmp 00499347
2015-3-15 23:27
0
雪    币: 22
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这样???

' _asm{
' MOV EDX,00000000h
' MOV EAX,00000007h
' MOV ECX,0C1140CCh
' push 00000000h
' push 00000000h
' push edx
' push eax
' mov eax,00492C20h
' CALL eax
' add esp,10h
' add esp,14h
' jmp 00499347h
' }
2015-3-15 23:49
0
雪    币: 20
活跃值: (1182)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
6
已经加群.后面参数还要看上下文吧?需构造出当时的环境...渣渣路过.
2015-3-16 02:57
0
雪    币: 8
活跃值: (120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这种类似自己HOOK函数的方式,或者控制汇编级控制流程,就是要注意堆栈平衡,只要是平衡的,call eax依然是正确的;犯过这种错误飘过;  PS:如果不知道是否平衡了,用OD载入看看就知道了
2015-3-16 08:23
0
雪    币: 102
活跃值: (102)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
这样真可以?你确定?
2015-3-16 09:30
0
雪    币: 102
活跃值: (102)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
9
总之是要平衡栈,函数内平衡还是函数外平衡随你吧,反正是你自己写的函数。不平衡栈直接JMP到目标址也会执行你说的指令,但栈就歪了,可能会对后面的代码造成影响。
2015-3-16 09:32
0
雪    币: 22
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
不可以,不加jmp可正常call的,但call就不执行下一句了,加JMP就崩溃
2015-3-16 10:13
0
雪    币: 166
活跃值: (392)
能力值: ( LV13,RANK:357 )
在线值:
发帖
回帖
粉丝
11
你注入dll最终是要干嘛?  hook? 还是远程call
hook: 不管是jmp,还是ret都可以,
远程call:由于是其他进程发起的,你不知道正确的跳转地址,不能用jmp.只能ret.
  
你的代码贴少了.要处理什么事也没说清楚
2015-3-16 11:40
0
雪    币: 7
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
call时会将下一条指令存入堆栈中,call执行完后,从堆栈中取出下一条指令执行!
2015-3-16 13:24
0
雪    币: 25
活跃值: (477)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
13
MOV EDX,00000000h
' MOV EAX,00000007h
' MOV ECX,0C1140CCh
' push 00000000h
' push 00000000h
' push edx
' push eax
' mov eax,00492C20h
' CALL eax

这样就可以了啊,干嘛还要下面的?
2015-3-17 18:35
0
雪    币: 1626
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
用od看看吧
2015-3-17 18:44
0
雪    币: 25
活跃值: (477)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
15
阿拉基垃圾分类肯德基阿里
2015-3-18 12:08
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
这样会导致堆栈不平衡
2015-3-18 13:34
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
返回地址设置为00499347
2015-3-24 10:35
0
雪    币: 16
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
因为call的过程是,先把下一条指令的地址,压栈,然后跳转到call的地址,去执行,运行到ret时,就返回了
2015-3-24 11:22
0
游客
登录 | 注册 方可回帖
返回
//