发新话题
打印

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

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

没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
! A. p7 O! i: q7 Q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。
5 L8 k2 `$ m2 M妖城在线论坛bbs.mocwww.com8 [4 W; I$ C2 k( L  W$ B
用IDA载入gmsv,分析完成后进入Exports选项卡。 妖城在线论坛" N7 L, ^0 L5 y$ l
搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。
% r% U' i6 `* U  B7 W妖城在线论坛.text:08074098                 public CHAR_GetLevelExp
! d9 E! q" p" T+ O.text:08074098 CHAR_GetLevelExp:
* u5 y6 T6 u& J& f.text:08074098                 push    ebp
& n8 p0 N( m  }7 E魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074099                 mov     ebp, esp
9 h. m# s$ f* x7 a7 f% [- S2 P妖城在线论坛.text:0807409B                 mov     edx, [ebp+8] bbs.mocwww.com0 U( u; X$ o0 p6 ]4 R( W5 N0 c) K
.text:0807409E                 cmp     edx, 7Eh
* {, {7 I0 o4 h* \" Mbbs.mocwww.com.text:080740A1                 jbe     short loc_80740C0 魔力私服,最新魔力宝贝私服技术交流. h- `! _  W2 w; y" }
.text:080740A3                 push    ecx
: I% \& @, H3 c( V& {0 S" r妖城在线论坛.text:080740A4                 mov     ecx, 7
# ]4 [: r+ ^0 }( s  O—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A9                 push    edx
+ w1 N* G- k  u( c! `.text:080740AA                 mov     eax, edx
' D6 w1 I% }9 M& }  J- M.text:080740AC                 imul    eax, edx 妖城在线论坛8 ~. F# R! K1 l3 g
.text:080740AF                 imul    eax, edx 妖城在线论坛" _8 T( q9 K; C( R
.text:080740B2                 imul    eax, ecx 魔力私服,最新魔力宝贝私服技术交流& f0 f5 F9 y* ?0 @" l
.text:080740B6 loc_80740B6:   
3 d7 U; [9 Y) ]5 o6 J( o' d—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BE                 leave 妖城在线论坛/ z& j; U  \- K" P9 H, l# k
.text:080740BF                 retn
# L0 n1 C8 |; {* x0 j1 sbbs.mocwww.com.text:080740C0 loc_80740C0:                           —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ K( Y8 c% v- p4 V8 _  a
.text:080740C0                 mov     eax, dword ptr LevelUpTbl[edx*4] 魔力私服,最新魔力宝贝私服技术交流; W( D, E- p2 {5 g
.text:080740C7                 jmp     short loc_80740B6
: r/ s  q( |: N魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
/ z& g% Z; I. f- R粗糙的解释下这段代码的意思
) E* y% p4 O, d9 ~8 {+ i7 Ibbs.mocwww.com魔力私服,最新魔力宝贝私服技术交流5 x; N/ p" G; d1 `
Push              edp
: ]) H3 H) S: L# j: C; _3 T魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Mov        ebp,esp bbs.mocwww.com0 h) ^$ D' W9 Z9 P! K' u
Mov        edx,[ebp+8]
6 b1 ^# O. U  O, z6 @妖城在线论坛获取当前等级的下一级存到edx ; W: @1 X3 U, r+ t' C0 l% G7 ~

5 A' r% R& B( i3 i7 i2 R7 a魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Cmp              edx,7eh bbs.mocwww.com# k( `! a6 O# X/ d5 y
将edx与7eh也就是10进制数130比较 妖城在线论坛" C8 d6 ], L5 T; R5 b  S. Y

- m# F. n/ F/ u& k3 R6 N+ C4 m魔力私服,最新魔力宝贝私服技术交流Jbe         shortloc_80740C0 妖城在线论坛8 \; P/ E" C4 l6 E6 Y, b! E+ N
如果edx小于7eh则进行跳转到80740C0 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 b+ p3 o& ?5 P/ c: ~& z
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: n+ r+ i, l/ H1 |+ d/ F
Push       ecx
6 S5 U% L+ Z0 WMov        ecx,7
' K, T) S1 ~; U/ ^: k( A妖城在线论坛给ecx赋值7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 w; T: ?; K, s" x. V9 y0 r
妖城在线论坛4 I0 f+ ^& G2 H  P' F
Push              edx 妖城在线论坛: B4 }/ \1 T3 e/ y0 r( i9 f0 }" S
Mov        eax,edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ V: |- {& V' R# T
把当前等级+1的值给eax 魔力私服,最新魔力宝贝私服技术交流1 {, J( z* d2 f" ~- |; f

2 f% J3 c8 f( v—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートImul              eax,edx
# t4 n) o; W- r0 }, L: j/ T# B8 x—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート把eax与edx相乘,结果存在eax bbs.mocwww.com( e! E/ O9 ~: E
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 J% b, @' w8 }: U4 U8 b& f, p5 A
Imul              eax,ecx
0 C- e; W& X7 ^# d" a/ f把eax与ecx相乘,结果存在eax 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) n& O- N/ T: [
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( h0 M( D9 C/ A* a! N' n$ v
Leave ) A4 p0 V" b- p- r" T
Retn 妖城在线论坛3 L! f3 y6 J2 n# U6 d! i( y% k7 h# R* `
退出这个过程吧,大概
5 J; j" R2 Z3 T  F: V妖城在线论坛4 ^% R+ m. _+ t2 u
Mov        eax,dwordptrLevelUPtbl[edx*4] bbs.mocwww.com- t; s& D+ V1 G- p
这里是读取经验表的内容给eax,也就是查表读经验
- H# f+ J. x* w8 C—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
; T9 ~+ m% E$ e* a# g1 O" ]妖城在线论坛jmp     short loc_80740B6 bbs.mocwww.com, [2 {; G5 e3 W# C! v# E& g$ y6 C$ F7 A  U
强制跳转到80740B6
. F. a5 v- W/ M$ N! r$ fbbs.mocwww.combbs.mocwww.com, A& I" c: p  d0 w8 Q- L/ ]9 ?$ E2 I
好了,这段代码就这点意思,逻辑上不难理解。 魔力私服,最新魔力宝贝私服技术交流; V7 ]8 L* h6 P% o/ c
虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。
9 h* @. @: K! B" }7 dbbs.mocwww.combbs.mocwww.com8 N/ r( ~, A$ e9 V% f3 z" j! f- V/ d
分析完了之后开始修改了,上面的代码具体作用如下:
  y+ h# H- E! ^4 J# K1 vbbs.mocwww.com判断等级下一级是否小于7eh,是则跳转到查表。
+ k, W+ G+ r2 D魔力私服,最新魔力宝贝私服技术交流否的话也就是大于7eh时,按照下面算法运算 妖城在线论坛3 d. M9 o1 X2 M4 t/ [4 P& }
.text:080740A3                 push    ecx & U1 E0 E6 E- T7 N9 B; P9 i
.text:080740A4                 mov     ecx, 7 bbs.mocwww.com% g, S# E2 p3 B  U7 x( g1 [
.text:080740A9                 push    edx bbs.mocwww.com$ h% D/ k1 D" g) n6 V
.text:080740AA                 mov     eax, edx
1 N( W! Z) c2 cbbs.mocwww.com.text:080740AC                 imul    eax, edx
5 j: d3 c; ]3 U2 b8 `—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AF                 imul    eax, edx 魔力私服,最新魔力宝贝私服技术交流" C" i% R. s% v5 L; C
.text:080740B2                 imul    eax, ecx
0 |! ]% U5 r; r: f, T8 ybbs.mocwww.com也就是eax的三次方乘以ecx,这里可以改成我想要的。 bbs.mocwww.com' G: r9 K$ d2 g4 C

0 b. ^& h+ k% c2 p我的目标是改称等级的四次方除以50,但是问题来了。
7 |' y$ N! b8 ^8 h1 u0 o6 C魔力私服,最新魔力宝贝私服技术交流怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' k" t$ o; A% O0 Y

+ h) R- i7 _- R( g& T  M% T) R.text:08074098                 public CHAR_GetLevelExp
6 K* x. R; h  r- \1 l. f" y( Z/ s魔力私服,最新魔力宝贝私服技术交流.text:08074098 CHAR_GetLevelExp:
- ~7 E) x/ c+ g' x- J5 \6 D) R.text:08074098               
' d, @7 c* {/ @3 O9 p魔力私服,最新魔力宝贝私服技术交流.text:08074098                 push    ebp
1 q' |4 h4 w5 F( `+ @. [.text:08074099                 mov     ebp, esp
* t  k" \2 z0 ^1 Jbbs.mocwww.com.text:0807409B                 mov     edx, [ebp+8] 魔力私服,最新魔力宝贝私服技术交流: a* w$ k, X* g7 v/ q9 j
.text:0807409E                 cmp     edx, 0FFh 妖城在线论坛4 }' q- n2 l- r  y) e( z- W
.text:080740A4                 jg      short loc_80740C0 + \- _0 @& a2 R) z% [
.text:080740A6                 push    ecx
* W( l6 T* [: O; ?魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A7                 mov     ecx, 32h
* ^9 T' G8 T9 L, b8 Z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AC                 push    edx bbs.mocwww.com) H# r' T8 R" {
.text:080740AD                 mov     eax, edx bbs.mocwww.com$ t4 v# e- k5 t- ]2 ^1 N; ]
.text:080740AF                 imul    eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% }" y, o( u: t' _
.text:080740B2                 imul    eax, edx 0 I1 R2 f4 |! c0 w8 l: ^
.text:080740B5                 cdq
: |( ?5 L: o: l0 e—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B6                 idiv    ecx
6 @% r! C+ u9 O- h- T—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B8                 mov     edx, [ebp+8] —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート5 I5 k# z* ]" ?$ M: Z
.text:080740BB                 imul    eax, edx
9 ~9 d6 L6 `' {; h6 L—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BE
. Q* q- T  l, }" t+ I妖城在线论坛.text:080740BE locret_80740BE:                     $ a0 B$ I0 |( J2 A- e! z+ w
.text:080740BE                 leave
, C0 w, c% o+ [  T; z妖城在线论坛.text:080740BF                 retn
$ E4 z" l* G) Y9 @1 Sbbs.mocwww.com.text:080740C0 loc_80740C0:                         魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 ]$ U+ O0 M2 c3 k+ O
.text:080740C0                 mov     eax, 0FFFFFFFFh —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 _9 \; ?. o* f) `* W5 Z+ s
.text:080740C5                 jmp     short locret_80740BE 魔力私服,最新魔力宝贝私服技术交流% t5 \# c5 Q. p! ^

3 S% j# D0 T3 b( x; `& L2 R魔力私服,最新魔力宝贝私服技术交流方便起见这里直接把我改好的代码贴出来,与原来不同的地方:
; {! b0 a% H" s! CCmp              edx,0FFh
& z% y3 O! ^$ T/ K( H/ f魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Jg           shortloc_8074C0
! Y3 J" L7 g% }, H: M7 l2 g+ zbbs.mocwww.com判断等级是否大于255是的话跳转80740C0 魔力私服,最新魔力宝贝私服技术交流) S5 G& g& d5 q2 b$ B3 v% V% o
否的话进入我们的等级公式:
: {. A  A2 |9 p3 J6 A妖城在线论坛(等级*等级*等级除以50)*等级 3 W2 j7 d/ \- H4 W$ T! o
也就是等级三次方除以50再乘以等级
' i) A# O" i- z, Y$ e; Y为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。 bbs.mocwww.com& K4 f' T2 ]7 Q
216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。
) d( \, {  K) }. y妖城在线论坛所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
# F2 g8 _4 d. O7 ~bbs.mocwww.com
0 r/ V0 c$ i. m( ^接下去做公式: 妖城在线论坛- o2 v$ y$ |& o6 r# w$ P
Push              ecx,32h          这里是经验倍率,就是公服经验除以ecx等于你的经验 bbs.mocwww.com/ L( T( A8 S' p' v3 r, @- J$ n$ N
Mov        eax,edx      将下一等级的值赋值给eax
. v6 q3 d/ N3 C2 U" ZImul              eax,edx          将eax,edx相乘,结果存到eax
6 O$ n1 h3 q2 }; a7 [9 d魔力私服,最新魔力宝贝私服技术交流Imul              eax,edx          同上 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 U. p) x# A. k' u& I
Cdq                             这个做除法不加就会出错,用户登录后服务器当机 魔力私服,最新魔力宝贝私服技术交流# Z" ^! e. S3 R; b; F5 p1 c$ @
Idiv        ecx                eax除以32h算到50倍经验 bbs.mocwww.com4 Q* Q& h4 F& d' L
Mov        edx,[ebp+8]    从新获取下一等级的值 % U( J+ M% j0 d7 J4 c# K4 h
Imul              eax,edx          将eax,edx相乘,结果存到eax
& J8 b* U0 A4 e7 |5 a/ ?' gbbs.mocwww.com
$ h) b7 S/ ~3 _- `, T# Z" hbbs.mocwww.com好了,这样就完成了运算过程。
6 z* y0 i& m6 f8 N' \& P, z* ]; dbbs.mocwww.com
6 u  }4 P+ h3 w% L—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 loc_80740C0:                         魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 }& Y8 }! e5 R
mov     eax, 0FFFFFFFFh
; f% ~! J6 n5 d6 Ebbs.mocwww.comjmp     short locret_80740BE 魔力私服,最新魔力宝贝私服技术交流- A( E0 W) Y$ _3 j* _1 c! ~
这一段代码就是等级超过你设置的上限之后返回-1。 妖城在线论坛, i5 }/ r: J, q% f4 W, y% L

8 ~, h. S4 i% [+ s# d. U—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
1 c/ Q) Z+ d: z( B下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。 ) a- i/ g7 Y8 k
这里就要用到FlexHex了。
- {0 H; E! [+ l' Z# l2 w3 \6 Q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 I3 e0 a( n; B* |/ h; E
首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
9 B6 ?# R& o4 q2 X' e—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如下对应: 妖城在线论坛$ r7 |1 O3 p4 ?! y. s) e0 ^4 B" g$ s4 t
Cmp              edx,0ffh                       81  FA  FF  00  00  00
' m6 r  b; `6 z& f6 q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表jg      short loc_80740C0         71  FA ; `: u) _  D$ ~. d- W5 d/ m
mov     ecx, 32h                      B9  32  00  00  00
' `& z) Q! I, T. v魔力私服,最新魔力宝贝私服技术交流bbs.mocwww.com! x7 i; F" ^  @  T* |# C% w0 _
依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 妖城在线论坛. T4 W- w. N# P/ v7 }
这个挺有乐趣可以自己慢慢享受摸索。 魔力私服,最新魔力宝贝私服技术交流! m- [7 f* i  V' K- j) _
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ n0 ]/ d) b( o
以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。

TOP

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

TOP

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

TOP

学习学习- \) ^" ]3 s% \" L1 g1 Y, ~
谢谢楼主分享经验

TOP

感谢楼主分享,顶!

TOP

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

TOP

发新话题