老文章档案 · 2003 年

diy pe教学1

破解教程 · 破解杂谈 · 2003-09-16 · 作者:pll621 人气: · 出处:赢政天下整理收藏)

首先声明:我这片文章不是给初学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不过不要在中游和我下棋,打牌,打台球什么的,我可是有作弊版本的作弊冠军哦! (出处:赢政天下整理收藏)

相关文章:

相关软件:

→ 特别推荐

→ 热点TOP10

我为人人《《==》》人人为我

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史