版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本日记写给对外挂有极大兴趣,苦于学习又无从入手的人,由浅入深,循序渐进,本人不是高手,不足之处希望高人多多指教。 &yN<. #-W5$1 废话不多说,我们开始吧 LiRY -;8= IIPf5 ZA 首先,你需要下一个CE(如果你连CE都不知道是什么我实在无语了,可以再百度搜下,下载一个中文版) 0(kp>%mbB okv78U#p 武林外传游戏,之所以选择这个游戏是因为他没有NP之类的保护,比较容易分析,方便我们用CE,OD之类的动态分析工具调试。 推荐精选XVfQ scZe 9_6mR
2、< 好了,游戏我已经打开了,我们把CE也打开,点左上角的小电脑,选中武林外传游戏的进程,点打 3LmHH = 开 :o:?tqw G$j8IE 我们已经把进程打开了,然后在CE里,数值的后面写80,(问:为什么要写80,答:因为我们的血是80,问:为什么要搜索血,答:因为血值比较容易找出,问:为什么。答:滚你妈,听我讲完-_-!) 然后点首次扫描 推荐精选9Dl SF #59zv= 好了搜索出来那么多个,我们去找个怪打下,让血值变动一下,当你开始掉血的时候,在CE里点减少的数值
3、,然后选再次扫描。 F)<ZE UOwNcY 好了我们扫描之后发现了一个动态会变动的数值,然后我们双击它点击下来图片10 Oy<zU iH>djGhTh 我们点右键,点查找访问此地址的代码,(注意:有的中文版CE不同有可能翻译为查找所有操作此地址的代码) 推荐精选FId#, =FnZkJ 如果框框里没出地址那我们就点下游戏然后在点CE tTgW&B 推荐精选 Ce:ds% 好了出来了 C#Jj;Gd Z ux2VepT 30
4、:,a 我们记录一下 7 SZR#L m!_ghD5h mov edx,esi+25c esi=0AEED8E0 t3G'x 1 JyO lVs<T 推荐精选 我们点新扫描,然后选中HEX,这里一定要选中,因为我们要搜索ESI的值是16进制的 _u$K Lqt/, 639k& "V 推荐精选 好了,出来了这么多个 h.0K PFO G.8bE 5b p"dIe 我们选第一个吧,双击第一个,点下来,点右键,选 查找访问此地址的
5、代码 推荐精选"yiNJ"kt 3GEd)JvE 出来了很多个哦 kqw? X B:cOcd?p (+dRD |T 推荐精选 这里我说下,EBP的不能选 bl_WN|SQ i&)C, mov eax,eax+24 这种的,也不能选,至于为什么我们以后讲 vWs c9 nX%'of 好了我们选第一个就好了 mcr#Ze bX 4O&v+ 记录下 mov edi,ecx+24 ecx=03036D68
6、 XS 8jBjx =pyZ/P +|)1_NK 我们来搜索下ECX的值,这里的HEX一定选中 CfFpFM g4aX 又出来了这么多个 w*%$ lhp! (!5" fj 推荐精选 "UGj41f 我们选第一个吧 :*:fu n u;ooDIq 双击点下来,右键选 查找所有访问此地址的代码 qbq<O %g= K6*UFO4i 又出来很多个,我们选第一个 'a g6B(0Z GL
7、 =XiBt ,9tbu!Pvq 记录下 mov eax,edx+推荐精选1c edx=0097F020 _q$LrAT GHC?Tp 我们来搜索下EDX的值,出来了这么多个 KR+BuL+L hf+/kc!>i gL SG:7m 我们选第一个吧,重复刚才的操作,双击点下来,右键选 查找所有访问此地址的代码 ?WQ d A6UdWK 好,出来了这么多个,我们就选第一个吧 I9 N6BQ& Oiz/7m 记录下m
8、ov eax,0097b55c B=a 2't6 ()nKug. 好了这个很像基址哦,我们来搜索一下他吧 h%1v$W b1+hr(kMRM 扫描之后是0个哦,说明他应该是基址了 "wF ?Hamz 3KZ y H 我们把刚才所记录的汇总一下 i|lsd(+ XxE1o|U mov edx,esi+25c esi=0AEED8E0mov edi,ecx+24 ecx=03036D68 B%eDBu ") 3b|77&
9、; mov eax,edx+1c edx=0097F020 .yF;H ZaHXJx mov eax,0097b55c好了我来说一下,这里esi+25c的esi的值=下面的ecx+24,ecx=下面的edx+1c, edx=下面的 9ra HSzKd w+:8<mMa 0097b55c ea RgNz ERfd7V<c> 则那么 0097b55c+1c+24+25c qE#& ) I;kf #nvao 我们来试验下 ")r*Ug
10、RB (4 a 在CE里,右边有手动添加地址,我们点他 -OC me %rM-"6Q xHEVR!&c4 然后点指针后面的方框,让他出对勾,然后添加两个指针 iPo8Ra 7XUhJN3n 指针地址添加我们找到的基址0097b55c +Fk4p ?Z7O.u 第一個偏移1c(一级偏移),第二個偏移24(二级偏移),第三個偏移25c(血的偏移) uggA8s K H>Sc3p 順序不要搞錯哦 .HyjL5r- 4|
11、zd84g e ZynF<i 好了,我们在下面看到 数值80了 Av M )2) Zz +< 我们小退一下刷新一下内存地址 L&:M8xiA$ nped 大家可以看到了 第一个地址数值80会变成? p9/bzT34. w|&,I4" 而我们添加的那个不会变,最起码在游戏更新之前不会变,因为游戏更新,就有可能变动基址。 CI IY|DIl $=d1%_R| 话不多说,今天累了,就写到这 9fSSHdx
12、;V.Wk 未完待續。 推荐精选上节课大家知道怎样查找血 J4S2vBe16 这节我教大家用遍历工具把其他的人物的数值遍历出来 u)s Zh 废话不多说,我们开始 L G=Q 游戏已经开好了,我们今天用到的工具是内存查看器,我一会放到附件里 D_, 2z 工具我也打开了 $ 1?YVA7 在进程这里选中武林外传的进程 d6M d$R q(7Jv 0097b推荐精选55c+1c+24+25c 上节课的基址,一级基址,二级基址,血偏移 Ay56_d2 W6s)b; 推荐精选 图1y
13、<#y3M! & P62& 然后我们把上节课的基址添加到里面,然后点加入地址 推荐精选D.p7 NJ 图28E$KR:/:4 =;T971L 在开始值那里写入1C,后面的偏移一定要点上对勾,选中我们刚才添加的基址,然后点加入地址 lYJW! 图3推荐精选hm=AGI0 <kh&1J#g 推荐精选 在开始值那里写入第二个偏移24,选中刚才添加的推荐精选1C,然后点加入地址 j8x" 图42Y1S?g. NShA-G N5
14、我们在开始值里写0,偏移个数100,选中刚才添加的24,点加入地址 1UmV & 出来了很多个 :O5,wf2 图5!d"J,.) Jzfz y0$ 好了我们现在来分析下 ,我们知道血的偏移是25C,我们来到25C的位置 kgYa0 e5 我们可以再说明里添加我们的注释 A;8e 图6/G</ N5 unP7("A0D 我们又找到了很多人物属性哦 =Y / 图7Mi:$<fEX kOJs;k 对比下游戏 E Sb
15、;图8du,/ 6 whxEXnv 金钱也找到了,你们可以建一个小号扔1钱,看看这个监视器会不会变动 a o+%s 图9.4.zyI mltN$b%G=d 好了,我们今天这节课到这了,有点累 cSz!E 你们在回去找找,可以找到人物的坐标哦,应该是在上面的, S<=Okrlj 我想,下节课我教大家把人物的名字找出来 _s<eqCBV 先到这里,掰掰。 大家好,我们又见面了,这节课篇幅很短,但是很有必要掌握。 4SYQ 废话不多说,我们开始进入正题,这节课教大家怎样找出自己的名
16、字 推荐精选6yv*AmFh 上节课我们已经掌握了一种遍历工具,这节课我们用到另外一种。 sW3-JA 工具在附件里下载,或者你们到网上去自己找。 q"gT;3S 准备好了吗?LET'S GO Y.3 :&&Ps4Sq 游戏我已经开好了,我们把工具也打开,把进程也打开 Mf tX+ 图1J+Q ;'J 推荐精选 好了,我们把以前找到的基址,一级偏移,二级偏移都添加进去 2CFt;fk 三级偏移写0,四级偏移写0,下面一级遍历循环次数500,循环递增4, 推荐精
17、选$*9hW-)Q 递增3级偏移。 4g$mz :vo 二级遍历循环50,循环递增2,递增4级偏移,注意看我的设置 CmY'rI 推荐精选 好了,然后点开始遍历 M _Z*F!al< 图2) e;)9 很慢哦,要有耐心,等下吧。 ,l.O 出来了很多个哦 <,=m|z9k 推荐精选 图3b U-Cd 我们这里的设置,点文本型-U,等于,搜索范围:入门学挂。 &t5pJ$(Cy (注意:这里我的名字是入门学挂,你们是什么名字就写什么就好了) 推荐精选)7t!<
18、 开始过滤吧。 D ( <_1 图4cPPE8PVH 我们要的名字偏移出来了,是3AC+0 n-#?6>a i(a2FKLy 让我们打开CE验证下,手动添加地址,把基址,一级偏移,二级偏移,名字偏移,都写进去,顺序不要错。 38>8Ma 图52(zg 点完确定之后,我们发现这个数值是一个整数,不要急,我们还没有转换成文本型。 xzyV| ( 在CE下面类型里双击,选择文本,后面的UNICODE要选中哦 $83 TA> <a 点完确定之后 W&X+XA
19、_W 图6rFxtR( b* no.eB 哈哈,我们可以小退,重新建一个人物,在上,也是能显示出来的哦 G)?VCQ ?>*i8* 这节课就到这,谢谢大家。 大家好,我们又见面了,这几天有人说我的不是原创, )$S=iL8( 我解释一下啊,我这里面所用到的工具不是原创,但是我发的这种 J*rYw5QB 图文并茂的教程是原创的,我的目的就是为了让那些迷惑不解,徘徊在门外的 Y!xPmL? 零基础初学者指一条路,如果大家觉得不好,我以后也就不做了,我水平也有限,其实比较菜
20、了。 $3"hOEN5 废话不多说,进入正题。 pP# ! bX2BEa8<" 今天我教大家,怎样把以前学到的游戏数据,在易语言中读取出来。 推荐精选!+3&%vQ) 这里,我用到了外挂作坊的模块,这个模块是收费的,而且比较贵, YtvDayR> 初学者的话不用买,可以在外挂作坊的论坛注册一个ID 然后登陆他的论坛, By65KmR" 下载它的模块,可以调试,但是不能编译出来,我们初学,只需要调试就够了 _'Uf/l 推荐精选 如果你们非常感兴趣,也可以购
21、买。 wY ItG"+6 lU!_V%n 易语言的话 在百度搜索有破解版下载,我用的是外挂海的破解版。 RI8*'ix :N<Qk 推荐精选 首先打开易语言,选择Windows窗口程序,点确定 k9*UBx 图1.pPuBJL< Crc6wmp 推荐精选 好了窗体开好了 M <J X 图2>(JCHtR 5nib<B%<V 在窗体上添加三个标签,一个时钟,在右边的基本组件里可以找到这个“字”,还有时钟 BTwc(oL
22、0;图3?J2A.x5 a 图4MD$W;rk(Hn KJJ:fG8' 我已经添加好了哦,从上到下三个标签分别是标签1,标签2,标签3 41b 图5JJ1>)SX- j.6!T'$| 我们双击窗体,进入代码编辑区 GmNC w5F 我们在窗口程序集1下面添加几个变量 g-IT&O 图6-cUbIbW "AiNC 在启动窗口下面写代码 JcYY*p 图7JtSwbdN 4_>|2 我解释一下这几句
23、代码 ylos6zS8 第一句,窗口句柄 取窗体句柄 (“”, “element client”) au1 9Q*r9 我们想读取游戏数据的内存,首先要知道是哪个窗口,要知道这个窗口的句柄, #N8E-d 新人会问,什么是句柄,这个比较抽象,我的感觉,这个句柄好比是门的手柄, bHm/ZZx 你知道了这个门的手柄,你才能推门进入,然后你才能看见东西。 推荐精选-wH0gEd 这里“窗口句柄”,是我们设置的变量,所谓变量,学过初中数学的人应该知道方程式,设X,Y。明白了吧。因为窗口句柄不是一个固定的数值,并且是唯一的, : Nf(:D8
24、 所以我们先要搞到他。 ?/T=G k “=”后面的,“取窗体句柄”是外挂作坊的模块里封装的一个子程序,这个子程序让我们取得我们想要窗体的句柄。 dK8*a%- 这个“取窗体句柄”里面有2个参数,这两个参数第一个是 窗口的类名,第二个是窗口的标题,一般情况下,写窗口的标题就可以了。 :I /9j=1 这就好比,你想要吃面条,必须要有筷子,和碗。这个“筷子”就好比是类名,这个“碗”,好比是窗口的标题。 qYVeFSS 这样,我们就能“吃”到“窗口句柄”了 I+W,%)vb 武林外传的窗口标题见下图。 2N |iOog
25、60;有的游戏,可能你不知道窗口标题,或者你看不到,这里我们就借助工具了。见附件。 2h<_?GMs 推荐精选 图8:SKsPqE dg*xo9Xi 窗口句柄我们已经找出来了,然后我们用这个窗口句柄找到进程ID LZG(T$dI SR.xI:4 第二句,进程ID 取窗口进程ID (窗口句柄) CU c , 要知道,我们想获得这个窗口进程ID ,就要我们刚才找到的窗口句柄 6jrv d 这里的“取窗口进程ID”,也是模块里的一个子程序。 uk W L3 实际上,这些子程序,就是把API函数封装起来
26、,在写外挂时,直接调用这些子程序,方便。 推荐精选JklN 在末尾,我会把相关调用的API函数给大家写出来。 l?9R.L 第三句,进程句柄=进程_打开进程(进程ID) oJZ>nm 这是最后一步了,想要打开游戏进程,就要知道进程ID,我们已经在第二句的代码获取到了进程的ID,直接调用就可以啦。 E.N>,N 最后我们获取了这个游戏的进程句柄,这非常关键,有了他我们就可以开始读写内存了。 WFFd3TN%< 我们回到窗口控件界面,单击这个时钟,在左边会出现这个时钟的很多属性, >0H5Q8 我们只需
27、要修改一个,就是“时钟周期”,这里我们设置成500,单位是毫秒 z41$/ 也就是0.5秒, I_?R(V9 图9 D'D IC 3*7klu 然后我们双击窗体上的时钟,再次进入代码编辑区 m,6u+Z , 好了,我们出现了一个子程序名,_时钟1_周期时间 推荐精选EN4-P/5 在这个程序下的代码,都会每隔500毫秒刷新一次。 推荐精选pflGgP# 我们开始写代码。 KdTWi;mV2- +uNMyVH 首先我们先加入一个判断。 6", 图10K-c&g
28、t;J uv&, Sy*p6DP 这个判断,是判断游戏有没有开启,并且进程有没有成功打开。如果没有开启, |hDN$By 进程句柄会返回为0,当为0时,那么就是没有开启游戏了。(好啰嗦) Uppq0Eo w:1UwgcPC 为了读取游戏内存,我们还要添加几个变量。 %ZMp'g 基址,一级基址,二级基址。方便我们保存这些数据。 Q!AGalP z 图12kalR Oq7q!H 我们开始读取游戏内存,先吧基址读出来,代码我已经写好了。 z 7cA5'c
29、Z;dR :|%) 图1102:Joy2D $p q,f. 我们这里又引用了模块的一个子程序,“内存_读整数型” i8*(J-M 这个子程序有四个参数 %r(qQM.Pl 图13=|c7#GaiF x.I?)x!C' 第一句,内存_读整数型 (进程句柄, 十六到十 (“97b55c”), 基址, ) 5RF*c,cNq 第一个参数不用多说了,读取内存必要的参数。 a8W32 第二个参数就是我们之前找到的游戏基址,“十六到十”这也是一个子程序。 $>wN:uN(
30、在易语言中,支持10进制的数值,我们的基址是16进制的,所以我们要用这个子程序把16进制的基址转化为10进制的数值。 推荐精选:prx:7 括号内要加“”,因为这个子程序里面的参数的类型,是文本型 Os74 RW 图14Pn ?g Bl 2UBAk')O 第三个参数,保存数据用的,也就是把游戏中的基址读出来,放在我们设置好的一个变量里,这个变量名为了好记,我们设置的是“基址”。 M Av's4b 第四个参数,可以不写。 kWC xc0 第二句和第三句我就不解释了,参看我上面的解释。 0d<
31、;<yw=+hzu 这里我教大家写几个不好写出来的数据,金钱和人物名字。 Bpu-R&T 我们在添加几个变量。人物金钱,人物名字,人物名字1,金钱,银钱,铜钱。 *48Z 图16_|COnm uPb.uG 这里要注意,人物名称1的类型是字节集,一会儿我们讲到这个。 <.lt?!.ZH 代码我已经写好了 B(:(OPM 图15d b / 7aHP;X0 第一句,内存_读整数型 (进程句柄, 二级基址 十六到十 (“2EC”), 人物金钱, ) Z3dI B
32、这里不多说了,2EC是人物金钱的偏移,二级基址+偏移=人物金钱,这个很容易理解了吧。 推荐精选t6g+ 下面我们看 :SN/fY jZ<f-Ff0 金钱 人物金钱 ÷ 10000 lx 6Rq 银钱 人物金钱 ÷ 100 金钱 × 100 H<l0-S 铜钱 人物金钱 金钱 × 10000 银钱 × 100 推荐精选o4YF,c+>q 6PMu*-Nv!j 为什么要这样写呢,在武林外传里,人物的钱是每100进1位,也就说100铜=1银 zy8D
33、&7Ytf 100银=1金。 lt"N'Gw6 $A)s$ 我们打个比方,如果你有8金76银45铜,不写上面这段代码,在程序中会显示为 q|U0(q9 87645,你们可以再CE里,添加一下看看。 isH >#+" 这里人物金钱是87645,87645÷10000=8,这里金钱就等于8,我们的人物金钱,和金钱都是整数,这里的除法也是整数运算,没有余数,也没有四舍五入。 =qww|B92 第二句,我们来算下,87645÷100=876-8×100
34、0; = 876-800 =76 :ehG9 铜钱同上,大家自己算下,看看我写的代码有没有问题。 a=*JyZ.2 Az6tu < 我们让钱在标签2里显示出来 |p*s:*TJp 用到了这句 y+M9 i/O 标签2.标题 “金钱: ” 到文本 (金钱) “金” 到文本 (银钱) “银” 到文本 (铜钱) “铜” 351$uRA 这里,到文本(金钱),这是个子程序,因为金钱这个变量我们开始设置的是整数型,我们要把它转化为文本型显示在我们做的外挂上。 (q=),3/<pU +“金”,这里就是加上金这个字,这个字要在外挂上显示出来他必须是文本型, ;2547b 不用变量他,但
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论