sw3425369 发表于 2017-4-12 19:43:02

请帮我看看这个call

附件是我要找的call我要是想注入这个call他是不是有参数应该怎么写呀

sw3425369 发表于 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:
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:,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:,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:
016A3BD8|.C74424 04 000>mov dword ptr ss:,0x0
016A3BE0|.85F6          test esi,esi
016A3BE2|.7E 68         jle Xnspr4.016A3C4C
016A3BE4|.53            push ebx
016A3BE5|.8B5C24 14   mov ebx,dword ptr ss:
016A3BE9|.55            push ebp
016A3BEA|.8B6C24 24   mov ebp,dword ptr ss:
016A3BEE|.57            push edi
016A3BEF|.8B7C24 18   mov edi,dword ptr ss:
016A3BF3|>A1 68566B01   /mov eax,dword ptr ds:
016A3BF8|.8378 04 04    |cmp dword ptr ds:,0x4
016A3BFC|.7C 17         |jl Xnspr4.016A3C15
016A3BFE|.8B4F 04       |mov ecx,dword ptr ds:
016A3C01|.8B51 18       |mov edx,dword ptr ds:
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:
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:
016A3C2D|.014424 10   |add dword ptr ss:,eax
016A3C31|.8379 04 00    |cmp dword ptr ds:,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:,-0x1
016A3C49|>5F            pop edi
016A3C4A|.5D            pop ebp
016A3C4B|.5B            pop ebx
016A3C4C|>8B15 68566B01 mov edx,dword ptr ds:
016A3C52|.837A 04 04    cmp dword ptr ds:,0x4
016A3C56|.5E            pop esi
016A3C57|.7C 11         jl Xnspr4.016A3C6A
016A3C59|.8B0424      mov eax,dword ptr ss:
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:
016A3C6D|.59            pop ecx
016A3C6E\.C3            retn
016A3C6F      CC            int3
016A3C70   .8B4424 0C   mov eax,dword ptr ss:
016A3C74   .8B4C24 08   mov ecx,dword ptr ss:
016A3C78   .8B5424 04   mov edx,dword ptr ss:
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                      ;这里断点

zlj19931010 发表于 2017-4-13 10:36:37

{:10_254:}

machimilk 发表于 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代表你自己构造的数据地址
页: [1]
查看完整版本: 请帮我看看这个call