没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
9 `, t* g& f: Q3 |9 O* X: ]魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。
: Q4 ?' {4 v* F妖城在线论坛+ v& e: ~1 ~6 P+ ~4 [% T6 }/ _
用IDA载入gmsv,分析完成后进入Exports选项卡。
- V z* N0 k& m$ S; l魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。
9 C. V& U$ o3 Z3 V1 H.text:08074098 public CHAR_GetLevelExp
$ X. d* [; q0 M5 b& B# ?bbs.mocwww.com.text:08074098 CHAR_GetLevelExp:
`3 h3 h! e* ~4 W妖城在线论坛.text:08074098 push ebp 妖城在线论坛0 X" a5 S! s- _. v4 u* N4 T) J
.text:08074099 mov ebp, esp 妖城在线论坛4 c5 I* V2 [1 d) b' {
.text:0807409B mov edx, [ebp+8]
: n' t: R! N% n( |4 W) S.text:0807409E cmp edx, 7Eh
( B3 Z# C9 s# l# ~4 m魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A1 jbe short loc_80740C0
# h6 q6 j" y/ e( K% D% f魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A3 push ecx
% j! Z$ Y5 o1 @8 L6 V$ J! |魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A4 mov ecx, 7
' ^+ U* g6 E# F% o8 K* k: ]' U3 pbbs.mocwww.com.text:080740A9 push edx 妖城在线论坛. K0 O2 |0 e8 |5 p
.text:080740AA mov eax, edx 魔力私服,最新魔力宝贝私服技术交流; q8 z% f! b1 L& `3 @+ r' {
.text:080740AC imul eax, edx
: ?4 M: T$ D9 G' N. Y: `/ q, A& S妖城在线论坛.text:080740AF imul eax, edx # U4 T: k% X7 Z; V# r( o' Z0 s
.text:080740B2 imul eax, ecx 妖城在线论坛0 P+ m7 S6 \& r2 h
.text:080740B6 loc_80740B6:
% s! L/ H0 F' {—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BE leave bbs.mocwww.com2 [% `1 }+ ^8 I
.text:080740BF retn ; O" t: |% [4 t" `/ b; U% z8 X5 L
.text:080740C0 loc_80740C0:
. E. W4 Q" f9 x+ k5 I—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4]
+ d8 Z- \1 w1 m- |; w% X) B魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C7 jmp short loc_80740B6
4 h5 P2 U& B7 x s
$ h M; s, B' K5 o' Y/ N- U魔力私服,最新魔力宝贝私服技术交流粗糙的解释下这段代码的意思
, i) F" B2 e1 ^$ k8 t3 l' x2 d魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表妖城在线论坛$ O9 F" l% d2 s: b6 j) r
Push edp
# Z% A2 x& m Z; o5 t: ~5 pMov ebp,esp
$ l, q5 k5 D5 m) M& k! S2 f7 j魔力私服,最新魔力宝贝私服技术交流Mov edx,[ebp+8] —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ X; Y; M' l( A& D0 m7 f
获取当前等级的下一级存到edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 w2 T# c; c, B2 @9 v/ Q
/ |7 h; t& e- U( t妖城在线论坛Cmp edx,7eh
, q$ f9 B4 H. L- K4 f魔力私服,最新魔力宝贝私服技术交流将edx与7eh也就是10进制数130比较 1 m& ^; V! N8 E+ g* l
+ |7 H1 Z9 U7 S; e6 C2 C* _( rJbe shortloc_80740C0
Q) Y. I" ~8 C. y& D& n妖城在线论坛如果edx小于7eh则进行跳转到80740C0
7 F+ s }) O3 w魔力私服,最新魔力宝贝私服技术交流
/ D! \" ?" c5 P! y* p# Q; b—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートPush ecx
* z+ V" }: u! R5 g( D' ^" WMov ecx,7
% z7 j) D+ a6 P. Q6 u妖城在线论坛给ecx赋值7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, f% e+ p2 x8 y6 j
bbs.mocwww.com* P( @ H) F0 M9 K. D6 E4 a
Push edx
8 E% F& O: m4 A Z. _Mov eax,edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 y- r! |* I( A* L+ y' q. d
把当前等级+1的值给eax 魔力私服,最新魔力宝贝私服技术交流3 U( h* E H' D% Q9 B
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ W) ^4 i5 |' o- K' x- w# I
Imul eax,edx
) [% p9 b. i, X) E" y- b- m/ q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート把eax与edx相乘,结果存在eax
6 n7 l4 E6 Z1 u8 Qbbs.mocwww.com—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! J$ H8 z! b% k3 w0 {: f
Imul eax,ecx
; j' O1 C# ]* D8 d/ G3 r—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート把eax与ecx相乘,结果存在eax
) \! {2 H' ]/ Y% m8 h' [魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表bbs.mocwww.com& G: ?$ S. I. b+ R3 x# o: g, k* u9 W
Leave
$ O" L( r! ~4 ]& d, l# N0 V魔力私服,最新魔力宝贝私服技术交流Retn
+ q' Q' X% |- |8 W4 h) R! Nbbs.mocwww.com退出这个过程吧,大概
# p' ~6 Z X9 H6 r I—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート妖城在线论坛' g6 O7 i r" m1 i# Y5 Q3 V
Mov eax,dwordptrLevelUPtbl[edx*4] 3 [( l8 O# G' y: D1 G5 \4 I
这里是读取经验表的内容给eax,也就是查表读经验
+ }: P# t* ?6 P, r; J. r: M" kbbs.mocwww.com魔力私服,最新魔力宝贝私服技术交流! N/ S* Z" G% ^: C0 i2 G/ }
jmp short loc_80740B6 妖城在线论坛- K- @# P) W0 y# i% Z* I
强制跳转到80740B6 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ l. J+ q" U$ A
0 M$ x0 J/ z3 H% E' f. Hbbs.mocwww.com好了,这段代码就这点意思,逻辑上不难理解。 魔力私服,最新魔力宝贝私服技术交流" z3 C" V$ Y: L; H
虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。
# q7 y0 S6 ~' W6 |- [ U妖城在线论坛
; u2 B+ t2 V6 J. e+ q. U, s妖城在线论坛分析完了之后开始修改了,上面的代码具体作用如下: bbs.mocwww.com8 g1 ?1 ]7 v e. S0 B
判断等级下一级是否小于7eh,是则跳转到查表。 妖城在线论坛! F3 ]* ]) H9 ^* M5 S7 f0 n
否的话也就是大于7eh时,按照下面算法运算
8 q2 L) t- W7 B4 t魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A3 push ecx
r( l U1 M" ]+ ^% n( D* Q: {魔力私服,最新魔力宝贝私服技术交流.text:080740A4 mov ecx, 7 魔力私服,最新魔力宝贝私服技术交流' h) C+ \0 O9 c$ M% Z
.text:080740A9 push edx bbs.mocwww.com [( ~/ H& \8 ^. A9 b/ l
.text:080740AA mov eax, edx
) X. k; O4 W5 V5 B魔力私服,最新魔力宝贝私服技术交流.text:080740AC imul eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 [' _# \% @; [% G4 A
.text:080740AF imul eax, edx 妖城在线论坛/ D" b2 ?$ c+ _- A6 }& n
.text:080740B2 imul eax, ecx
( R; k. O* _' ]# T0 a, E; l5 M# k' ]妖城在线论坛也就是eax的三次方乘以ecx,这里可以改成我想要的。 : z. ]) i9 c+ d" j8 T [. t0 m
魔力私服,最新魔力宝贝私服技术交流3 r; T1 Z1 K# \" o& g
我的目标是改称等级的四次方除以50,但是问题来了。
) B8 L) k# q& q5 {. F魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。
( v9 ]& J# C6 S/ r; g* z+ ?1 O—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート魔力私服,最新魔力宝贝私服技术交流, T8 Z& {0 D K. x
.text:08074098 public CHAR_GetLevelExp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 G' {3 V* S# V/ ~( G3 e8 x: N4 m
.text:08074098 CHAR_GetLevelExp: 妖城在线论坛( [4 D( M: `# p' X
.text:08074098
7 m, H- D' ^$ A1 Z& N: l7 b0 y魔力私服,最新魔力宝贝私服技术交流.text:08074098 push ebp
0 J7 Y2 D `5 T7 d9 o. e/ H魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074099 mov ebp, esp
; q% Q$ p9 E! D* Z! E魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:0807409B mov edx, [ebp+8] bbs.mocwww.com% Y7 ~4 o/ e4 m& f( k
.text:0807409E cmp edx, 0FFh
/ q: C$ g V3 E+ q( k4 P妖城在线论坛.text:080740A4 jg short loc_80740C0
. Y3 T/ `. v9 j& U9 W# \: V魔力私服,最新魔力宝贝私服技术交流.text:080740A6 push ecx
* ]' @/ x! b- Q! }$ S6 hbbs.mocwww.com.text:080740A7 mov ecx, 32h 妖城在线论坛& P! s! Q$ W: v, @8 t9 Z* k' q
.text:080740AC push edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 G: j9 N3 t) L
.text:080740AD mov eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート; l3 R- @2 w/ g' x1 o
.text:080740AF imul eax, edx
5 ]4 A3 |+ O7 wbbs.mocwww.com.text:080740B2 imul eax, edx
4 i$ @2 h8 [. _/ o.text:080740B5 cdq 魔力私服,最新魔力宝贝私服技术交流- i& H" |: z- r
.text:080740B6 idiv ecx 妖城在线论坛' i5 l# W8 }. _. @( E5 f
.text:080740B8 mov edx, [ebp+8]
# j5 Z0 N6 V5 }魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BB imul eax, edx
}+ n6 z0 I, Y( O! G; Y' X—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BE 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" n6 G/ [# a7 I1 ^& F: B
.text:080740BE locret_80740BE:
; M4 R* z6 D/ h8 v1 X3 k% j7 t魔力私服,最新魔力宝贝私服技术交流.text:080740BE leave
0 ~, N) g- T, J/ q W* Q. S4 ]bbs.mocwww.com.text:080740BF retn 妖城在线论坛2 Q9 h0 H/ e( y- x* V1 x7 L- b
.text:080740C0 loc_80740C0:
& f, f' C9 x9 Z& o2 t3 E) E6 t魔力私服,最新魔力宝贝私服技术交流.text:080740C0 mov eax, 0FFFFFFFFh —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' x! c# }, I) u
.text:080740C5 jmp short locret_80740BE
1 Q3 ~/ @! \# F9 D$ n7 |- `魔力私服,最新魔力宝贝私服技术交流+ e! |+ X& K& g) d% e) e( V( `0 ^
方便起见这里直接把我改好的代码贴出来,与原来不同的地方: 魔力私服,最新魔力宝贝私服技术交流7 z' c* n1 i; z
Cmp edx,0FFh
1 J6 L$ z( y8 R- {3 u+ O—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートJg shortloc_8074C0
6 h- U4 R. E& T8 z判断等级是否大于255是的话跳转80740C0
, W3 d3 L& V6 Q* g$ ^6 S$ _魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表否的话进入我们的等级公式:
6 P; r5 ]3 K" i9 C" L魔力私服,最新魔力宝贝私服技术交流(等级*等级*等级除以50)*等级 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 j' O* d9 Q5 D% t, m# Y
也就是等级三次方除以50再乘以等级 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ p- L- D e# I( {5 M% L: G
为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。
D# b4 D5 Z. ~" n8 L妖城在线论坛216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート f4 M: q4 C0 K9 E9 ]
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。 8 a: k* Q( ^# X6 m9 s* Z
$ U. f5 F3 J. c0 I, C& Y魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表接下去做公式: 魔力私服,最新魔力宝贝私服技术交流: d- @5 Y* q) A9 o8 X. _
Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验
2 q8 T7 d2 m# E# p( wMov eax,edx 将下一等级的值赋值给eax 妖城在线论坛3 T' a3 C7 |. e
Imul eax,edx 将eax,edx相乘,结果存到eax bbs.mocwww.com: i- @. d& G0 z: o
Imul eax,edx 同上 魔力私服,最新魔力宝贝私服技术交流. n. O/ p1 g3 `3 v7 R6 H: D
Cdq 这个做除法不加就会出错,用户登录后服务器当机
! w3 K9 A3 u$ u0 H( n魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Idiv ecx eax除以32h算到50倍经验 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# R9 z: U1 R' x9 O
Mov edx,[ebp+8] 从新获取下一等级的值 bbs.mocwww.com Y5 L2 [9 h V, Z$ z+ O/ N+ }: ?$ l
Imul eax,edx 将eax,edx相乘,结果存到eax 魔力私服,最新魔力宝贝私服技术交流+ S0 n4 h0 R! y% B3 W
! X5 H" o/ f7 o# W' \ p* B8 z妖城在线论坛好了,这样就完成了运算过程。
D, ]" S: y8 a' U2 X# j7 T! x; ^魔力私服,最新魔力宝贝私服技术交流
% R( w* Y+ u! B—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 loc_80740C0: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; H. y8 e) b7 c) X4 [8 h+ E% I
mov eax, 0FFFFFFFFh 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( @& N+ j2 B0 n6 z4 K0 k2 `! `
jmp short locret_80740BE —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 y" o8 B" t5 K3 f' q2 U4 ~+ H
这一段代码就是等级超过你设置的上限之后返回-1。 bbs.mocwww.com% H6 x# [ V0 d$ ?( E
& M- r6 _9 Y2 K
3 ]2 d# S! H3 [
下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
/ Z; x O# p( D7 O/ N. |5 k魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表这里就要用到FlexHex了。
2 `) T0 w: Z' q. y魔力私服,最新魔力宝贝私服技术交流
% Y* r$ ?* X# E5 Y2 G妖城在线论坛首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
5 k" @* Y) {1 v& h9 qbbs.mocwww.com如下对应: bbs.mocwww.com+ O5 ~7 D: {. B5 e
Cmp edx,0ffh 81 FA FF 00 00 00
9 B( S) ?* A' i, A魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表jg short loc_80740C0 71 FA 妖城在线论坛0 _- T& e: s- W
mov ecx, 32h B9 32 00 00 00 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ D, |, A; Z* e+ ^$ X) k( @
2 H% V7 _; J. H2 v妖城在线论坛依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。
0 g4 U; j! [. x* `. m+ `% f) X—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这个挺有乐趣可以自己慢慢享受摸索。
! j- x: c) `. {* m魔力私服,最新魔力宝贝私服技术交流
7 J* p4 h2 j. @/ u1 n—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。