没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
: j9 t" [: Y- J% j& e—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。
, s4 r# L% f" P0 x: ]—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
7 r4 E9 \) N; y+ H4 A—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート用IDA载入gmsv,分析完成后进入Exports选项卡。
1 @9 r# C0 [; {/ |魔力私服,最新魔力宝贝私服技术交流搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( }9 v& T1 B u, A1 i* }8 n
.text:08074098 public CHAR_GetLevelExp
2 Z( j$ } M2 l: B—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 CHAR_GetLevelExp: 妖城在线论坛; l' M* I7 c. }% b- t* `
.text:08074098 push ebp 妖城在线论坛0 ? g, s5 @& N+ _ h! O+ }
.text:08074099 mov ebp, esp / x2 S; R, o" v. J+ Q& }! @
.text:0807409B mov edx, [ebp+8]
p2 K+ i, z8 }& Q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:0807409E cmp edx, 7Eh bbs.mocwww.com) ^9 K0 r8 b5 V4 J& V8 U7 ~7 ~
.text:080740A1 jbe short loc_80740C0
3 a, f. I5 D) D% D: X妖城在线论坛.text:080740A3 push ecx
3 \; y' c$ v) ^. M) `.text:080740A4 mov ecx, 7
! I) r: I [; P9 F5 J. n3 h& ~3 L5 t妖城在线论坛.text:080740A9 push edx
5 h- ^4 a- j5 n1 J" [. z5 f j6 nbbs.mocwww.com.text:080740AA mov eax, edx
! g* r$ `* J" rbbs.mocwww.com.text:080740AC imul eax, edx + I, l7 }+ `+ E% |
.text:080740AF imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 [5 _4 N* q% W; h0 k
.text:080740B2 imul eax, ecx 8 @! j+ G" P" O/ }; `" u) ~
.text:080740B6 loc_80740B6:
$ H" l, @' n8 H# a x# E: Q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BE leave 魔力私服,最新魔力宝贝私服技术交流! L' ]0 i" L- I3 v' W, l3 }+ O
.text:080740BF retn
6 I! y, d4 q# ~% W1 @妖城在线论坛.text:080740C0 loc_80740C0:
9 L% i1 E# Q( K) B1 l! T.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4]
# ^% U3 ]0 r- ]/ o魔力私服,最新魔力宝贝私服技术交流.text:080740C7 jmp short loc_80740B6
9 e8 u+ [/ C6 H* z! r3 X魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ Y* s& V$ c6 Y8 N: T6 l* H
粗糙的解释下这段代码的意思
- P M) z" n9 j! r! R! Rbbs.mocwww.com妖城在线论坛2 P' y1 C5 ^/ f: v
Push edp
4 X- q* w/ _( x5 e; Q妖城在线论坛Mov ebp,esp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 b% U7 Z+ L3 D) D I, } m
Mov edx,[ebp+8] 妖城在线论坛' M+ G: ^, D" F6 ^
获取当前等级的下一级存到edx
' Z g& s) ~/ H- P0 D5 T魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. I4 b; d4 Z: }( K
Cmp edx,7eh
4 B0 Q6 S% m; Z6 I: K- J9 `魔力私服,最新魔力宝贝私服技术交流将edx与7eh也就是10进制数130比较
2 `6 ?& K8 J% _* z6 H
7 N& v- j6 @% Y0 v" ?9 s+ d魔力私服,最新魔力宝贝私服技术交流Jbe shortloc_80740C0 bbs.mocwww.com u; ^! M k4 m* ^* f- H
如果edx小于7eh则进行跳转到80740C0 魔力私服,最新魔力宝贝私服技术交流+ `9 J4 }1 N' S0 c0 g) ^
- k- [$ x! D6 C+ P魔力私服,最新魔力宝贝私服技术交流Push ecx 妖城在线论坛; ~% T7 I- j j$ o
Mov ecx,7 # l5 D$ h: j0 R( b0 t @* V7 D( B
给ecx赋值7
8 f/ ]/ R$ u( }* c妖城在线论坛魔力私服,最新魔力宝贝私服技术交流+ r) P9 l& {4 l# j _
Push edx 3 l" z+ l7 R4 I# V
Mov eax,edx
9 @ [& d0 C1 X h4 `, q, u% Q! d魔力私服,最新魔力宝贝私服技术交流把当前等级+1的值给eax
8 f( X/ B' Q9 U妖城在线论坛
9 W4 {# }9 ]1 TImul eax,edx 妖城在线论坛' P$ r" @$ S$ l4 F- C
把eax与edx相乘,结果存在eax —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ z) E' H6 T) f3 p% \
bbs.mocwww.com! x! r. g( |* R
Imul eax,ecx
% q- e d2 U, u, pbbs.mocwww.com把eax与ecx相乘,结果存在eax
6 d/ O* H: d- N/ E0 }7 X% M魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
# D8 j+ l4 U+ b* c# G: M9 T# v- ^—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートLeave
$ l: K( O$ }' @bbs.mocwww.comRetn
$ p( U1 U& D: L# G6 v9 K5 J) ~妖城在线论坛退出这个过程吧,大概
$ m I2 k8 g; Q1 _( {$ U6 r/ ~$ xbbs.mocwww.com5 H& B8 j) ^. }/ ^! s! H
Mov eax,dwordptrLevelUPtbl[edx*4] bbs.mocwww.com6 u, b$ Y7 w; ~3 y# U
这里是读取经验表的内容给eax,也就是查表读经验
5 ?2 j9 J/ j& _: L7 ?—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートbbs.mocwww.com, h8 \) o; I' b& L' \- g' {7 G
jmp short loc_80740B6 0 C' ^8 q& P, ?* `0 ^
强制跳转到80740B6 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 v+ ]2 i% m7 k% f. E
# _5 o# i4 ]- d4 hbbs.mocwww.com好了,这段代码就这点意思,逻辑上不难理解。
0 m% j' i5 Z' X) `# f+ K# e! w! E—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。 妖城在线论坛8 ^! L2 o, r; s7 P
魔力私服,最新魔力宝贝私服技术交流1 x. d8 x% l* p# c9 _
分析完了之后开始修改了,上面的代码具体作用如下:
9 B, F, o* g, g6 i7 R2 l魔力私服,最新魔力宝贝私服技术交流判断等级下一级是否小于7eh,是则跳转到查表。 妖城在线论坛1 A$ m# a) ?, K. W4 m$ B" B/ q* L
否的话也就是大于7eh时,按照下面算法运算 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 I' ^4 D7 n' t4 s4 L8 G
.text:080740A3 push ecx bbs.mocwww.com4 ?0 r9 Z3 ~/ v* q
.text:080740A4 mov ecx, 7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 S7 K: H0 c9 T5 x: _
.text:080740A9 push edx 魔力私服,最新魔力宝贝私服技术交流) K, V, }/ Q3 Y! ~ x9 Q: J* N) ]
.text:080740AA mov eax, edx
e& {% F3 Q: e) Q& K妖城在线论坛.text:080740AC imul eax, edx
( H+ w9 S3 o* s$ C0 h7 c0 p7 p魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AF imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: y0 H8 O2 O: A) `8 n, l
.text:080740B2 imul eax, ecx
- i8 O6 U+ k' _" P, H—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート也就是eax的三次方乘以ecx,这里可以改成我想要的。
3 d0 R" |/ B9 B! p2 a/ e# `魔力私服,最新魔力宝贝私服技术交流
& v5 ~ S* P$ u4 h# o0 h魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表我的目标是改称等级的四次方除以50,但是问题来了。 . K1 C6 a) ?6 ]9 H7 b
怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。 bbs.mocwww.com+ @3 y; t$ f% V
0 d; x# [3 z( t7 W2 _* ^—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 public CHAR_GetLevelExp
% [' ~) G _7 M+ w: U妖城在线论坛.text:08074098 CHAR_GetLevelExp:
& l* A& C" X( T0 P6 \bbs.mocwww.com.text:08074098
! x8 h( z7 c& Z W3 fbbs.mocwww.com.text:08074098 push ebp
# r5 {% j4 v- h1 @魔力私服,最新魔力宝贝私服技术交流.text:08074099 mov ebp, esp
6 @) h" X) j8 t" ]1 ^; P& c$ _( S—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:0807409B mov edx, [ebp+8] 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% w2 o. A S2 J: o2 Y
.text:0807409E cmp edx, 0FFh 魔力私服,最新魔力宝贝私服技术交流; ~ T: p! `1 x+ v; t* \6 V8 @. A
.text:080740A4 jg short loc_80740C0
9 t( Z6 e Y( ]4 m' r- g- v—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A6 push ecx 妖城在线论坛" k* b& K" @ d7 K
.text:080740A7 mov ecx, 32h
; D5 S: A" I, Y3 s% t6 A" H1 h+ |.text:080740AC push edx
" a2 C1 O6 P w' {8 ?- Ybbs.mocwww.com.text:080740AD mov eax, edx
5 {% k9 T* W7 q) O- W3 K3 {魔力私服,最新魔力宝贝私服技术交流.text:080740AF imul eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" v* U+ Y( f/ p8 D) ]" L- M
.text:080740B2 imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; s3 l8 x6 \4 v, F# M6 X
.text:080740B5 cdq 妖城在线论坛4 s3 v; N: B: S, o) J
.text:080740B6 idiv ecx
5 q# T! M, V: U# |! N魔力私服,最新魔力宝贝私服技术交流.text:080740B8 mov edx, [ebp+8]
% [1 S8 H1 }6 ]7 Lbbs.mocwww.com.text:080740BB imul eax, edx 妖城在线论坛: d: i) y' C4 a3 t& P3 M
.text:080740BE V ]9 n% v0 `2 I% w, W
.text:080740BE locret_80740BE:
- s$ q6 g* L( }- i- W.text:080740BE leave
$ J- V; f& s) e; {# _魔力私服,最新魔力宝贝私服技术交流.text:080740BF retn
1 g$ O. r! L- `, b魔力私服,最新魔力宝贝私服技术交流.text:080740C0 loc_80740C0: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 X: m3 m. A9 a2 T0 ^9 m
.text:080740C0 mov eax, 0FFFFFFFFh
# i. u9 K* c# y妖城在线论坛.text:080740C5 jmp short locret_80740BE 妖城在线论坛9 y" y4 t, U* r4 o' A
4 N/ u0 }) w7 s4 a' z方便起见这里直接把我改好的代码贴出来,与原来不同的地方: 魔力私服,最新魔力宝贝私服技术交流+ p# y' ^9 Z0 ]: E
Cmp edx,0FFh
9 J; i3 x' U& }魔力私服,最新魔力宝贝私服技术交流Jg shortloc_8074C0 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 q3 |/ @% h1 l5 ^# b" J
判断等级是否大于255是的话跳转80740C0
! N/ E5 ~' s( z$ _魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表否的话进入我们的等级公式: ' P9 P5 w4 F; q* I/ s1 b, H
(等级*等级*等级除以50)*等级
) w0 q, L) p. X1 Q9 }妖城在线论坛也就是等级三次方除以50再乘以等级 / v; e+ E& A0 {1 U4 f* t
为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。
) I: Q3 U# T* D& Vbbs.mocwww.com216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 魔力私服,最新魔力宝贝私服技术交流0 B! B& g% L4 k# i" K* V' Q2 |/ F y: Q
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
* g5 f2 O v+ ]; N [—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
( ~% N* U0 U0 C6 x4 n妖城在线论坛接下去做公式: 妖城在线论坛, Y, o9 i; m" I) o% b5 F; e
Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验 bbs.mocwww.com7 z1 Z' k) O) T8 e4 o
Mov eax,edx 将下一等级的值赋值给eax bbs.mocwww.com/ h/ C5 ~' h! z$ z* ?8 \
Imul eax,edx 将eax,edx相乘,结果存到eax
4 s+ V- U4 O! bImul eax,edx 同上 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート; m/ B' i3 f5 I; z
Cdq 这个做除法不加就会出错,用户登录后服务器当机
' u1 M1 K+ K+ }8 Z$ V7 d妖城在线论坛Idiv ecx eax除以32h算到50倍经验
: u" c$ t A F魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Mov edx,[ebp+8] 从新获取下一等级的值
( i0 }9 M _! e; a7 \# n9 t0 [Imul eax,edx 将eax,edx相乘,结果存到eax 魔力私服,最新魔力宝贝私服技术交流/ J. M# I" _& b; J9 t1 v: z/ Z
* j! L4 z) D. n6 ~' }& k妖城在线论坛好了,这样就完成了运算过程。
/ ` i, _3 o4 B( f7 y# ibbs.mocwww.com魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- B" d3 W: p. y# Q+ l
.text:080740C0 loc_80740C0: 妖城在线论坛" c9 _5 W7 D" L7 z
mov eax, 0FFFFFFFFh 3 t- `' X# t, L2 S/ j
jmp short locret_80740BE bbs.mocwww.com1 i n7 T/ k5 t' P# C1 M% u
这一段代码就是等级超过你设置的上限之后返回-1。
( z- K6 Y+ H$ I. ]魔力私服,最新魔力宝贝私服技术交流
9 ^5 ?8 F$ u3 b$ f; c: X. B9 A" z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
; M6 c* ^& X3 k4 F—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
: A V1 K, w3 F0 I魔力私服,最新魔力宝贝私服技术交流这里就要用到FlexHex了。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# F$ X2 y% x$ Y0 F$ M3 _
, u- r) W# h. V- t& S' a8 u6 l) y- K魔力私服,最新魔力宝贝私服技术交流首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
+ K' T$ ~' c9 V g; e—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如下对应: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* z' @2 V# d: m2 @
Cmp edx,0ffh 81 FA FF 00 00 00 魔力私服,最新魔力宝贝私服技术交流: F$ ^% W- R8 L# g/ v
jg short loc_80740C0 71 FA bbs.mocwww.com9 M. B* `. m8 M" y3 E- c
mov ecx, 32h B9 32 00 00 00
( K# y" g& ?. Z% T% A9 Z+ M; i魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 L/ b: R; w4 I
依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( D7 h0 G% c' @( ?& v5 B3 c
这个挺有乐趣可以自己慢慢享受摸索。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 L0 e$ r5 a @# w& C- ~
+ X$ E! J4 o; H1 T妖城在线论坛以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。