超級詳細找CALL寫CALL教程_第1頁
超級詳細找CALL寫CALL教程_第2頁
超級詳細找CALL寫CALL教程_第3頁
超級詳細找CALL寫CALL教程_第4頁
超級詳細找CALL寫CALL教程_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、精選優(yōu)質(zhì)文檔傾情為你奉上精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)專心專注專業(yè)精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)原創(chuàng)超級詳細找CALL寫CALL教程首先說明,這個教程以一個找CALL的練習程序為例子。之所以不拿游戲,因為游戲找CALL時間長了,不適合做教程,而且本練習涵蓋參數(shù)。我將說明為什么這么調(diào)用,為什么這么寫! 好的。偶們好的,偶們這節(jié)課需要用到的程序為【wygailf】制作的一個找CALL測試程序。首先感謝他! 這個就是我們用到的程序,OK,打開他并且用OD附加進程! 并使其進入“運行”狀態(tài) 好的,下面我沒開始找CALL,首先說明一下,CTRL+F9這個是“運行到返回”。為什么要按這個按鈕?

2、就我的理解,假設把程序比做很多層的一個盒子,而CALL就是我們要從盒子里拿出來的東西。 那么,如果我們想拿出來CALL,怎么辦?當然是打開盒子,取出盒子,再打開盒子,取出盒子而這個CTRL+F9就是這個打開盒子到取出盒子的過程。運行到返回,顧名思義,就是運行到RET(返回)截止。 而這個RET也正是跳出本層的一個關(guān)鍵點。每一個RET都有可能是一層。所以這樣也就解釋了為什么有的時候按三下CTRL+F9和四下CTRL+F9的原因了。 好,說的就這些。下面LETS GO! 我們首先下斷點bp send。 然后回車。如果不確定自己是否成功的下了斷點??梢栽贠D中按ALT+B來查看 好的,這個就是我們下

3、的斷點了。始終就是斷點有效,也可以暫停斷點。選擇一個斷點,敲空格。這個斷點就變成了“禁用”。這樣就算暫停了斷點。OK這里不再贅述,我們開始。 = 首先,我們來個HP藥水試試! 在這里選擇吃藥。然后OD會斷下! 這里是程序斷下的地方,我們可以看到下方有如下注釋: SEND來自說明這里是send函數(shù)被斷開的地方。 繼續(xù),CTRL+F9我每一步都會記錄下來,一點一點給新手解釋為什么! 上圖是我按下第一次CTRL+F9之后轉(zhuǎn)到的RET。這里再順便說一句。看到這里的RET 10了沒有。這里是RET 10就是有4個參數(shù)的RET,一個參數(shù)占4個字節(jié)。那么按照這么說來應該是 RET 16才對啊。其實 這里的1

4、0是16進制的10,那么16=10(16進制)=4x4所以這里是RET 10。好,下面說正題:看到上面的CALL了沒有。CALL WS2_32當你看到這個的時候,你就可以毫不猶豫的再次按下CTRL+F9了,說明你現(xiàn)在還在系統(tǒng)的范圍內(nèi)。還沒有進入到程序。為什么系統(tǒng)跟程序不一樣?因為程序是依托在WINDOWS平臺運行的。那么如果程序要干什么事情,就要跟WINDOWS打聲招呼。也就是SEND函數(shù)!程序跟系統(tǒng)說,我要做動作了,系統(tǒng)說批準,程序說我要喝藥,系統(tǒng)說批準,程序說我去哪里喝藥,系統(tǒng)說CALL!好的,這里的CALL就是我們需要的CALL了。:-) 第二次CTRL+F9,這里的CALL還是差不多,

5、還在系統(tǒng)層內(nèi)。我們繼續(xù)! OK,以上是第三次按CTRL+F9所看到的信息。 看到這里了嗎,已經(jīng)是程序?qū)恿恕R簿驼f這里很有可能就是我們需要的CALL了。OK。我們來測試一下 好的,我們來看這一段 lewei2000提醒:以下幾點解釋有誤,初學者略過,樓主還需深化匯編知識 看第一行:mov dword ptr fs:eax,edx 這里的意思是:將指針賦值到dword,后面有FS就是注釋eax,edx其實就是將edx中的值復制到eax中,使eax和edx相等(由于版主的指正,這里要聲明,此處的理解為自己的理解。并不是正規(guī)的解釋方法,僅供參考而已)。 看第二行:push 入棧,入棧就是把一個數(shù)值放到

6、寄存器中,其實跟mov是一樣的,那么這里push到哪里了呢?因為第一行eax已經(jīng)被占用,那么這里就應該是ebx。也就說這里是賦值EBX。 看第三行:lea eax,pword ptr ss:edp-4。這里LEA指令指將操作結(jié)果保存到eax,好既然是eax我們就不管他了。至于是什么結(jié)果,我們一會看。 看第四行:CALL不解釋。就是我們需要的東西。(但其實不是) 看第五行:ret 返回的意思。 好的,假設這段代碼是我們需要的代碼,那我們該怎么去表達它,在程序中如何去寫? 這里留個懸念,因為我事先測試過,這里不是我們需要的CALL,我就不說了。等找到正確CALL的時候我再講解如何去寫CALL。 好

7、繼續(xù)CTRL+F9下圖 看這里,跟上面一樣,這個返回沒用,我們繼續(xù)CTRL+F9。 好,這里又出現(xiàn)了一個CALL,那我們想想是不是這個呢?如何去調(diào)用這個CALL? 首先,我們要測試一下它是不是一個帶參數(shù)的CALL,至于怎么測試呢?靠,那就用程序CALL一下唄!但這里的CALL是個有參數(shù)的CALL。我們繼續(xù)。 我們?nèi)绾沃肋@個CALL調(diào)用了什么參數(shù)?試想一下,CALL調(diào)用參數(shù),要在哪里看?當然是在CALL中看了,如何看?那就讓我們?nèi)ALL那里了,如何去?-斷點?。ㄖ芙軅惓模?好,在上面CALL那里下斷點選擇CALL,按F2 這里前面的地址變成了紅色的。這樣就算斷點成功了,這里斷了前面就不用斷

8、了,我們在ALT+B中刪除以前的SEND斷點。(Delete鍵刪除) OK,我們讓程序恢復到運行狀態(tài)! 好,我們看到,測試程序中顯示,使用了一個補血藥品。OK,我們繼續(xù)按“吃血”! 好的,看到斷點了沒有,正好斷在我們剛才下斷點的地方。說明不管這個CALL正確與否,我們吃血的過程都要調(diào)用這個CALL,這樣就離正確很接近了。 我們剛才說看CALL的參數(shù),CALL的參數(shù)其實就是在調(diào)用CALL的時候所需要的運行環(huán)境,在什么條件下,CALL執(zhí)行之后是吃血,什么情況下是吃藍。 好的。我們現(xiàn)在利用到了寄存器。看寄存器中的提示,有兩個紅色,說明當我們調(diào)用CALL的時候,它使用了寄存器中的兩個地址。那么這個就是

9、CALL的 運行環(huán)境了,也就是說,只要在我們調(diào)用這個CALL的時候,寄存器EAX中有值00D51FE4和寄存器ECX中有值0042ABE4就可以運行。這里還有一個特殊 情況,這里我先賣個關(guān)子。 這里也解釋了上面的那個不是我們用到的那個CALL如何看參數(shù)! 好,這里我們寫一個小程序來調(diào)用CALL。 = 好,不管是不是這個CALL,我們先來測試一下 我是用delphi的,所以這里講解delphi這里我還要多一嘴,其實語言只是工具,只要學會了道理,就不在乎語言的問題了,其實在我們這個階段,語言的區(qū)分僅僅是命令不同而已 我會把如何寫的理論告訴給大家。讓大家知道花兒為什么這樣紅!o(_)o.哈哈 首先,

10、我們要調(diào)用一個程序的CALL,需要干什么。當然是指定這個程序啦!如何指定?如果這里您不知道,建議您去句柄那里好好修煉一下。 Hwnd:=FindWindow(1,2)=這里的Hwnd是個變量,為窗口句柄。FindWindow是一個找窗口句柄的命令,這里有兩個參數(shù),我用1和2代替。其中1在命令中應該是窗口類名。 2在這里應該是窗口標題。 GetWindowThreadProcessID(1,2)=這里的GetWindowThreadProcessID()也是個命令,是找窗口線程ID的一個命令,有兩個參數(shù)。1代表窗口句柄,2代表賦值變量,這個變量就是我們 要把線程ID賦值給什么變量,可以這么寫Ge

11、tWindowThreadProcessID(Hwnd,ThreadID); OpenProcess(1,2,3)=這個命令是打開進程并返回進程ID,有三個參數(shù),分別為參數(shù)類型,句柄繼承符,和線程ID.可以寫為Pid:=OpenProcess(Process_all_access,false,ThreadID) Process_all_access就是打開進程的格式,我們這里使用全部格式就可以了。無需理解,這么寫就好。 這里寫好了,我們可以檢測一下是否成功。 這里就是找線程ID了!下面寫注入 過程注入函數(shù) function TForm1.InsterGameFun(Hid:cardinal;F

12、unName:pointer):cardinal; var 要注入線程的窗口句柄和臨時存放的句柄 TmpHandle: THandle; ThreadID: Thandle; ThreadAdd:pointer; WriteCount: DWORD; begin ThreadAdd := VirtualAllocEx(Hid, nil, 128, MEM_COMMIT, PAGE_EXECUTE_READWRITE);/在目標進程建立內(nèi)存空間 WriteProcessMemory(Hid, ThreadAdd,FunName, 128, WriteCount);/將要注入的過程寫到上面建立的內(nèi)

13、存空間中 TmpHandle := CreateRemoteThread(Hid, nil, 0, ThreadAdd, nil, CREATE_SUSPENDED, ThreadID);/獲得注入后過程的句柄ID result:=TmpHandle;/返回句柄ID end; 這里照抄也可以,反正就是這么寫的,每步怎么個意思我也標示了。 注入也寫了,窗口也獲取了,剩下的就是寫CALL了。 好的!我們看這個圖片 記得我剛才說的EAX(00D51FE4)和ECX(0042ABE4)了嗎? 按照這里來說。只要我們寫命令 pushed asm mov eax,$005D1FE4 mov ecx,$00

14、42ABE4 call $00452E98 popad 一般這樣的命令就可以了。 但是我們這么寫的時候卻沒有生效。那么一定是哪里出錯了。我們對比兩個圖 我們對比兩個圖的寄存器中的值。 我們發(fā)現(xiàn)EDX中,值在返回之后度沒有變化。也就是說這里EDX也有可能是環(huán)境因素之一。而ECX前后卻有變化,那ECX是不是環(huán)境呢? 我們做如下測試。 procedure HP; /吃紅 var Address:pointer; begin Address:=pointer($00452e98); asm pushad mov eax,$00D51FE4 mov ecx,$0042ABE4 mov edx,$ cal

15、l Address popad end; end; 我們這么寫,測試一下,成功!那么去掉ECX呢?也成功! 這里就是EDX和EAX是真正的參數(shù)了。 = 好的,我這已經(jīng)講解的超級詳細了,如果還有人不明白,那我真吐血了! 以此類推就可以寫出藍,回城的CALL,呵呵,如果寫不出來。那你看來還要重新看我的文章。 = 提問與解答 = Quote:引用第4樓wshichenyao2于2008-04-18 12:06發(fā)表的 : 我們發(fā)現(xiàn)EDX中,值在返回之后度沒有變化。也就是說這里EDX也有可能是環(huán)境因素之一。而ECX前后卻有變化,那ECX是不是環(huán)境呢? 這句不太明白啊,call之前究竟是給變化的寄存器賦值

16、還是給不變的寄存器賦值?。课冶荒愀慊炝肃?。 呵呵 謝謝lz這么好的文章,希望能解答下我的問題?;卮穑哼@里的ECX不是環(huán)境之一,這個不一定就要一定不變才是因素,具體問題要具體分析,如果你想知道到底這個寄存器中的值在call后是否變化了,可以進入這個call看看這個call的具體運算方法。 Quote:引用第10樓ffzzfcll于2008-04-18 15:06發(fā)表的 : 但是我們這么寫的時候卻沒有生效。那么一定是哪里出錯了。我們對比兩個圖 回答:這里的兩幅圖不是沒有添加,因為跟前面的圖一樣,所以附件并沒有顯示出來,這里的兩幅圖中對對比僅僅為了證明ECX的值前后不等其實沒有別的卻別。并不影響學習

17、。 Quote:引用第22樓leonta于2008-04-19 21:50發(fā)表的 : LZ 你簡直無敵了 我一直都沒看到過對新人來說如此好的教程 當然有點還是要給你提出來 斷點 是張敬軒 唱的 不是周杰倫 周杰倫 唱的是 斷了的弦 最后希望 樓主多寫這么好的教程 我一定給你頂起回答:感謝您的指正,我對明星不怎么感冒,感覺上貌似是周董的歌,呵呵,弄差了! Quote:引用第24樓flycat于2008-04-20 02:59發(fā)表的 : 通過這么詳細的解說,終于CALL成功了! 用VB寫 回城與使用冰系CALL的代碼 Sub HOME() 回城 Dim asm As New clsASM 回答:謝

18、謝您的分享!您的支持是我前進的動力! Quote:引用第32樓黑爵士于2008-04-22 16:50發(fā)表的 : 以自己的方式來理解定義匯編語句?會誤導不少人的。 不過思路上具有一定參考價值,文章風格很生動哦,樓主辛苦了,可申精就是不可能的啦:-)回答:555!版主啊版主,我發(fā)帖可不容易呢,一個上午的努力還換不來一個精華,真是對我積極性的打擊呢o(_)o.不過您指正的錯誤我虛心接受!學無先后達者尊! Quote:引用第40樓nasuer于2008-04-23 14:59發(fā)表的 : 建立remoteThread跟你的procedure吃紅有什么關(guān)系呢?回答:這里的remoteThread應該是很

19、多大大們稱之為遠程注入的命令.只有注入了,才能對所注入程序中的匯編進行操作(個人意見而已) Quote:引用第41樓lccyy于2008-04-24 11:50發(fā)表的 : 樓主 非常感謝你的指點!我這里幫你更正一下! 斷在call前時EAX中的值應該是這樣: call是連續(xù)按5次Ctrl+F9 EAX 00D51FEC ECX 0042ABE4 游戲找CA.0042ABE4 回答:這位朋友的信息貼出來以后我發(fā)現(xiàn)和我的差距著實非常的大,不僅很多寄存器中的值不相同,甚至連CALL都不一樣.不知道您給我的指正您測試了沒有?我這可是親自測試的.并且有源代碼等等.如果您并沒有做相關(guān)的測試就來指正的話,恐

20、怕難以服眾啊!不過也謝謝您的指正,人無完人嘛,我帖子里的錯誤也會很多的,希望各位大人多多指正! Quote:引用第56樓lewei2000于2008-04-29 22:09發(fā)表的 : 提醒過樓主錯誤的地方,但是依然沒糾正,為免誤導初學者,先取消精華. 錯誤處看32樓指出的,及另外幾處匯編基礎性的錯誤.回答:謝謝版主您的指正,我的偏離的方向正需要您無私的撥正! Quote:引用第58樓liujiangshu于2008-04-30 00:03發(fā)表的 : 胡說八道 回答:這位兄弟有錯誤我絕對虛心接受,我本身也是菜鳥,不是什么權(quán)威,錯誤是一定有的.但是您的這個評論未免有點武斷! Quote:引用第60

21、樓hzyhaa于2008-04-30 09:16發(fā)表的 : 拿來開刀的那個程序,在那可以下到啊回答:針對于這個朋友的提問,我將附加上程序,以及delphi源代碼! 最后我來提問:我看到過這個同樣有這個教程的E語言的源代碼,E語言的源代碼中mov eax并我和我的格式一樣,我的是直接傳遞值,而那位大師的則是mov eax,eax類似這樣的格式.我想知道的是這些都是怎么來的?希望各位能多多指點! 此貼被gao6621在2008-05-04 10:00重新編輯 附件: 找CALL測試.rar (必須允許開新窗口) (174 K) 下載次數(shù):1029 附件: 游戲找CALL練習實例one.rar (必

22、須允許開新窗口) (164 K) 下載次數(shù):1020 本帖最近評分記錄: 威望:+10(loneliness) 威望:+10(lewei2000)大型網(wǎng)游工作室誠尋實力作者合作,共謀發(fā)展。誠聘懂編程的技術(shù)員一名。QQ:2008-04-18 11:07 | 樓 主 wshichenyao2 級別: 一星會員精華: 0 發(fā)帖: 81威望: 57 點金錢: 49 銀子貢獻值: 0 點在線時間:84(小時)注冊時間:2008-01-06最后登錄:2009-05-08 誰能解答啊我們發(fā)現(xiàn)EDX中,值在返回之后度沒有變化。也就是說這里EDX也有可能是環(huán)境因素之一。而ECX前后卻有變化,那ECX是不是環(huán)境呢

23、? 誰能解答啊2008-04-18 18:46 | 1 樓 flycat 級別: 新手上路精華: 0 發(fā)帖: 19威望: 30 點金錢: 36 銀子貢獻值: 0 點在線時間:8(小時)注冊時間:2008-03-09最后登錄:2008-08-16 圖片: 通過這么詳細的解說,終于CALL成功了! 用VB寫 回城與使用冰系CALL的代碼Sub HOME() 回城Dim asm As New clsASMWith asm .Pushad .Mov_EAX &HD51F7C 與樓主找的 EAX(00D51FE4)有點不一樣 .Mov_EDX &H45305C .Mov_ECX &H452E98 .Ca

24、ll_ECX .Popad .RetEnd With asm.Run_ASM pidEnd SubSub ICE() 使用冰系Dim asm As New clsASMWith asm .Pushad .Mov_EAX &HD51F7C .Mov_EBX &H452DF8 .Mov_ECX &H45307C .Mov_EDX &H1 .Call_EBX .Popad .RetEnd With asm.Run_ASM pidEnd Sub 此貼被flycat在2008-04-20 03:20重新編輯 2008-04-20 02:59 | 2 樓 gao6621 級別: GH小組I級成員精華: 0

25、 發(fā)帖: 58威望: 66 點金錢: 104 銀子貢獻值: 2 點在線時間:17(小時)注冊時間:2008-03-27最后登錄:2009-04-13 Quote:引用第12樓wshichenyao2于2008-04-18 18:46發(fā)表的 :誰能解答啊我們發(fā)現(xiàn)EDX中,值在返回之后度沒有變化。也就是說這里EDX也有可能是環(huán)境因素之一。而ECX前后卻有變化,那ECX是不是環(huán)境呢? 誰能解答啊我這里說的環(huán)境是,是在調(diào)用CALL的時候寄存器里的環(huán)境,就想說領導要講話了,下面的員工就要安靜認真一樣。這里的EDX和ECX都有可能是環(huán)境因素之一。我們不確定,只能去試,而這里我說,在調(diào)用之前,和CALL調(diào)用

26、的那一瞬間,ECX的值是發(fā)生了變化的,也就是說,ECX很多有可能不是我們需要的因素之一,因為他并沒有限制到CALL的調(diào)用。這里應該了解了吧。也謝謝你仔細看我的文章,呵呵2008-04-22 09:01 | 3 樓 gao6621 級別: GH小組I級成員精華: 0 發(fā)帖: 58威望: 66 點金錢: 104 銀子貢獻值: 2 點在線時間:17(小時)注冊時間:2008-03-27最后登錄:2009-04-13 Quote:引用第24樓flycat于2008-04-20 02:59發(fā)表的 :通過這么詳細的解說,終于CALL成功了! 用VB寫 回城與使用冰系CALL的代碼Sub HOME() 回城

27、Dim asm As New clsASM這個帖子兄弟寫的不錯,但是還有一個因素,可能你沒仔細看我文章后半部分。其實ECX不是因素之一,可以不加的2008-04-22 09:05 | 4 樓 黑爵士 級別: 二星會員精華: 0 發(fā)帖: 111威望: 74 點金錢: 850 銀子貢獻值: 0 點在線時間:40(小時)注冊時間:2007-05-06最后登錄:2009-05-05 Quote:看第一行:mov dword ptr fs:eax,edx 這里的意思是:將指針賦值到dword,后面有FS就是注釋eax,edx其實就是將edx中的值復制到eax中,使eax和edx相等。 以自己的方式來理解

28、定義匯編語句?會誤導不少人的。不過思路上具有一定參考價值,文章風格很生動哦,樓主辛苦了,可申精就是不可能的啦:-)CS本人槍法淫蕩,意識下流,走位風騷 2008-04-22 16:50 | 5 樓 lccyy 級別: 新手上路精華: 0 發(fā)帖: 5威望: 21 點金錢: 28 銀子貢獻值: 0 點在線時間:9(小時)注冊時間:2008-04-04最后登錄:2008-05-29 樓主 非常感謝你的指點!我這里幫你更正一下!斷在call前時EAX中的值應該是這樣:call是連續(xù)按5次Ctrl+F9EAX 00D51FECECX 0042ABE4 游戲找CA.0042ABE4EDX 游戲找CA.EB

29、X 00D5485CESP 0012F664EBP 0012F7A0ESI 0042AAE0 游戲找CA.0042AAE0EDI 0012F7DCEIP 游戲找CA.C 0 ES 0023 32位 0(FFFFFFFF)P 0 CS 001B 32位 0(FFFFFFFF)A 0 SS 0023 32位 0(FFFFFFFF)Z 0 DS 0023 32位 0(FFFFFFFF)S 0 FS 003B 32位 7FFDF000(FFF)T 0 GS 0000 NULLD 0O 0 LastErr ERROR_SUCCESS ()EFL (NO,NB,NE,A,NS,PO,GE,G)ST0 em

30、pty 4.e-672ST1 empty 2.e-4354ST2 empty 3.e+1522ST3 empty +UNORM 6620 BFST4 empty 5.e-4932ST5 empty 0.0ST6 empty 0.0ST7 empty 15. 3 2 1 0 E S P U O Z D IFST 0000 Cond 0 0 0 0 Err 0 0 0 0 0 0 0 0 (GT)FCW 1372 Prec NEAR,64 掩碼 1 1 0 0 1 02008-04-24 11:50 | 6 樓 lewei2000 好好學習天天向上級別: 論壇版主精華: 發(fā)帖: 987威望: 10

31、30 點金錢: 712 銀子貢獻值: 5 點在線時間:426(小時)注冊時間:2007-01-16最后登錄:2009-04-29 提醒過樓主錯誤的地方,但是依然沒糾正,為免誤導初學者,先取消精華.錯誤處看32樓指出的,及另外幾處匯編基礎性的錯誤.2008-04-29 22:09 | 7 樓 mat188 級別: 二星會員精華: 0 發(fā)帖: 166威望: 144 點金錢: 165 銀子貢獻值: 0 點在線時間:89(小時)注冊時間:2008-01-11最后登錄:2009-05-08 怎么會是我看到的數(shù)據(jù)和你看到的數(shù)據(jù)不一樣啊 是不是我的 OD有問題 A1 DB A1 00 DB 00 00 DB

32、 00 . BA MOV EDX,游戲找CA. . E8 7AFEFFFF CALL 游戲找CA.00452E98E . C3 RETN怎么會是這樣呢?2008-05-05 22:10 | 8 樓 cncqc 級別: 一星會員精華: 0 發(fā)帖: 42威望: 15 點金錢: 44 銀子貢獻值: 0 點在線時間:43(小時)注冊時間:2008-01-20最后登錄:2009-05-04 回樓主:eax 里面保存的是一個指針,你用CE查一下就知道為什么用 mov eax,eax,我前段時間查了一下好像是有兩層。即 eax = 你教程里面的mov eax,$00D51FE4對超級詳細找CALL寫CALL

33、教程的補充+找CALL另外一法對于新手來說最鼓舞人心的事情莫過于做出看得見摸的著的成果了。超級詳細找CALL寫CALL教程一文描述的的確夠詳細,雖然有一點點小的失誤,但不可否認是一篇新手入門的好文。不過在最后,調(diào)用喝血Call之前的環(huán)境配置中,mov到eax去的值并不總是固定的,你重新開一次就有可能變成別的了。想看到結(jié)果只能在ollydbg里面不停的ctrl+F2.mov到eax的值該怎么確定呢?打開CE,掛接“游戲找CALL聯(lián)系實例one”進程,然后搜索要mov到eax去的那個值,搜索到很多地址,取第一個(一方面是因為調(diào)試就需要大膽猜測,小心求證,另一方面熟悉點windows內(nèi)存空間分布你就

34、會發(fā)現(xiàn)這個地址可能性最大。)記下這個地址:00456D68(這個地址起始就是基址了,我驗證過,如果不是的話可以繼續(xù)往上找)。下面是驗證過程:重新開一次“游戲找Call練習實例one”,還是用ollydbg斷在call的地方,查看這時候mov到eax去的值是什么,然后用ce掛接“游戲找Call練習實例one,搜索下這個值或者直接查看00456d68處的值,你會發(fā)現(xiàn),00456d68處的值就是要mov到eax去的值。另外一個mov到edx去的值是固定的。至此,這個問題完美解決了。附代碼VC下寫的:DWORD _stdcall Call_HP(void *p1) unsigned long p =

35、0 x00452e98; unsigned long a = *(unsigned long *)p1, b = 0 x; _asm PUSHAD MOV eax, a MOV edx, b CALL p POPAD return 0;void CT1Dlg:OnFdwindow() / TODO: Add your control notification handler code here CString wndText; GetDlgItemText(IDC_EDIT1, wndText); HWND hwnd = :FindWindow(NULL, wndText); if (hwnd = NULL) AfxMessageBox

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論