没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( }/ k% v5 \, T; ^. X3 P
使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。
& j) ]+ T' | C; {魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
, ^( J5 i+ L: n用IDA载入gmsv,分析完成后进入Exports选项卡。 bbs.mocwww.com! ^- u: k( \$ y# P
搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 bbs.mocwww.com7 H+ K1 R5 v5 V! K, s
.text:08074098 public CHAR_GetLevelExp
$ H4 P1 J8 i, u V, d/ ~3 [妖城在线论坛.text:08074098 CHAR_GetLevelExp: 妖城在线论坛+ s- Q5 c# O* Z9 ~4 ^# l
.text:08074098 push ebp " A' J, H, Z W" ~5 t
.text:08074099 mov ebp, esp
( {( g: \4 i0 H% ~" P4 u) Q& f+ I—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:0807409B mov edx, [ebp+8]
1 z8 N" T& |* l2 Z) y- U2 U9 f魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:0807409E cmp edx, 7Eh
0 L7 R: ?# T+ g6 y7 Ybbs.mocwww.com.text:080740A1 jbe short loc_80740C0
5 G( x! t( E2 x( v.text:080740A3 push ecx
7 \; m/ l0 v& n$ S1 @ h$ H.text:080740A4 mov ecx, 7 魔力私服,最新魔力宝贝私服技术交流, r& Y, G0 E3 E$ t4 A; N+ {
.text:080740A9 push edx
4 Y' v- Q* v5 L6 q/ rbbs.mocwww.com.text:080740AA mov eax, edx
6 E' _7 K% L2 E妖城在线论坛.text:080740AC imul eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) `) _3 l; t' Q* `( _& b/ A
.text:080740AF imul eax, edx
3 A# W# m% Z, h. zbbs.mocwww.com.text:080740B2 imul eax, ecx
G0 p& _) }5 ^% ~$ Z' sbbs.mocwww.com.text:080740B6 loc_80740B6:
" N; v9 |9 i. L! {bbs.mocwww.com.text:080740BE leave
6 I- s7 M% [; `* D% c5 i妖城在线论坛.text:080740BF retn 魔力私服,最新魔力宝贝私服技术交流& w G! K. C5 o( L, h
.text:080740C0 loc_80740C0:
2 w% R4 ^' f& m) w4 N/ X" o$ P—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4]
3 K) `, ? @& Sbbs.mocwww.com.text:080740C7 jmp short loc_80740B6
0 w1 s! x1 u1 Q O/ @2 d—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
/ Y6 E; V5 w& w2 f$ N妖城在线论坛粗糙的解释下这段代码的意思 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& `4 m/ C7 |$ r
4 ]( b: P; p+ d" h0 o( z/ v魔力私服,最新魔力宝贝私服技术交流Push edp
; J) Y( t, M- e* [9 f—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov ebp,esp —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 @$ {+ @& `9 U* Q: y
Mov edx,[ebp+8]
5 I4 K! [4 z; n; G) J; y& g8 [获取当前等级的下一级存到edx ' f4 k& Y! [# O* F6 H
& Z8 l# F0 X: J {4 ?# T0 d* Pbbs.mocwww.comCmp edx,7eh
0 v0 [) M$ A T将edx与7eh也就是10进制数130比较
- y/ A. Q# O# r! \6 d4 s. p) z
/ j5 }( v( g! ]& s& ^魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Jbe shortloc_80740C0
: P( P+ [/ c, q' L8 X/ P3 s* ]1 `1 ubbs.mocwww.com如果edx小于7eh则进行跳转到80740C0 魔力私服,最新魔力宝贝私服技术交流: n" D* ^! _, \, X# w; |7 O2 F
2 D' u5 s+ ^. A
Push ecx 魔力私服,最新魔力宝贝私服技术交流4 T0 L7 Z$ r5 i
Mov ecx,7 魔力私服,最新魔力宝贝私服技术交流2 P4 i8 W4 U2 s
给ecx赋值7 bbs.mocwww.com; r* Z. ]& p0 a) p7 F" h! A* G
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 i6 f* t5 d; C8 u1 ]3 g. ?
Push edx
& o# K: h/ I E8 i. |妖城在线论坛Mov eax,edx $ C. n( F; T, z0 p, _5 |
把当前等级+1的值给eax
5 j- i. G X) h' N1 I6 X3 S% D% i魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: u& @% g g o% U
Imul eax,edx
w# w0 H+ B- Q3 e6 L6 r把eax与edx相乘,结果存在eax —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 r3 O9 D: M! l
: {! r; a7 S7 [: V$ E8 ]' @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートImul eax,ecx bbs.mocwww.com8 u$ o" P$ `, N: ?* ]
把eax与ecx相乘,结果存在eax
* ?$ G& g2 S8 @0 f* |& ]bbs.mocwww.com魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 @8 d6 i0 ^) j: X3 u
Leave
6 E# j2 e' N8 Zbbs.mocwww.comRetn
+ |3 q$ O- b2 Q" W4 r* U8 X妖城在线论坛退出这个过程吧,大概 妖城在线论坛. ]7 r( w/ _# y' e0 v8 h
* A, U# P+ r, F" v# f" }1 n4 y4 M6 w—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov eax,dwordptrLevelUPtbl[edx*4] 妖城在线论坛 l. @* q+ Y0 I: V: Z
这里是读取经验表的内容给eax,也就是查表读经验 bbs.mocwww.com& i8 A3 u# Z$ u* B& K3 H
+ }, M6 ]( l, V. f) @) g
jmp short loc_80740B6 妖城在线论坛! d$ Q% U$ L& V6 }4 p% ~
强制跳转到80740B6 魔力私服,最新魔力宝贝私服技术交流/ B' l8 f3 @2 m! ]3 y
, J6 Y) ~( \1 Y1 Rbbs.mocwww.com好了,这段代码就这点意思,逻辑上不难理解。
) i/ L0 s0 o+ A' w, W: Qbbs.mocwww.com虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。
4 f+ i, {1 |. s妖城在线论坛魔力私服,最新魔力宝贝私服技术交流8 P4 O. `2 r0 u8 T: Z. P
分析完了之后开始修改了,上面的代码具体作用如下:
2 m9 n9 @8 f; B! i魔力私服,最新魔力宝贝私服技术交流判断等级下一级是否小于7eh,是则跳转到查表。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% t3 ?' B- @* x5 W" Q6 q0 G
否的话也就是大于7eh时,按照下面算法运算
+ W* T3 J& ^; a2 g—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A3 push ecx
9 ^5 j5 H9 [: T7 v/ ?6 A/ d D魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A4 mov ecx, 7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 X3 h$ W2 i: M+ p3 s' d
.text:080740A9 push edx 妖城在线论坛! |8 J/ w: t' T. ~; J% s$ U
.text:080740AA mov eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート; u- _& i- ?/ e9 j1 k- C. o" j3 o
.text:080740AC imul eax, edx
+ Q. }# ~& b7 R+ ^6 [! z.text:080740AF imul eax, edx
/ |0 E& s& t' |' Dbbs.mocwww.com.text:080740B2 imul eax, ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 g6 D& ~8 O2 n7 G# S- P7 V# G
也就是eax的三次方乘以ecx,这里可以改成我想要的。
" {+ |: }9 R U0 H O' pbbs.mocwww.com
! \6 c' b! q2 v7 t* xbbs.mocwww.com我的目标是改称等级的四次方除以50,但是问题来了。 妖城在线论坛+ C5 _2 H: ^3 x/ X( @
怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。 妖城在线论坛6 N! M; P7 W& j0 w0 a
5 u0 ] V2 i0 [' w魔力私服,最新魔力宝贝私服技术交流.text:08074098 public CHAR_GetLevelExp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" e, c" m0 ?3 v, d6 t) x2 O/ q
.text:08074098 CHAR_GetLevelExp:
+ N: c. G! x. D" H {魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 魔力私服,最新魔力宝贝私服技术交流+ \" ]; K% P" i1 D' z- m
.text:08074098 push ebp
- k9 M' P/ p. S9 y% n) x.text:08074099 mov ebp, esp 妖城在线论坛2 C) z7 R# T- q y$ K( J
.text:0807409B mov edx, [ebp+8]
& @5 c* K, \' f9 H! ^—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:0807409E cmp edx, 0FFh 魔力私服,最新魔力宝贝私服技术交流) U2 t' z6 H+ ]9 T( M
.text:080740A4 jg short loc_80740C0
5 \% q5 D8 G; B" K) u2 u& \妖城在线论坛.text:080740A6 push ecx
7 I0 s9 K! ?1 W4 b; G7 ebbs.mocwww.com.text:080740A7 mov ecx, 32h bbs.mocwww.com: ~: a$ j9 }4 x# w/ g* Y$ i
.text:080740AC push edx
9 L2 j0 E- Y% V# j( I" Z魔力私服,最新魔力宝贝私服技术交流.text:080740AD mov eax, edx
. m" O9 T: B" m; g* F7 t魔力私服,最新魔力宝贝私服技术交流.text:080740AF imul eax, edx
7 V2 z) z. I+ Y7 z4 {1 E3 u.text:080740B2 imul eax, edx
% }$ Y+ o- ~8 [1 j.text:080740B5 cdq
+ z) W5 C. L) m: ]; [( z3 Q9 g魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740B6 idiv ecx . r2 F B9 H9 r$ C
.text:080740B8 mov edx, [ebp+8]
7 v: f6 N7 \0 C( z3 W魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BB imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! y; e" N; W% N8 B" f9 _) s
.text:080740BE : j- K, { `/ K% |+ m
.text:080740BE locret_80740BE: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 Y) G/ [; h0 P2 W
.text:080740BE leave
c1 Z: `& E' H4 |% J, ]1 E' Y$ n魔力私服,最新魔力宝贝私服技术交流.text:080740BF retn 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 T5 W. H( w" `7 L8 M
.text:080740C0 loc_80740C0:
2 }$ i- z/ r% E, i魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C0 mov eax, 0FFFFFFFFh
i) j0 G" J" X+ K5 m妖城在线论坛.text:080740C5 jmp short locret_80740BE
' O8 I# P; L% S—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート妖城在线论坛, X4 \1 E& Y/ Y; {- x" d
方便起见这里直接把我改好的代码贴出来,与原来不同的地方:
' w& U8 y2 v% ?& j—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートCmp edx,0FFh bbs.mocwww.com' v" Z( G8 j: T; N$ n O& n& |
Jg shortloc_8074C0
" z6 ?3 m( C6 [3 Z1 h) F6 g判断等级是否大于255是的话跳转80740C0
% v. g z5 f6 v! b: l# ]魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表否的话进入我们的等级公式: bbs.mocwww.com1 ~. G4 ^( }; ?6 a6 E
(等级*等级*等级除以50)*等级
" C5 E7 K- `8 G. x( d—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート也就是等级三次方除以50再乘以等级 5 x, O" Z. w' G: r
为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。
* a4 C. ~9 H/ n- n妖城在线论坛216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。
3 U y/ L% m2 f' k2 e魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。 魔力私服,最新魔力宝贝私服技术交流+ H3 }; [! v* k# S+ T3 ^
魔力私服,最新魔力宝贝私服技术交流3 W2 _4 o# [9 M
接下去做公式:
* C; q& D' n5 w P @6 b魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验 & i8 t! T; C9 a* i' Q( J
Mov eax,edx 将下一等级的值赋值给eax
* H; y, A+ l% p* U妖城在线论坛Imul eax,edx 将eax,edx相乘,结果存到eax
6 ]3 b: o; L2 [1 E妖城在线论坛Imul eax,edx 同上 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& g" L- _4 _/ M8 o* L% w
Cdq 这个做除法不加就会出错,用户登录后服务器当机
K0 D% }$ P8 F* z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートIdiv ecx eax除以32h算到50倍经验 bbs.mocwww.com$ L) F9 ~3 y1 S0 I( E1 G' t
Mov edx,[ebp+8] 从新获取下一等级的值 魔力私服,最新魔力宝贝私服技术交流4 ]$ ^6 `4 w# o
Imul eax,edx 将eax,edx相乘,结果存到eax 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 @; c( S" j5 J* S* U! o# v
bbs.mocwww.com+ W" _ c# E, D8 f+ v/ P5 R n) t
好了,这样就完成了运算过程。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 a# X4 d1 y" k1 P9 b$ @4 {
; r2 w( z2 _; N: Qbbs.mocwww.com.text:080740C0 loc_80740C0: 妖城在线论坛; d3 F" q& p+ b. J1 E; G
mov eax, 0FFFFFFFFh ; O2 ]9 Q+ c: e
jmp short locret_80740BE % c9 K- Y( Z9 Q" N5 C& a6 u& I' h4 s* f
这一段代码就是等级超过你设置的上限之后返回-1。
& i, B7 e } C' M9 R7 Q& g: P. zbbs.mocwww.com
c9 D6 N% C$ c+ p3 f% |, Hbbs.mocwww.com
, J# V4 [1 N8 R n; g2 `) ~bbs.mocwww.com下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
- H3 k# [! K* U) g, ^8 x$ U这里就要用到FlexHex了。 魔力私服,最新魔力宝贝私服技术交流, _5 |+ l' X D9 o, ]! [
, {$ K4 F G3 ^+ B6 o' I( G3 k& ^bbs.mocwww.com首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
* W+ `$ L" f! ^0 {4 O如下对应:
, O. {# P/ {! b# T魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Cmp edx,0ffh 81 FA FF 00 00 00 魔力私服,最新魔力宝贝私服技术交流5 F4 O. T9 J: x( a$ y
jg short loc_80740C0 71 FA —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: }% T6 B5 J3 J& F
mov ecx, 32h B9 32 00 00 00 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( }2 P! M* e4 B! p. R
0 @4 l* p9 Y0 f J: [, \魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 妖城在线论坛; R# e8 d( e+ }1 f
这个挺有乐趣可以自己慢慢享受摸索。
% B) l/ P! r: zbbs.mocwww.com
& I- M) o: X9 |) t6 ^2 F; O0 X! b以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。