发新话题
打印

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

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

没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。 妖城在线论坛! v' k- {% U0 d: K; \' a
使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。
, \  s0 n$ F9 d5 q9 _- i; F/ R妖城在线论坛( N0 O) v4 V. f3 t" @( f4 \
用IDA载入gmsv,分析完成后进入Exports选项卡。 9 C  k  x5 I7 w  J. [2 J
搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 魔力私服,最新魔力宝贝私服技术交流  {. h2 L0 U9 i* f' f
.text:08074098                 public CHAR_GetLevelExp
, P3 U5 Q" ^1 {/ L( j3 F1 m" m1 E.text:08074098 CHAR_GetLevelExp: 魔力私服,最新魔力宝贝私服技术交流+ @2 \1 [# p2 k9 W& B6 U
.text:08074098                 push    ebp 6 t2 E9 i- s, a' V
.text:08074099                 mov     ebp, esp 魔力私服,最新魔力宝贝私服技术交流* Z: r: ?8 e6 R; Z; d8 K! P
.text:0807409B                 mov     edx, [ebp+8]
7 @% K& [% g0 J.text:0807409E                 cmp     edx, 7Eh
8 H9 x( h0 D  D! q2 s魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A1                 jbe     short loc_80740C0
# d: I, h: c# A+ t) F+ q妖城在线论坛.text:080740A3                 push    ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ b. A4 I' x% l% u) y
.text:080740A4                 mov     ecx, 7
5 P" f  I% F: s7 i* w% B% r5 w妖城在线论坛.text:080740A9                 push    edx
" X6 x+ B5 |2 A$ E* A$ Gbbs.mocwww.com.text:080740AA                 mov     eax, edx
& c+ S( e$ i: p/ }! N: E妖城在线论坛.text:080740AC                 imul    eax, edx
6 _$ ]7 e! B7 `/ Z4 P/ d" ]bbs.mocwww.com.text:080740AF                 imul    eax, edx bbs.mocwww.com& q# ~1 |7 u  C7 c* E' F( _( R* e
.text:080740B2                 imul    eax, ecx
- N# W. I& r9 X( V! |* p% K# b. x—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B6 loc_80740B6:   魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. G2 |. T+ B: C" u7 T# V1 l
.text:080740BE                 leave bbs.mocwww.com! F4 f3 g+ T. k" ~5 j
.text:080740BF                 retn 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ S( S7 |  E3 P4 u. v; C! E
.text:080740C0 loc_80740C0:                           + ]" X5 t' k& o( P
.text:080740C0                 mov     eax, dword ptr LevelUpTbl[edx*4]
* b/ s& f9 F; D0 M2 \bbs.mocwww.com.text:080740C7                 jmp     short loc_80740B6
3 t1 q4 O/ p1 S/ F( X: m1 ]2 p' r" R8 S魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% ^, u1 Q5 h2 {9 Y+ c9 {
粗糙的解释下这段代码的意思
" F, z3 |/ a$ R- G! R' ^+ D魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
% Y: D% _4 n' H1 v+ xbbs.mocwww.comPush              edp
$ q, T6 P! x; Z* m9 \, {3 j魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Mov        ebp,esp
. x) r! w- A8 `  a4 j: m1 Z4 B魔力私服,最新魔力宝贝私服技术交流Mov        edx,[ebp+8]
6 U- A- h* v# `& H& z# D$ c( K7 R2 H魔力私服,最新魔力宝贝私服技术交流获取当前等级的下一级存到edx 妖城在线论坛0 d$ ]3 _5 q$ X, ~5 g6 A

# M- I/ g8 k# b: b* z& i妖城在线论坛Cmp              edx,7eh
' q2 d6 [( ^% X9 I9 x妖城在线论坛将edx与7eh也就是10进制数130比较
9 }" t3 k5 J% r( b魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
* s/ b5 U4 }9 Y! Y妖城在线论坛Jbe         shortloc_80740C0 bbs.mocwww.com6 B5 r: q# P. t! |  A- N
如果edx小于7eh则进行跳转到80740C0 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 m% f  h* [. h! _! W
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- d7 `7 `+ Q; E7 D5 C0 L: Z
Push       ecx
" v; J" q5 }, h! I; bbbs.mocwww.comMov        ecx,7 0 H9 i2 n5 t4 x0 d
给ecx赋值7
' Z& m2 ?% v' A6 T  `7 c妖城在线论坛+ M& _; l) h' G0 C: ~: K( V
Push              edx
- Z- Y( U9 b" K. Q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Mov        eax,edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 \* r- k6 x, {5 R$ z" [5 N4 ~
把当前等级+1的值给eax
/ p& q* N" K0 D" d妖城在线论坛
1 l- a( M1 c& K1 z, Z! D1 ]bbs.mocwww.comImul              eax,edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% m: s4 o, ]% u# J. w$ p
把eax与edx相乘,结果存在eax 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. k) Z2 R) s0 u
# h" K: `$ F& \6 [& T
Imul              eax,ecx
  i$ s6 k1 C% N" d5 ^6 B/ W妖城在线论坛把eax与ecx相乘,结果存在eax 魔力私服,最新魔力宝贝私服技术交流) V/ C  b- a# ]

7 Z# E9 d# |5 d5 z魔力私服,最新魔力宝贝私服技术交流Leave bbs.mocwww.com5 Q$ Y4 N4 f- o3 J
Retn
8 X5 W% z7 ?* i% D" w5 d—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート退出这个过程吧,大概 魔力私服,最新魔力宝贝私服技术交流+ u0 Z. C; y9 m9 V3 U+ b. E: q
魔力私服,最新魔力宝贝私服技术交流% M9 D* @4 ]$ |8 S7 O! W+ m
Mov        eax,dwordptrLevelUPtbl[edx*4]
  O- S$ E$ {6 H) M这里是读取经验表的内容给eax,也就是查表读经验
0 ?; W& Z6 ~$ z6 p+ M/ @3 U妖城在线论坛魔力私服,最新魔力宝贝私服技术交流. t& t6 T5 d# ?/ ~  N* j
jmp     short loc_80740B6 bbs.mocwww.com. p6 x+ k2 S; [* R  Q- ?8 [7 w
强制跳转到80740B6 bbs.mocwww.com4 I1 d7 u- K, h9 C$ d3 f: M$ J; k; u
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& ~3 ^$ D/ N( m$ l4 X: P0 j% g
好了,这段代码就这点意思,逻辑上不难理解。 / n" p& e. o7 E% j) X9 e
虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。
  F( v5 S6 r" `9 K; z, l9 r6 W—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% ~5 E. I  g$ w/ `1 x/ ?1 Y: J
分析完了之后开始修改了,上面的代码具体作用如下: 魔力私服,最新魔力宝贝私服技术交流+ X# a$ g7 O# ^$ k0 j" Q5 N+ k
判断等级下一级是否小于7eh,是则跳转到查表。
4 i. w+ I4 M  ]& Q" X魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表否的话也就是大于7eh时,按照下面算法运算
2 R& F6 p: q, I1 Y3 s.text:080740A3                 push    ecx 魔力私服,最新魔力宝贝私服技术交流/ b% W) S. Q, n! ]  \
.text:080740A4                 mov     ecx, 7 + Z! U7 p7 u, K* R
.text:080740A9                 push    edx . I: F6 P3 f8 l3 P! E
.text:080740AA                 mov     eax, edx
1 B, u7 L1 e. b* Z/ n魔力私服,最新魔力宝贝私服技术交流.text:080740AC                 imul    eax, edx
+ v# ^/ K6 x3 \# I—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AF                 imul    eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" x: r, Q, q8 O6 \- m
.text:080740B2                 imul    eax, ecx
3 W. C/ Y- Z5 Q9 J, E( }& Dbbs.mocwww.com也就是eax的三次方乘以ecx,这里可以改成我想要的。 魔力私服,最新魔力宝贝私服技术交流, G; p0 l5 v# T) X0 c3 H* ]

0 B% s7 }# m5 z! ]—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート我的目标是改称等级的四次方除以50,但是问题来了。 魔力私服,最新魔力宝贝私服技术交流/ I6 x$ o4 J$ @- {3 H
怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 i2 J1 f+ g; \/ a. h; J1 h
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' S4 T; i* E; e4 _  [2 @
.text:08074098                 public CHAR_GetLevelExp
, a7 p' q0 }& Y" \, R魔力私服,最新魔力宝贝私服技术交流.text:08074098 CHAR_GetLevelExp: 妖城在线论坛7 l9 M0 [0 k: i, r1 }% B7 D6 o
.text:08074098               —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 D7 t! w+ s5 z# J- E; f4 d- a
.text:08074098                 push    ebp
' V2 Q/ `# D; N: a% h2 Rbbs.mocwww.com.text:08074099                 mov     ebp, esp
6 U8 r3 e+ n$ y2 Z! }) l  y4 D魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:0807409B                 mov     edx, [ebp+8]
: P- _  o5 k1 ^* {! J  d  xbbs.mocwww.com.text:0807409E                 cmp     edx, 0FFh 4 h6 f6 }% M; a& L. t. n# b
.text:080740A4                 jg      short loc_80740C0 bbs.mocwww.com9 I! R9 m2 f7 a3 c/ h% [
.text:080740A6                 push    ecx bbs.mocwww.com7 }. }$ L% `; N9 Q( c. `
.text:080740A7                 mov     ecx, 32h
  C' i2 m& h8 mbbs.mocwww.com.text:080740AC                 push    edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 [" S0 ]3 w6 A8 v4 Q; q
.text:080740AD                 mov     eax, edx
. z; e. R5 N3 `1 F魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AF                 imul    eax, edx 魔力私服,最新魔力宝贝私服技术交流- o$ l' O' Q: r/ _4 G* a0 [
.text:080740B2                 imul    eax, edx
0 G) t/ L) ]: ].text:080740B5                 cdq
" Z6 [+ y- p. {. N  v—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B6                 idiv    ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, I% F" f, R" _, f2 H# T, H
.text:080740B8                 mov     edx, [ebp+8]
% {5 M8 |- I, u. {9 h+ b1 a妖城在线论坛.text:080740BB                 imul    eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 p% j: r% a2 \# S+ U& R
.text:080740BE
4 D- h1 N2 c& g( i魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BE locret_80740BE:                     
* A6 G! l: [$ ]) O/ Q" ?9 J# C, \8 {bbs.mocwww.com.text:080740BE                 leave 妖城在线论坛( x# u1 t4 U! g0 Q" x. J
.text:080740BF                 retn
' s( h6 r8 V% \, _$ n- v魔力私服,最新魔力宝贝私服技术交流.text:080740C0 loc_80740C0:                        
3 b$ \# {. \4 U6 c8 B5 q5 z/ Kbbs.mocwww.com.text:080740C0                 mov     eax, 0FFFFFFFFh
" O0 k+ |, i& _0 z1 \3 s魔力私服,最新魔力宝贝私服技术交流.text:080740C5                 jmp     short locret_80740BE bbs.mocwww.com! Q/ y% l- y( z1 Q% {
魔力私服,最新魔力宝贝私服技术交流! t  u9 r. U, G
方便起见这里直接把我改好的代码贴出来,与原来不同的地方: 妖城在线论坛$ T+ `) B( k9 E0 i3 O
Cmp              edx,0FFh bbs.mocwww.com- G8 W( W4 M7 D0 z+ z
Jg           shortloc_8074C0
2 x4 O) Q" b! b0 \' R; vbbs.mocwww.com判断等级是否大于255是的话跳转80740C0
- O( X/ f$ s" W. G. d! B) P' c—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート否的话进入我们的等级公式: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 Y  ]1 f8 E: z
(等级*等级*等级除以50)*等级 bbs.mocwww.com* J- K7 @" k) m) l- Y
也就是等级三次方除以50再乘以等级 妖城在线论坛, r# Y& {0 M' R/ u' N
为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。
- L  ~5 Z7 R6 _; j8 N7 j魔力私服,最新魔力宝贝私服技术交流216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。
7 q8 @- Q5 {# X9 \/ S$ u8 [妖城在线论坛所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
3 z+ I) v' d1 w9 j. v. {魔力私服,最新魔力宝贝私服技术交流
( ]  y) F, i- _5 H9 J7 E6 l% r2 K% Xbbs.mocwww.com接下去做公式: 妖城在线论坛* I% k( ~7 @0 K5 m
Push              ecx,32h          这里是经验倍率,就是公服经验除以ecx等于你的经验 : o- D# L5 I+ M: J
Mov        eax,edx      将下一等级的值赋值给eax
. `8 e. `, g# lImul              eax,edx          将eax,edx相乘,结果存到eax
' `- q& D2 D) J9 s) {: M魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Imul              eax,edx          同上 魔力私服,最新魔力宝贝私服技术交流# x- k5 _0 n! ]+ ~2 M
Cdq                             这个做除法不加就会出错,用户登录后服务器当机 妖城在线论坛) s% u3 M8 M; h% j* U
Idiv        ecx                eax除以32h算到50倍经验
) }+ E8 o0 g- l: v& D妖城在线论坛Mov        edx,[ebp+8]    从新获取下一等级的值
; X& l8 O5 ^' K; @bbs.mocwww.comImul              eax,edx          将eax,edx相乘,结果存到eax 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 H& L) U; [4 ]
bbs.mocwww.com8 F1 g, t) r  ]4 Q
好了,这样就完成了运算过程。 bbs.mocwww.com! \. ^( E' ~: z/ m/ |
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) L& T" G5 K4 s
.text:080740C0 loc_80740C0:                        
5 f, h2 w! E  J! L0 T; tbbs.mocwww.commov     eax, 0FFFFFFFFh
# c/ w% R5 I/ H0 E: F' n4 ?% v魔力私服,最新魔力宝贝私服技术交流jmp     short locret_80740BE
: W+ E: Q2 m( v. F/ @bbs.mocwww.com这一段代码就是等级超过你设置的上限之后返回-1。 # Q* k8 j( x5 d2 D

% B5 A' h: \: c! x/ `魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
9 V# E7 _, Y' u. f' Xbbs.mocwww.com下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
, ?. R# l$ d, l' C* Q5 y! Ebbs.mocwww.com这里就要用到FlexHex了。
+ P, b2 D" k* ?2 H妖城在线论坛0 o$ M5 p( k! D! f5 p# t
首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
; i- z2 \6 L( U4 D2 bbbs.mocwww.com如下对应: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 B% i/ W; e& k& a& I( i
Cmp              edx,0ffh                       81  FA  FF  00  00  00
- ]8 Q5 n8 y, {1 F: A—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートjg      short loc_80740C0         71  FA 魔力私服,最新魔力宝贝私服技术交流9 r& b' ?5 X, z( M0 t8 P/ J
mov     ecx, 32h                      B9  32  00  00  00 % Z7 S. C  p3 c* M# |* O
妖城在线论坛! O: X/ U9 X6 `) R& V
依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。
' d3 }4 x7 B. wbbs.mocwww.com这个挺有乐趣可以自己慢慢享受摸索。
3 `2 R5 J7 a& X; b: |- j# x魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力宝贝私服技术交流- g, Q& W1 l  _% B" W8 t: e8 R* c
以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。

TOP

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

TOP

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

TOP

学习学习魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 |7 ~! B" N0 j% U6 M4 U3 q. L2 v
谢谢楼主分享经验

TOP

感谢楼主分享,顶!

TOP

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

TOP

发新话题