我是名net程序员,最近在学习用od找call ,自己用vs2010写了一个小程序想学习用od找到call
我先声明一下我找call 目的是学习游戏外挂开发,会用到远程注入的汇编功能,这需要了解call的每一个参数是如何来的
代码是用户vb2010.net4写的一个程序
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show("ok")
End Sub
End Class
目的也就是找到messagebox的call ,用od 打开程序下断以后找到了
7533EA5F >/$ 8BFF MOV EDI,EDI
7533EA61 |. 55 PUSH EBP
7533EA62 |. 8BEC MOV EBP,ESP
7533EA64 |. 833D 749A3475>CMP DWORD PTR DS:[75349A74],0
7533EA6B |. 74 24 JE SHORT USER32.7533EA91
7533EA6D |. 64:A1 1800000>MOV EAX,DWORD PTR FS:[18]
7533EA73 |. 6A 00 PUSH 0
7533EA75 |. FF70 24 PUSH DWORD PTR DS:[EAX+24]
7533EA78 |. 68 A49E3475 PUSH USER32.75349EA4
7533EA7D |. FF15 34142E75 CALL DWORD PTR DS:[<&KERNEL32.Interlocke>; KERNEL32.InterlockedCompareExchange
7533EA83 |. 85C0 TEST EAX,EAX
7533EA85 |. 75 0A JNZ SHORT USER32.7533EA91
7533EA87 |. C705 A09E3475>MOV DWORD PTR DS:[75349EA0],1
7533EA91 |> 6A 00 PUSH 0 ; /LanguageID = 0 (LANG_NEUTRAL)
7533EA93 |. FF75 14 PUSH DWORD PTR SS:[EBP+14] ; |Style
7533EA96 |. FF75 10 PUSH DWORD PTR SS:[EBP+10] ; |Title
7533EA99 |. FF75 0C PUSH DWORD PTR SS:[EBP+C] ; |Text
7533EA9C |. FF75 08 PUSH DWORD PTR SS:[EBP+8] ; |hOwner
7533EA9F |. E8 49FFFFFF CALL USER32.MessageBoxExW ; \MessageBoxExW
这是我要找的call
7533EAA4 |. 5D POP EBP
7533EAA5 \. C2 1000 RETN 10
几经测试也确定就是这里的call了,问题是esp和ebp都是指针,所有压入堆栈的的参数都会变化,我如何跟踪,我的天啊,高手啊救救我吧
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)