鱼C论坛

 找回密码
 立即注册
查看: 3558|回复: 3

[已解决]请帮我看看这个call

[复制链接]
发表于 2017-4-12 19:43:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
附件是我要找的call我要是想注入这个call他是不是有参数应该怎么写呀
最佳答案
2017-4-13 12:58:44
eax ecx edx 都传递有效参数 然后push -1 push 0 然后push eax push ecx push edx 最后call 16a3b80

这个call实际上就是 一个5个参数的函数,具体每个参数的含义,还要通过自己具体调试来理解
由于函数内部未实现堆栈平衡,所以call完之后要add esp,0x14来平衡堆栈
如果你要调用这个call 必须先构造eax ecx edx指向地址里面的值(并且保证真实有效),然后
mov eax,xxxxxxxx
mov ecx,xxxxxxxx
mov edx,xxxxxxxx
push -1
push 0
call 0x16a3b80
add esp,0x14

xxxxxxxx代表你自己构造的数据地址
QQ截图20170412194208.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-4-12 19:43:33 | 显示全部楼层
016A3B7E   .  C3            retn
016A3B7F      CC            int3
016A3B80  /$  51            push ecx                                 ;  有可能是入口
016A3B81  |.  E8 6A420000   call nspr4.016A7DF0
016A3B86  |.  8B88 DC000000 mov ecx,dword ptr ds:[eax+0xDC]
016A3B8C  |.  F7C1 00100000 test ecx,0x1000
016A3B92  |.  75 22         jnz Xnspr4.016A3BB6
016A3B94  |.  F6C1 02       test cl,0x2
016A3B97  |.  74 1D         je Xnspr4.016A3BB6
016A3B99  |.  83E1 FD       and ecx,0xFFFFFFFD
016A3B9C  |.  6A 00         push 0x0
016A3B9E  |.  68 97E8FFFF   push -0x1769
016A3BA3  |.  8988 DC000000 mov dword ptr ds:[eax+0xDC],ecx
016A3BA9  |.  E8 F27EFFFF   call nspr4.PR_SetError
016A3BAE  |.  83C4 08       add esp,0x8
016A3BB1  |.  83C8 FF       or eax,0xFFFFFFFF
016A3BB4  |.  59            pop ecx
016A3BB5  |.  C3            retn
016A3BB6  |>  83B8 F0000000>cmp dword ptr ds:[eax+0xF0],0x0
016A3BBD  |.  74 14         je Xnspr4.016A3BD3
016A3BBF  |.  6A 00         push 0x0
016A3BC1  |.  68 9BE8FFFF   push -0x1765
016A3BC6  |.  E8 D57EFFFF   call nspr4.PR_SetError
016A3BCB  |.  83C4 08       add esp,0x8
016A3BCE  |.  83C8 FF       or eax,0xFFFFFFFF
016A3BD1  |.  59            pop ecx
016A3BD2  |.  C3            retn
016A3BD3  |>  56            push esi
016A3BD4  |.  8B7424 14     mov esi,dword ptr ss:[esp+0x14]
016A3BD8  |.  C74424 04 000>mov dword ptr ss:[esp+0x4],0x0
016A3BE0  |.  85F6          test esi,esi
016A3BE2  |.  7E 68         jle Xnspr4.016A3C4C
016A3BE4  |.  53            push ebx
016A3BE5  |.  8B5C24 14     mov ebx,dword ptr ss:[esp+0x14]
016A3BE9  |.  55            push ebp
016A3BEA  |.  8B6C24 24     mov ebp,dword ptr ss:[esp+0x24]
016A3BEE  |.  57            push edi
016A3BEF  |.  8B7C24 18     mov edi,dword ptr ss:[esp+0x18]
016A3BF3  |>  A1 68566B01   /mov eax,dword ptr ds:[0x16B5668]
016A3BF8  |.  8378 04 04    |cmp dword ptr ds:[eax+0x4],0x4
016A3BFC  |.  7C 17         |jl Xnspr4.016A3C15
016A3BFE  |.  8B4F 04       |mov ecx,dword ptr ds:[edi+0x4]
016A3C01  |.  8B51 18       |mov edx,dword ptr ds:[ecx+0x18]
016A3C04  |.  56            |push esi
016A3C05  |.  53            |push ebx
016A3C06  |.  52            |push edx
016A3C07  |.  57            |push edi
016A3C08  |.  68 B0FD6A01   |push nspr4.016AFDB0                     ;  ASCII "send: fd=%p osfd=%d buf=%p amount=%d"
016A3C0D  |.  E8 0E07FFFF   |call nspr4.PR_LogPrint
016A3C12  |.  83C4 14       |add esp,0x14
016A3C15  |>  8B4424 24     |mov eax,dword ptr ss:[esp+0x24]
016A3C19  |.  55            |push ebp
016A3C1A  |.  50            |push eax
016A3C1B  |.  56            |push esi
016A3C1C  |.  53            |push ebx
016A3C1D  |.  57            |push edi
016A3C1E  |.  E8 3D600000   |call nspr4.016A9C60
016A3C23  |.  83C4 14       |add esp,0x14
016A3C26  |.  85C0          |test eax,eax
016A3C28  |.  7C 17         |jl Xnspr4.016A3C41
016A3C2A  |.  8B4F 04       |mov ecx,dword ptr ds:[edi+0x4]
016A3C2D  |.  014424 10     |add dword ptr ss:[esp+0x10],eax
016A3C31  |.  8379 04 00    |cmp dword ptr ds:[ecx+0x4],0x0
016A3C35  |.  75 12         |jnz Xnspr4.016A3C49
016A3C37  |.  2BF0          |sub esi,eax
016A3C39  |.  03D8          |add ebx,eax
016A3C3B  |.  85F6          |test esi,esi
016A3C3D  |.^ 7F B4         \jg Xnspr4.016A3BF3
016A3C3F  |.  EB 08         jmp Xnspr4.016A3C49
016A3C41  |>  C74424 10 FFF>mov dword ptr ss:[esp+0x10],-0x1
016A3C49  |>  5F            pop edi
016A3C4A  |.  5D            pop ebp
016A3C4B  |.  5B            pop ebx
016A3C4C  |>  8B15 68566B01 mov edx,dword ptr ds:[0x16B5668]
016A3C52  |.  837A 04 04    cmp dword ptr ds:[edx+0x4],0x4
016A3C56  |.  5E            pop esi
016A3C57  |.  7C 11         jl Xnspr4.016A3C6A
016A3C59  |.  8B0424        mov eax,dword ptr ss:[esp]
016A3C5C  |.  50            push eax
016A3C5D  |.  68 A4FD6A01   push nspr4.016AFDA4                      ;  ASCII "send -> %d"
016A3C62  |.  E8 B906FFFF   call nspr4.PR_LogPrint
016A3C67  |.  83C4 08       add esp,0x8
016A3C6A  |>  8B0424        mov eax,dword ptr ss:[esp]
016A3C6D  |.  59            pop ecx
016A3C6E  \.  C3            retn
016A3C6F      CC            int3
016A3C70   .  8B4424 0C     mov eax,dword ptr ss:[esp+0xC]
016A3C74   .  8B4C24 08     mov ecx,dword ptr ss:[esp+0x8]
016A3C78   .  8B5424 04     mov edx,dword ptr ss:[esp+0x4]
016A3C7C   .  6A FF         push -0x1
016A3C7E   .  6A 00         push 0x0
016A3C80   .  50            push eax
016A3C81   .  51            push ecx
016A3C82   .  52            push edx
016A3C83   .  E8 F8FEFFFF   call nspr4.016A3B80                      ;  这里断点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-13 10:36:37 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-13 12:58:44 | 显示全部楼层    本楼为最佳答案   
eax ecx edx 都传递有效参数 然后push -1 push 0 然后push eax push ecx push edx 最后call 16a3b80

这个call实际上就是 一个5个参数的函数,具体每个参数的含义,还要通过自己具体调试来理解
由于函数内部未实现堆栈平衡,所以call完之后要add esp,0x14来平衡堆栈
如果你要调用这个call 必须先构造eax ecx edx指向地址里面的值(并且保证真实有效),然后
mov eax,xxxxxxxx
mov ecx,xxxxxxxx
mov edx,xxxxxxxx
push -1
push 0
call 0x16a3b80
add esp,0x14

xxxxxxxx代表你自己构造的数据地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 01:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表