diy pe的教學文章1 (6千字)
首先宣告:我這片文章不是給初學cracker的人看得,如果是初學者,就不要來信問我基本的cracker問題
網路軍棋現在是很流行,我自己也沉迷裡面了,不過作為一個菜鳥diype者(現在ltjjj,hying,囚童,夜月等高手都說自己菜,我也不能落後),只不過覺的原來軍棋程式設計有些地方煩人就diy
it當它按照自己的意思辦
目標中國遊戲中心,網路軍棋。版本---你現在能下到的最新版.
比如當你點選求和後,按鈕會變灰(用到了enablewindow的api,修改其前面的push
0為push 1就不會變灰了),然後彈出視窗提示求和請求傳送完畢,挺煩人的,現在我就來修改這個彈出的提示,讓他不要彈出視窗提示,把提示改動到右邊的riched框裡顯示。好我們首先觀察這段,這裡是原來的程式碼
:004034CE E81E860100 call
0041BAF1
:004034D3 6A00
push 00000000==》傳送引數
:004034D5 6A00
push 00000000==》傳送引數
* Possible
StringData Ref from Data Obj ->"求和請求傳送完畢"
|
:004034D7 687CA24500 push
0045A27C==》傳送顯示文字地址的引數
:004034DC E8AF1A0100
call 00414F90==》這個函式就彈出提示
:004034E1 83C40C
add esp, 0000000C
我們知道了需要顯示“求和請求傳送完畢”的文字offset是0045A27C。現在想到啟動軍棋後,都會在右邊的riched框裡顯示"歡迎進入四國軍棋"的字樣。我們看看
其顯示程式碼如下
:0040F646 6A00
push 00000000==》傳送引數
:0040F648 6A09
push 00000009==》傳送引數
* Possible
StringData Ref from Data Obj ->"歡迎進入四國軍棋"
|
:0040F64A 682CAB4500 push
0045AB2C==》傳送顯示文字地址的引數
:0040F64F 8B45F8
mov eax, dword ptr [ebp-08]
:0040F652 8B887A450000
mov ecx, dword ptr [eax+0000457A]==》這裡又多了個引數ecx,這個引數是用來描述riched框的狀態的,每次都不同。
:0040F658 E8491C0000 call
004112A6==》這個函式就會在riched框顯示前面push的字串
:0040F65D B801000000
mov eax, 00000001
好了,知道了函式如何工作的,我們就開始修改,首先在右邊riched顯示字串的引數比彈出對話方塊的引數多一個,而且這個引數是變化的,所以我們要在其使用
這個引數的時候把ecx儲存下來
修改後如下:
:0040F646 6A00
push 00000000
:0040F648 6A09
push 00000009
* Possible StringData Ref from Data Obj ->"歡迎進入四國軍棋"
|
:0040F64A 682CAB4500
push 0045AB2C
:0040F64F 8B45F8
mov eax, dword ptr [ebp-08]
:0040F652 E980B70300
jmp 0044ADD7==》調到儲存引數的地方,你可以自己尋找code段、data段對齊後之間的空隙,把自己的程式碼鑲嵌裡面,我這裡是44ADD7的地方
:0040F657 90
nop
:0040F658 E8491C0000
call 004112A6
:0044ADD7 8B887A450000
mov ecx, dword ptr [eax+0000457A]==》這是原句
:0044ADDD
890D40AB4500 mov dword ptr [0045AB40],
ecx==》把ecx儲存在45ab40處,當然你也可以尋找其他的地方,我是使用了原來的單機版的資料空間
:0044ADE3 E97048FCFF
jmp 0040F658==》儲存完畢,跳回
好了,現在我們把引數已經儲存好了,下一步
就是修改原來求和顯示的程式碼如下
:004034CE E81E860100
call 0041BAF1
004034D3: E910790400
jmp .00044ADE8 ==》跳到儲存引數的地方
004034D8: 90
nop
004034D9: 90
nop
004034DA: 90
nop
004034DB: 90
nop
004034DC: E8C5DD0000
call 004112A6==》這個call已經改為在riched控制元件顯示的call了
:004034E1
83C40C add esp,
0000000C
0044ADE8: 6A00
push 000==》傳遞引數
0044ADEA: 6A09
push 009==》傳遞
0044ADEC: 8B0D40AB4500
mov
ecx,[00045AB40]==》把我們原來儲存的ecx傳遞回來
0044ADF2: 687CA24500
push 00045A27C===》傳遞offset
of"求和請求傳送完畢"
0044ADF7: E9E086FBFF
jmp .0004034DC===》jmp 顯示call程式碼
這樣點選求和後就回在右邊的riched控制元件裡面顯示提示了,而不會彈出視窗提示。
當對方不同意和棋也會彈出視窗(我們也把他修改為在右邊riched控制元件顯示),其程式碼如下
:0040C02D 52
push edx
* Possible StringData Ref from Data Obj ->"%s
不同意和棋"
|
:0040C02E 6880A74500
push 0045A780
:0040C033 8D45F0
lea eax, dword ptr [ebp-10]
:0040C036 50
push eax
:0040C037 E8F9880200
call 00434935
:0040C03C 83C40C
add esp, 0000000C
:0040C03F 6A00
push 00000000
:0040C041
6A00 push
00000000
:0040C043 8D4DF0
lea ecx, dword ptr [ebp-10]
:0040C046 E89587FFFF
call 004047E0
:0040C04B 50
push eax===》這個地址就是%s
不同意和棋的地址
:0040C04C E83F8F0000
call 00414F90==》這個call很眼熟吧,就是前面彈出視窗的call(這裡可以修改跳到自己的顯示程式碼上,保證引數正確就ok)
:0040C051
83C40C add esp,
0000000C
觀察以後發現如果要在右邊控制元件顯示的話,只需要增加一個引數ecx這次用的ecx引數和上次用的不同了,call 004112A6就ok
好我們在看這段
:00415F49 50
push eax
* Possible StringData Ref from
Data Obj ->"%s進來了"
|
:00415F4A
68F4B14500 push 0045B1F4
:00415F4F 8D8D2CFFFFFF lea ecx, dword
ptr [ebp+FFFFFF2C]
:00415F55 51
push ecx
:00415F56 E8DAE90100
call 00434935
:00415F5B 83C40C
add esp, 0000000C
:00415F5E
6A00 push
00000000
:00415F60 6A09
push 00000009
:00415F62 8D8D2CFFFFFF
lea ecx, dword ptr [ebp+FFFFFF2C]
:00415F68 E873E8FEFF
call 004047E0
:00415F6D 50
push eax
:00415F6E 8B8D28FFFFFF mov ecx,
dword ptr [ebp+FFFFFF28]
:00415F74 81C1DE000000
add ecx, 000000DE==》這個引數就可以用來顯示%s哦,儲存這個正確的引數,用來做以後的顯示
:00415F7A
E827B3FFFF call 004112A6==》看到這句了麼,怪眼熟的吧,就是在riched控制元件裡顯示東西的函式哦:)
:00415F7F C745FCFFFFFFFF mov [ebp-04],
FFFFFFFF
下面要做的工作和第一此差不多,就是儲存引數,修改跳轉,大家要學新東西,我也就不羅嗦重複的工作了。自己修改就ok了,我主要是介紹一種diy
pe的思想
可以利用軟體提供的一些函式達到我們自己的目的(首先是你要看得懂這些函式),對於軍棋這個網路遊戲還是有很多的漏洞的,仔細研究就會發現,可以使自己下棋不超時,讓所有的棋子都變成司令,把地雷放在第一排,讓棋子可以不受規則限制到達任何地方,自己逃跑不扣分,下輸了就解散棋局等,鑑於要維護中國遊戲中心的平衡性我就不便在這裡提供如何修改程式碼達到這些目的。主要是怕中游可能會把我告上法庭???:)不過中游的所有遊戲都有漏洞,我自己倒是做了n個遊戲作弊版在上面過癮。就像當年用fpe修改紅色警報一樣過癮(主要是現在程式設計工作不忙,所以有點不務正業了)。有興趣者可以自己去跟蹤中國遊戲的程式碼,可以發email和我交流pll621@yeah.net不過不要在中游和我下棋,打牌,打檯球什麼的,我可是有作弊版本的作弊冠軍哦!
文筆不好,感覺很多東西可以交流的,但是用語言表達不出來,只能寫程式程式碼比較方便。你的朋友:pll621
相關文章
- diy pe教學2 (11千字)2002-08-09
- diy pe教學3 (28千字)2002-08-14
- TRW短篇教學 (6千字)2001-09-29
- PE-explorer 1.4 的簡要破解過程(1千字)2001-08-08
- 我的第一篇增加PE檔案功能的文章,獻醜了。 (4千字)2015-11-15
- 蛙泳教學12024-03-31
- 申請加入BCG的破解文章之一 (6千字)2001-05-06
- 翻譯(1) (6千字)2000-07-22
- 脫Crunch/PE -> BitArts的殼。 (3千字)2002-05-03
- 初學者作品(6) (1千字)2000-05-04
- 菜鳥教學--密碼學概述 (10千字)2015-11-15密碼學
- 教資-高等教育學(6)2024-10-11
- PE教程6: Import Table(引入表2015-11-15Import
- 同學翻譯的一篇FlexLm文章 (9千字)2003-03-31Flex
- Axure教學案例總結(1)2020-12-25
- 教資 - 高等教育學(1)2024-10-06
- 貼個教學,初學者請進! (11千字)2001-04-20
- 如何完美破解PE EXPLORER 1.2 (5千字)2001-06-13
- 菜鳥的ollydbg1.08b教學篇 (10千字)2003-01-27
- 我的PE程式加密核心程式碼(MASM 6.0) (9千字)2015-11-15加密ASM
- 非明碼軟體的入門教學--現給演算法的入門者(高手末入) (6千字)2002-07-24演算法
- CUDA教學(1):前向轉播2024-05-28
- PE檔案結構解析12022-05-20
- 貼個初級問題,高手莫入:呼叫PE檔案中引入表中的函式的方法
(1千字)2015-11-15函式
- 教資 - 綜合(6)2024-10-29
- 程式設計師生涯,學到最重要的6個教訓2019-07-12程式設計師
- 基於合作教學的幾種教學方法2018-11-16
- PC 安全虎[Beta 1]演算法分析 (6千字)2001-12-05演算法
- 破解實錄(六)之 1toX 1.63 (6千字)2000-07-20
- PE學習筆記(一) (轉)2008-01-25筆記
- 如何完美破解PE EXPLORER 1.3(加入BCG的第二篇) (9千字)2001-06-29
- pygame 教學 1 —— 設定初始化視窗2019-08-27GAM
- ultimate zip cracker6.2破解小結,菜鳥文章,高手勿看。
(1千字)2000-10-07
- Android OpenGL ES 2.0 手把手教學(6)- 紋理2019-05-03Android
- 教資 - 綜合(1)2024-10-07
- 牽引力教育6大智慧教學系統助力學員高效學習2018-04-27
- 關於StyleXP反跟蹤程式碼的分析以及WinDbg簡單教學
(7千字)2015-11-15
- PHP DIY 系列------基礎篇:1. PSR2020-02-18PHP