没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。 3 D7 e; H( E" a. _6 U
使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。
& E, m9 Q: m0 n. ^+ w+ V—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 ~7 R# R4 ~9 S$ m+ R5 ?
用IDA载入gmsv,分析完成后进入Exports选项卡。 bbs.mocwww.com6 j, M* m2 ~. ^. l' y4 J
搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 bbs.mocwww.com1 c. @2 r; T+ g& z
.text:08074098 public CHAR_GetLevelExp 魔力私服,最新魔力宝贝私服技术交流5 t/ K+ @ ^( r0 m) R) y4 |
.text:08074098 CHAR_GetLevelExp: 妖城在线论坛 S. L& l ~9 F* k
.text:08074098 push ebp
5 I1 t: d1 k( Q g5 ?- Y0 x魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074099 mov ebp, esp
2 g2 Y8 F4 h5 P4 M/ A魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:0807409B mov edx, [ebp+8] 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 I- |' n$ |/ [! D* X
.text:0807409E cmp edx, 7Eh . e/ d& k8 A: D5 ~
.text:080740A1 jbe short loc_80740C0 妖城在线论坛! ~& Y$ Q7 N$ c! Z. V
.text:080740A3 push ecx
+ R; Y e$ O8 S1 R; ~: ~妖城在线论坛.text:080740A4 mov ecx, 7
: u1 c, z2 w. J7 K—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A9 push edx
% T+ T( }, q( |; h—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AA mov eax, edx
+ j3 `; @9 u7 B/ T2 W' z. p魔力私服,最新魔力宝贝私服技术交流.text:080740AC imul eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート9 D- s% n5 S, D* Y w$ @5 e
.text:080740AF imul eax, edx 妖城在线论坛. e; y% C7 v g5 j6 E. X6 N4 F
.text:080740B2 imul eax, ecx 魔力私服,最新魔力宝贝私服技术交流 A1 h2 l) L5 S* ^4 q# {2 j4 R
.text:080740B6 loc_80740B6: bbs.mocwww.com' D0 p+ f1 A3 G( w5 \
.text:080740BE leave
- r1 N1 y/ x3 \—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BF retn bbs.mocwww.com( g. w- `1 }6 v4 l4 w) w
.text:080740C0 loc_80740C0: 魔力私服,最新魔力宝贝私服技术交流. u' F5 x9 T9 ^2 p6 f( E& q, z
.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] 魔力私服,最新魔力宝贝私服技术交流, ?! ?" x1 C! H+ h
.text:080740C7 jmp short loc_80740B6
: E4 v# F+ Q4 m3 _+ F% P0 E妖城在线论坛魔力私服,最新魔力宝贝私服技术交流0 J1 Y! X, M4 h. @/ d% ]. O
粗糙的解释下这段代码的意思
2 R: L: d1 k4 f/ X( \魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
- Y# y' g) X. r! @* |& q魔力私服,最新魔力宝贝私服技术交流Push edp
5 c0 l8 n1 [4 l—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov ebp,esp 5 m4 W; D1 U# x* c$ r$ n8 Q* X( {+ r
Mov edx,[ebp+8]
$ S" @% g' O; K4 m+ v—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート获取当前等级的下一级存到edx
. m% m* W. m' N+ @! S! k6 _ U ^妖城在线论坛
2 ]- v/ }% G6 v& j i' x魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Cmp edx,7eh bbs.mocwww.com# Q9 ~% l; I R, B* Z
将edx与7eh也就是10进制数130比较
6 q* Z( X) }5 B6 d2 `% T魔力私服,最新魔力宝贝私服技术交流
% R' j4 c3 ?( Z. U" w( E6 X2 d魔力私服,最新魔力宝贝私服技术交流Jbe shortloc_80740C0
: j6 [ x2 F1 _—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如果edx小于7eh则进行跳转到80740C0
" W) ]. [6 f' k5 o% Y3 {9 M# ~魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
' O2 @! d$ _; U& L, J9 v妖城在线论坛Push ecx 妖城在线论坛) e2 x1 M+ \* t
Mov ecx,7
# X; E9 U. p5 K5 ^6 J/ _魔力私服,最新魔力宝贝私服技术交流给ecx赋值7
% G# M! u4 D: X$ Q: M+ J( y# i% g" o妖城在线论坛bbs.mocwww.com/ S4 W( H( l; X( q- z$ M8 Q
Push edx
% o4 ?" \- C" A—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov eax,edx
5 J2 T6 l5 W, {! T. I. a# j/ q妖城在线论坛把当前等级+1的值给eax 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 b2 F% ^) G! f9 ^8 u7 K5 K
0 C& L) k3 K, Y& H# z4 F3 jbbs.mocwww.comImul eax,edx
! ~. f2 `* d4 A" Z7 l魔力私服,最新魔力宝贝私服技术交流把eax与edx相乘,结果存在eax
! G0 y6 {! U( Q3 g3 X% g/ G' k妖城在线论坛魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 D' \8 G. q, M: p; c! k6 w
Imul eax,ecx * m* R, C' h+ |, v5 }. g' q
把eax与ecx相乘,结果存在eax
- d8 e; W9 i( P- p! N& U4 _4 r6 hbbs.mocwww.com妖城在线论坛* X/ t1 p- H0 B/ e7 a6 w- ]& f9 g
Leave
5 X8 E! u) d; N# d( y e0 ubbs.mocwww.comRetn
% O) O$ P5 v* X$ Y2 |5 X退出这个过程吧,大概 魔力私服,最新魔力宝贝私服技术交流) p7 t0 T/ X+ {3 p; H
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 f% M9 z u7 I/ J5 T$ g9 J3 @6 K
Mov eax,dwordptrLevelUPtbl[edx*4]
4 n! t0 T7 p- {9 Y6 {1 f Q% l8 n: c这里是读取经验表的内容给eax,也就是查表读经验 妖城在线论坛# C c& p7 w" A0 C- u
2 Y- ]. X, y3 c* c2 I魔力私服,最新魔力宝贝私服技术交流jmp short loc_80740B6 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ K9 L4 A8 ~6 H: F2 ^( a
强制跳转到80740B6 8 d) w8 ^, a X0 G+ e0 V* E
bbs.mocwww.com' D' H& k0 W7 M! s1 E a0 Q2 W
好了,这段代码就这点意思,逻辑上不难理解。
2 ^3 c- H7 q/ Z" ^魔力私服,最新魔力宝贝私服技术交流虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。
( Q% |3 r/ J& zbbs.mocwww.com! [0 r; r/ n8 w* R& ^0 Y6 V0 s( b
分析完了之后开始修改了,上面的代码具体作用如下:
+ Z' L) T! J2 K2 S& {, i; [, Q, V魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表判断等级下一级是否小于7eh,是则跳转到查表。 妖城在线论坛8 D2 R+ e5 F. Q3 `7 G3 m. b
否的话也就是大于7eh时,按照下面算法运算 bbs.mocwww.com$ }% p ?' L& u5 Y9 o
.text:080740A3 push ecx 魔力私服,最新魔力宝贝私服技术交流, F2 U- O# J% @3 L# d
.text:080740A4 mov ecx, 7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" \& a0 c2 j6 j. ~* [8 B4 r1 |8 k
.text:080740A9 push edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( }/ u+ X# P( _7 P6 b1 O/ U
.text:080740AA mov eax, edx 魔力私服,最新魔力宝贝私服技术交流% C9 m! N: m% |5 `; l. u- ]
.text:080740AC imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* [+ z7 ?: N1 ?3 r+ t% u$ J+ D
.text:080740AF imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 S2 c9 Z9 J" b# |# Z& l
.text:080740B2 imul eax, ecx
2 `1 M1 l8 D0 }" B( j魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表也就是eax的三次方乘以ecx,这里可以改成我想要的。
2 C% h L+ |. g' y5 f( ~. R( w7 F/ u6 G* @! e
我的目标是改称等级的四次方除以50,但是问题来了。 妖城在线论坛' q* G9 Q. H# h6 [. K/ |6 C
怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。
! L/ ~. y, _% e' d妖城在线论坛
, n& Y. O& ]" T) g0 I: T0 i7 Z.text:08074098 public CHAR_GetLevelExp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' b& e) k6 P+ E5 f- a1 E
.text:08074098 CHAR_GetLevelExp: 魔力私服,最新魔力宝贝私服技术交流2 S+ V" S L" h: ^+ _: u5 G
.text:08074098
% R( z6 X5 x8 Z6 ~+ A( l4 Jbbs.mocwww.com.text:08074098 push ebp
& x; a( A: J7 c, C( ^—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074099 mov ebp, esp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: w5 `: c3 ]5 b8 Q
.text:0807409B mov edx, [ebp+8]
. R& K& u/ b: f5 }- ~) i- m( \bbs.mocwww.com.text:0807409E cmp edx, 0FFh # ~+ y; m+ f% A4 G2 ?% \# }
.text:080740A4 jg short loc_80740C0 妖城在线论坛5 r: M; V. }9 x$ l5 F0 _( g
.text:080740A6 push ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. I' _7 _" W9 e6 C+ C/ Y7 j, x
.text:080740A7 mov ecx, 32h 妖城在线论坛/ @/ u; B9 W5 Z h+ [% p+ J, n3 L
.text:080740AC push edx ! k2 z' k; {' A' ?$ {& X
.text:080740AD mov eax, edx
& u. F! I) U& @0 R3 Mbbs.mocwww.com.text:080740AF imul eax, edx
$ G9 ~$ N# e8 u" d.text:080740B2 imul eax, edx
9 H' ?* S7 I' C: `2 x.text:080740B5 cdq
2 M4 N4 X& B. h5 |: {! B1 ?9 g魔力私服,最新魔力宝贝私服技术交流.text:080740B6 idiv ecx
) a1 x+ S: R" y; O% v魔力私服,最新魔力宝贝私服技术交流.text:080740B8 mov edx, [ebp+8] bbs.mocwww.com$ x( x$ @0 p& }, e C# r
.text:080740BB imul eax, edx ) b# Y, l) Z: M( g% m8 \
.text:080740BE —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 C* M0 R0 y5 }1 D6 n
.text:080740BE locret_80740BE:
' q: i' h7 h: b) T.text:080740BE leave + ^1 `" x6 l3 J0 L$ v0 c) W) H
.text:080740BF retn
& F }& }) s" @6 v, a) B妖城在线论坛.text:080740C0 loc_80740C0:
0 ?. P( j* Y- K9 A( A2 E1 |5 o4 `魔力私服,最新魔力宝贝私服技术交流.text:080740C0 mov eax, 0FFFFFFFFh —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! o" \ B' J2 y9 \( P
.text:080740C5 jmp short locret_80740BE
9 d0 v, O; E% q K% N/ P魔力私服,最新魔力宝贝私服技术交流" ~ N# s& J# T8 X
方便起见这里直接把我改好的代码贴出来,与原来不同的地方:
3 ?! w: q% e( D" J2 G—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートCmp edx,0FFh bbs.mocwww.com% G- O: V" D! k2 Z/ u
Jg shortloc_8074C0 魔力私服,最新魔力宝贝私服技术交流5 o4 o+ N8 t8 n# D( o
判断等级是否大于255是的话跳转80740C0 魔力私服,最新魔力宝贝私服技术交流# P* E# ]; Y' p6 K6 @% x* d0 h
否的话进入我们的等级公式: 妖城在线论坛) @+ G5 u2 V. |7 P# I$ o4 M0 \
(等级*等级*等级除以50)*等级
) Z. j, ^( r# b7 ?" ^妖城在线论坛也就是等级三次方除以50再乘以等级
+ T9 _8 M& K' N9 j0 v1 l魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。
' p' N, n0 F. } r妖城在线论坛216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 1 u- Y+ D3 }+ W% i9 W. C5 g
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) Y" |0 c" m% c2 g8 R- M' q
, [$ b0 |( O7 i5 C4 d& K& A& R接下去做公式:
4 H) Y. F, O9 _4 R魔力私服,最新魔力宝贝私服技术交流Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验
' z: N8 t5 E! N( ^) ? C$ D$ W4 \2 c—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov eax,edx 将下一等级的值赋值给eax
4 J8 V4 [# {* y/ m+ {* L JImul eax,edx 将eax,edx相乘,结果存到eax
7 C% |8 K- R1 S! C/ X6 _% ebbs.mocwww.comImul eax,edx 同上
1 b7 t: e: ~2 D" _bbs.mocwww.comCdq 这个做除法不加就会出错,用户登录后服务器当机
3 [( j7 S# J1 x+ k) ~& N0 V$ i: f—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートIdiv ecx eax除以32h算到50倍经验 妖城在线论坛& K! n/ A% }* ` {* q
Mov edx,[ebp+8] 从新获取下一等级的值 魔力私服,最新魔力宝贝私服技术交流) {7 ?0 h' L7 w3 P! w) p
Imul eax,edx 将eax,edx相乘,结果存到eax 魔力私服,最新魔力宝贝私服技术交流9 X& m: M# @ ]: U
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 n) _5 U) [* B2 F: o9 y( c
好了,这样就完成了运算过程。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート9 Z# c! }9 ?- M4 l
' N8 B; q% n1 z/ y4 Obbs.mocwww.com.text:080740C0 loc_80740C0:
+ S' z8 f! R t3 n" Y! ?4 v妖城在线论坛mov eax, 0FFFFFFFFh 妖城在线论坛$ k( x5 c( i/ _
jmp short locret_80740BE —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート; W; V9 `% L3 }1 J& w; o
这一段代码就是等级超过你设置的上限之后返回-1。
& H$ t+ I+ X# A0 g: b魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
1 c* u# W S% e! t# P( }* B妖城在线论坛) N2 R1 [4 D: O% }
下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' T' r! L4 K' m
这里就要用到FlexHex了。
! h7 g8 l; L0 Mbbs.mocwww.com魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 N- |: ~" g" v
首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。 妖城在线论坛( r* ?* v3 v- V9 m" ?+ L& c
如下对应: 妖城在线论坛/ O m. T+ G4 ]
Cmp edx,0ffh 81 FA FF 00 00 00
5 O# f3 N8 [4 q# Q D" h" ^jg short loc_80740C0 71 FA bbs.mocwww.com7 F! m& V) n3 v8 ~1 }% v4 y: p6 I
mov ecx, 32h B9 32 00 00 00 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* ]/ [5 b2 ~) z# y' u3 R/ x9 z
7 U/ L, x4 |4 I' a5 D7 T2 a魔力私服,最新魔力宝贝私服技术交流依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 魔力私服,最新魔力宝贝私服技术交流- }2 F' `; q0 ]9 L% ?5 ~
这个挺有乐趣可以自己慢慢享受摸索。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! C5 V# @9 D3 e3 {3 ^& K
8 }. j$ P7 S! f* f' J1 w魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。