发新话题
打印

[魔力私服分享] 没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。

没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。

没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 W+ s$ b) X8 [) T) |
使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。 4 q1 u5 {( B3 a$ h6 A1 z) C. \4 j
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ f* W" ~; f- \. }$ L
用IDA载入gmsv,分析完成后进入Exports选项卡。
$ z7 n# Q- T9 _! Q3 X  x魔力私服,最新魔力宝贝私服技术交流搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 bbs.mocwww.com. ~% D, Q. w" N
.text:08074098                 public CHAR_GetLevelExp
9 _! u2 A$ G8 w$ Ebbs.mocwww.com.text:08074098 CHAR_GetLevelExp:
' m2 }  T2 @6 ~3 {.text:08074098                 push    ebp 魔力私服,最新魔力宝贝私服技术交流$ W" H' a' R. x8 E  `- J2 c$ ?, c
.text:08074099                 mov     ebp, esp ( ]$ ]3 {! V4 y$ y
.text:0807409B                 mov     edx, [ebp+8] bbs.mocwww.com; ]1 K1 ~- A+ E/ P6 ?
.text:0807409E                 cmp     edx, 7Eh 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% }( N1 m2 R% c
.text:080740A1                 jbe     short loc_80740C0
2 E$ M+ o7 o) o$ {  B# L: mbbs.mocwww.com.text:080740A3                 push    ecx bbs.mocwww.com* x) `$ t0 N! C
.text:080740A4                 mov     ecx, 7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 b2 Y9 b5 r7 r* c! F8 l4 e5 t" k
.text:080740A9                 push    edx $ [; g; G3 ]$ E7 H; A  R
.text:080740AA                 mov     eax, edx
- L4 ]2 C  R$ T1 y2 x. O4 M$ M5 q魔力私服,最新魔力宝贝私服技术交流.text:080740AC                 imul    eax, edx
, v0 S5 F+ f$ i+ Abbs.mocwww.com.text:080740AF                 imul    eax, edx 妖城在线论坛( F) A/ K# P; U) c& ~  }  s2 c) Y
.text:080740B2                 imul    eax, ecx
/ O) ~/ }% ]0 G& T) P: ]bbs.mocwww.com.text:080740B6 loc_80740B6:   
! L( _' l2 k) v魔力私服,最新魔力宝贝私服技术交流.text:080740BE                 leave bbs.mocwww.com. O0 F6 k' C2 B- N6 I. m3 R1 F* n
.text:080740BF                 retn
, i+ Q9 t, n# S4 C2 {' W1 n魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C0 loc_80740C0:                           魔力私服,最新魔力宝贝私服技术交流+ r% }6 n8 a+ @# D4 K6 b
.text:080740C0                 mov     eax, dword ptr LevelUpTbl[edx*4]
' Z3 P# t- G( w  h2 d—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C7                 jmp     short loc_80740B6 妖城在线论坛! m6 J9 O2 b# U

3 P  p/ O0 b$ L# [$ }6 p1 m0 |魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表粗糙的解释下这段代码的意思 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ ^. m+ p' k; F9 a
bbs.mocwww.com* n8 ]" K! G" |1 G: Q; }: Y
Push              edp
3 g0 [5 A# ]5 Q* q1 x* Cbbs.mocwww.comMov        ebp,esp
9 N0 e9 X, t% Z+ L—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov        edx,[ebp+8]
. A6 A$ \  G, ~! o7 G" O/ c" |8 o妖城在线论坛获取当前等级的下一级存到edx
4 |4 ]7 B  B; _; x魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
& E6 b7 f; Z, S+ j! Ibbs.mocwww.comCmp              edx,7eh bbs.mocwww.com* E& F0 J- r% Y( K7 y. [
将edx与7eh也就是10进制数130比较
# @+ S1 o) P8 U5 E—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
, ]4 w$ L' B" Q$ P- x* O妖城在线论坛Jbe         shortloc_80740C0
: O/ n  l+ o) e& a0 W' @9 Z/ X妖城在线论坛如果edx小于7eh则进行跳转到80740C0 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ x6 N* f8 z6 h3 b2 b
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 M* @1 }  z2 U! S: u7 c
Push       ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" h9 x0 p% h/ Y' f/ j, `0 z
Mov        ecx,7 # i) e7 k3 a" ?, J
给ecx赋值7
3 g7 D5 O. m$ J魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表妖城在线论坛! d, i4 R: S8 k! ~. C- p
Push              edx 魔力私服,最新魔力宝贝私服技术交流. r" Z! g2 t9 T
Mov        eax,edx 7 B$ x7 [4 w! e  ?
把当前等级+1的值给eax
  z5 Y: X) O) Pbbs.mocwww.com—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" [5 f/ F1 u% v$ R$ J
Imul              eax,edx bbs.mocwww.com* u$ ^! I7 Q' u. E4 S2 X
把eax与edx相乘,结果存在eax bbs.mocwww.com+ Y7 C6 `" ]4 x- k* m+ {2 D2 H

+ g  [4 E& N$ o% kImul              eax,ecx
: q% P0 c/ p4 R* I0 @6 s* f把eax与ecx相乘,结果存在eax 妖城在线论坛" y+ F" E+ _) M3 c8 H0 ]0 \

' J" n- O! `3 p6 m妖城在线论坛Leave
4 h' O+ @* s+ J1 A" t: _5 c$ K, z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Retn
) p' \7 l2 J6 X  f7 O" r) E2 H8 vbbs.mocwww.com退出这个过程吧,大概 妖城在线论坛! ]1 i, F) L" g' W

5 o6 L" Q4 a( ~0 OMov        eax,dwordptrLevelUPtbl[edx*4] —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 N/ J1 i" |* y; e9 R
这里是读取经验表的内容给eax,也就是查表读经验
# d& B; K* z" c3 B2 n& f5 c妖城在线论坛' b- Q* P# {6 f7 b) Q' X; e9 V
jmp     short loc_80740B6 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, q) W- Y% l7 g9 |
强制跳转到80740B6
/ _/ B0 C/ F: D4 w$ S+ V, |( i! {; \
好了,这段代码就这点意思,逻辑上不难理解。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( s& ^7 p/ o& f( t" t' F& G
虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。 bbs.mocwww.com, B, ~9 ?! }- h" l! ?' f
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" E6 e# L5 l3 Z/ _9 t" ?& H
分析完了之后开始修改了,上面的代码具体作用如下: " n4 o- a$ A' H; y6 j7 \
判断等级下一级是否小于7eh,是则跳转到查表。 妖城在线论坛% z7 O, p1 Y$ L8 F6 M
否的话也就是大于7eh时,按照下面算法运算
. D: p( ]1 @2 [% R. }- y4 }8 K, n. b妖城在线论坛.text:080740A3                 push    ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& y' o- z$ H6 |8 O+ v7 m
.text:080740A4                 mov     ecx, 7 # @! N! H+ V) a: q) d- T
.text:080740A9                 push    edx 妖城在线论坛/ p( N; S$ E& U& m0 U6 e
.text:080740AA                 mov     eax, edx
% N% u: ]2 s* O/ K( I魔力私服,最新魔力宝贝私服技术交流.text:080740AC                 imul    eax, edx
; ?( X2 K" |! O妖城在线论坛.text:080740AF                 imul    eax, edx
3 G6 R* y$ V. A: {7 p$ U魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740B2                 imul    eax, ecx
" U7 E" w/ }8 B" B5 B" c* {1 ~3 _魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表也就是eax的三次方乘以ecx,这里可以改成我想要的。 魔力私服,最新魔力宝贝私服技术交流/ v- h4 f: d  k! s0 d4 D3 g
妖城在线论坛( k0 q* ^. {2 t2 }; F& _
我的目标是改称等级的四次方除以50,但是问题来了。
1 o# U  U$ {& Z8 D6 q3 b妖城在线论坛怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。
1 a$ v. {- c- ^/ v妖城在线论坛
; ?9 Y& X' k# e+ m) y* _8 K$ s# d.text:08074098                 public CHAR_GetLevelExp 魔力私服,最新魔力宝贝私服技术交流! h8 ?$ }5 d  N/ L2 R: x& K6 K
.text:08074098 CHAR_GetLevelExp:
6 T! Q6 I2 h5 \3 Y# \) x+ I; ^bbs.mocwww.com.text:08074098               魔力私服,最新魔力宝贝私服技术交流$ s- v2 w2 n  W
.text:08074098                 push    ebp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 U( e4 Y) V7 ?  b3 |
.text:08074099                 mov     ebp, esp 魔力私服,最新魔力宝贝私服技术交流0 d, |( p% l* m& E1 B
.text:0807409B                 mov     edx, [ebp+8]
2 [& D. j! M' R5 E9 ]魔力私服,最新魔力宝贝私服技术交流.text:0807409E                 cmp     edx, 0FFh $ v- m' v% h) [. g
.text:080740A4                 jg      short loc_80740C0 妖城在线论坛1 B% \9 \  P% Q; S$ ^* t6 t& D
.text:080740A6                 push    ecx
# y: E$ G$ s. O: @8 q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A7                 mov     ecx, 32h 妖城在线论坛3 I) p7 x4 n; ?3 w  {
.text:080740AC                 push    edx
) n# l8 r3 y6 c, ]2 A$ d: n7 ibbs.mocwww.com.text:080740AD                 mov     eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( `5 J+ W6 p8 L) r3 H
.text:080740AF                 imul    eax, edx
& X' w+ m; `% E# m0 {& W魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740B2                 imul    eax, edx
2 p* i0 s) j8 y魔力私服,最新魔力宝贝私服技术交流.text:080740B5                 cdq 5 e' c# k2 D- r' E1 O
.text:080740B6                 idiv    ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 V5 |, R( Z0 k7 d
.text:080740B8                 mov     edx, [ebp+8] ! A% R1 D7 o# B" N0 a
.text:080740BB                 imul    eax, edx 8 d% E. K% _% D' f; s- a
.text:080740BE
+ Z) @: \; a2 d7 L魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BE locret_80740BE:                     魔力私服,最新魔力宝贝私服技术交流0 H- H; z8 h5 e& i5 ~
.text:080740BE                 leave
8 O5 R2 w6 b/ k3 U6 q. Tbbs.mocwww.com.text:080740BF                 retn
5 T7 _+ u: F; e$ F5 t魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C0 loc_80740C0:                         bbs.mocwww.com0 D- v5 ]3 M% C, E
.text:080740C0                 mov     eax, 0FFFFFFFFh 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 K( @& K2 [2 _) T5 i4 N
.text:080740C5                 jmp     short locret_80740BE , o6 a- L, C, c2 e
妖城在线论坛8 x' l+ o# i, r( C
方便起见这里直接把我改好的代码贴出来,与原来不同的地方:
5 T/ a2 s/ y6 s魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Cmp              edx,0FFh bbs.mocwww.com& x* d. A. t9 e' E6 V
Jg           shortloc_8074C0 魔力私服,最新魔力宝贝私服技术交流. _' l' m/ y, l/ J$ j& p- q/ I# m
判断等级是否大于255是的话跳转80740C0
- w  q2 y, S: z/ w  b- f( s$ F妖城在线论坛否的话进入我们的等级公式: ; w1 d; c+ @6 R; T0 F8 h- Q
(等级*等级*等级除以50)*等级
$ n& ^9 g0 d. H魔力私服,最新魔力宝贝私服技术交流也就是等级三次方除以50再乘以等级
1 P$ e% O; o9 C7 \bbs.mocwww.com为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。 魔力私服,最新魔力宝贝私服技术交流/ K: u3 y. z- k! [" G+ \1 w. d! u7 t
216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 ( k' W' Y+ t1 C4 A1 |
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
6 y  M2 n% }% [: K9 ?/ L2 v魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力宝贝私服技术交流7 l! s! E" D2 t' }  B
接下去做公式: 7 E4 r/ i; L/ D
Push              ecx,32h          这里是经验倍率,就是公服经验除以ecx等于你的经验
( ~5 N( N; Z0 a, Z& Dbbs.mocwww.comMov        eax,edx      将下一等级的值赋值给eax
' ]. ?1 m* u+ ^7 J0 X魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Imul              eax,edx          将eax,edx相乘,结果存到eax 妖城在线论坛5 f* i- O& n6 y5 L9 i% z4 K
Imul              eax,edx          同上 bbs.mocwww.com; z$ q! j! ]8 E5 g
Cdq                             这个做除法不加就会出错,用户登录后服务器当机
4 K* @0 }: h, y: b  F( b2 [3 Dbbs.mocwww.comIdiv        ecx                eax除以32h算到50倍经验
8 _* q. K$ @$ Y; R  O3 D/ ^) L魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Mov        edx,[ebp+8]    从新获取下一等级的值 妖城在线论坛3 i% c5 ^( ^2 t. H, a; n
Imul              eax,edx          将eax,edx相乘,结果存到eax 妖城在线论坛% M$ B. {* W/ }( V2 G! S+ I
妖城在线论坛; n+ _  }$ ?9 k/ h3 h0 D9 q% Z
好了,这样就完成了运算过程。 2 Q, J6 V7 K9 p5 {* P* Q1 ?

: H. s7 C% k% L4 `/ j  w魔力私服,最新魔力宝贝私服技术交流.text:080740C0 loc_80740C0:                         bbs.mocwww.com0 |% v4 o9 L. O- m1 p3 M
mov     eax, 0FFFFFFFFh
& n; q- T# _* e5 e! p; H1 S—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートjmp     short locret_80740BE bbs.mocwww.com! V- l9 I: k( o8 B
这一段代码就是等级超过你设置的上限之后返回-1。 ( i  J  ]; a* E  V8 r4 h- \7 H
魔力私服,最新魔力宝贝私服技术交流: J* P$ |2 X4 K/ {8 n" w
bbs.mocwww.com# i" }; c- a* B& z
下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
/ @: f/ i: |, ~9 c! ~3 S这里就要用到FlexHex了。 妖城在线论坛- I& Y' \8 ]; @4 j4 |$ e
bbs.mocwww.com! d! p) T( s% Z" R5 l
首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
( e* b8 w& l0 a3 ~  e5 ]9 P4 k- w8 ~bbs.mocwww.com如下对应: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 s# g4 v0 l  ~1 n
Cmp              edx,0ffh                       81  FA  FF  00  00  00 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" p9 f! K; O; }
jg      short loc_80740C0         71  FA
' c5 n2 L- V& O) L4 c: N魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表mov     ecx, 32h                      B9  32  00  00  00
$ @) p! e; ~) v+ d4 A+ u; mbbs.mocwww.combbs.mocwww.com3 j7 ]: l. A9 P* [4 c( Z* o) g
依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 " S1 h( M" Q, D+ A; p1 k
这个挺有乐趣可以自己慢慢享受摸索。 魔力私服,最新魔力宝贝私服技术交流, Z. M" v+ d( O: i/ j
bbs.mocwww.com/ W3 d9 i: J8 O% B4 m
以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。

TOP

好文章, 可以帮很多入门的来修改~

TOP

看不懂.............

TOP

学习学习
5 u, }3 _5 J% b2 z% Z妖城在线论坛谢谢楼主分享经验

TOP

感谢楼主分享,顶!

TOP

很不错~呵呵~ 继续深入,到call语句的调整和为自己的语句腾空间还有搜索无果而必须自己对着opcodes写机器码就有趣了……

TOP

发新话题