发新话题
打印

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

没有汇编语言基础,参照网上无数教程和相关资料,修改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多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。

TOP

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

TOP

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

TOP

学习学习魔力私服,最新魔力宝贝私服技术交流7 S9 E+ T9 K- F& \: P$ I# {
谢谢楼主分享经验

TOP

感谢楼主分享,顶!

TOP

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

TOP

发新话题