发新话题
打印

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

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

没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。 bbs.mocwww.com  k5 w7 @" v: T- J( L, Y. A0 p
使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。 7 g/ n1 p3 `% S# d$ H8 z: L5 t% l# u+ q

, r4 y1 J, }8 l8 ~# N魔力私服,最新魔力宝贝私服技术交流用IDA载入gmsv,分析完成后进入Exports选项卡。 妖城在线论坛9 p6 e' t# R% T. T4 M1 [/ _
搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 bbs.mocwww.com6 h' z0 U- {) b
.text:08074098                 public CHAR_GetLevelExp 魔力私服,最新魔力宝贝私服技术交流7 T  u& A7 d) O6 ]4 z
.text:08074098 CHAR_GetLevelExp: 魔力私服,最新魔力宝贝私服技术交流2 C6 i  e4 @: V; e
.text:08074098                 push    ebp 妖城在线论坛9 J; J8 C) j% |  }1 Q8 L  [
.text:08074099                 mov     ebp, esp
% o, u- E8 V6 b& t2 q' n, A9 V魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:0807409B                 mov     edx, [ebp+8]
5 U+ _& R& }  w2 i—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:0807409E                 cmp     edx, 7Eh
1 i* n2 Q- x0 Q. C# \2 X.text:080740A1                 jbe     short loc_80740C0
" }" S5 R5 K$ R6 F- j' J.text:080740A3                 push    ecx 妖城在线论坛5 L9 c+ m* r- T; K# G% `( @6 l
.text:080740A4                 mov     ecx, 7
# |5 Z- j2 B# i2 L& L5 z魔力私服,最新魔力宝贝私服技术交流.text:080740A9                 push    edx 魔力私服,最新魔力宝贝私服技术交流% s& U% ]: r. n* _9 \
.text:080740AA                 mov     eax, edx 0 ^3 q5 S7 x* V
.text:080740AC                 imul    eax, edx 3 U8 e5 \+ M. k! |( g
.text:080740AF                 imul    eax, edx
" a, k8 M! F: k; E魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740B2                 imul    eax, ecx 妖城在线论坛4 l2 m% M+ x; b1 T( z$ t
.text:080740B6 loc_80740B6:   
, @. v! V0 G" \; p& G& E.text:080740BE                 leave
' f9 ^7 `) G# B: a( @" d- K魔力私服,最新魔力宝贝私服技术交流.text:080740BF                 retn
# W' U$ ~& e" E# ]. }* W1 E9 |—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 loc_80740C0:                           魔力私服,最新魔力宝贝私服技术交流  H; R* n3 D4 U
.text:080740C0                 mov     eax, dword ptr LevelUpTbl[edx*4] ' }: t6 a9 _, Q" e3 g) `7 C
.text:080740C7                 jmp     short loc_80740B6
" S0 D% A' K5 r2 Z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
  N3 p9 @# x9 Q& @8 i$ R) `! Jbbs.mocwww.com粗糙的解释下这段代码的意思 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( Y, d$ {' [6 F; L* `/ ?. w  }% u
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% e$ L1 e  `# C9 [& c$ ^4 _2 R+ G: V
Push              edp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& Y3 V! X$ P! n% g; A
Mov        ebp,esp 妖城在线论坛2 V2 j  J: |# I" r0 j- n& N9 ?( e  a# q, @
Mov        edx,[ebp+8] bbs.mocwww.com% p# S' X& a% n4 X  A: P
获取当前等级的下一级存到edx
9 s/ f( p* Z5 H& J  N4 jbbs.mocwww.com
5 P  F, W& a( V' k- f7 {' I0 A妖城在线论坛Cmp              edx,7eh
  _. Z+ f0 T- ], f—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート将edx与7eh也就是10进制数130比较 魔力私服,最新魔力宝贝私服技术交流7 U0 Q" a6 a8 p
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; e% `. S; j, E( |) L
Jbe         shortloc_80740C0
" r* F& g! [4 Y8 |—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如果edx小于7eh则进行跳转到80740C0
' A: a0 e( X% w- E+ \* Gbbs.mocwww.com
2 _  Y( g9 b. `7 s, s$ `妖城在线论坛Push       ecx 妖城在线论坛7 c& M7 a2 ~! r! w: L* |
Mov        ecx,7 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 ]# h0 r/ ]4 }0 S" I* y
给ecx赋值7 bbs.mocwww.com  p4 c6 H# _& [
魔力私服,最新魔力宝贝私服技术交流+ S! V" f% a$ S
Push              edx bbs.mocwww.com" z3 `& K: N# D& V. p
Mov        eax,edx
$ ?6 u1 q+ b$ v+ E- G/ Z把当前等级+1的值给eax
* C8 @# E/ U* m+ z9 K! d# a妖城在线论坛
' e7 l( R5 ^- L- ~2 r  o6 @$ m+ P' ~# t魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Imul              eax,edx
8 N% s5 h3 T2 n, G2 d- W4 W, ]—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート把eax与edx相乘,结果存在eax 魔力私服,最新魔力宝贝私服技术交流0 \" T& [" g$ b. F9 E

4 i0 J$ j5 @4 h5 N妖城在线论坛Imul              eax,ecx
: h8 r' P% R) g2 z0 B* P魔力私服,最新魔力宝贝私服技术交流把eax与ecx相乘,结果存在eax
& d9 P6 u4 S3 k4 e: _魔力私服,最新魔力宝贝私服技术交流" r1 S( _$ M- Q4 G. W+ G
Leave —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( @' H2 g/ A+ e* T! B5 S
Retn
& J5 D/ ?# \1 g" b$ @  v妖城在线论坛退出这个过程吧,大概
4 {$ u# @0 `8 m$ Q  jbbs.mocwww.com' {8 j, u; H/ W. X2 d
Mov        eax,dwordptrLevelUPtbl[edx*4] 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 h  u5 Y; X) C" S; D
这里是读取经验表的内容给eax,也就是查表读经验 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' z/ G. x8 g# [0 t5 C; \
魔力私服,最新魔力宝贝私服技术交流. [: Q; B1 i! [0 f
jmp     short loc_80740B6
* G( b( n# }) G: Gbbs.mocwww.com强制跳转到80740B6
% ]" G+ o6 e( k( e魔力私服,最新魔力宝贝私服技术交流
0 V6 W5 E6 t- G# J8 }好了,这段代码就这点意思,逻辑上不难理解。 魔力私服,最新魔力宝贝私服技术交流6 j, X4 S4 Q" y
虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。
* U1 u0 ^4 _: J3 Q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
, W* `& d! O/ m: H" B- Q. t; j: c魔力私服,最新魔力宝贝私服技术交流分析完了之后开始修改了,上面的代码具体作用如下: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表  z) Z% Z6 I+ A! n& C+ P; b. |
判断等级下一级是否小于7eh,是则跳转到查表。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ {* ?' j' o( N, q1 N
否的话也就是大于7eh时,按照下面算法运算
- i, |, v5 Q/ p: S# Bbbs.mocwww.com.text:080740A3                 push    ecx $ Z2 o6 g) C2 S) \1 f9 ]
.text:080740A4                 mov     ecx, 7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: d, L1 B' r  ^( k
.text:080740A9                 push    edx , B8 u4 e- I4 D* E& P
.text:080740AA                 mov     eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート  S% J& }% |* f5 `5 r6 m8 j
.text:080740AC                 imul    eax, edx
1 [5 U1 v. w6 G/ ^) T( bbbs.mocwww.com.text:080740AF                 imul    eax, edx
/ U9 P9 p, H6 l6 z8 ?. _# N1 @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B2                 imul    eax, ecx 妖城在线论坛8 G1 D5 ^- Q1 R4 P/ [4 J- d1 i  e0 V
也就是eax的三次方乘以ecx,这里可以改成我想要的。 妖城在线论坛( L- {' Z: ?9 h2 G
bbs.mocwww.com9 {5 m9 X- p! R" X; b
我的目标是改称等级的四次方除以50,但是问题来了。 bbs.mocwww.com, O. _# B. c: p$ \' D
怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。
2 l$ s: a' _1 j魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
# y6 i0 t5 I/ `$ m—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098                 public CHAR_GetLevelExp —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ U1 ?8 z. F+ V" O( q' l- U
.text:08074098 CHAR_GetLevelExp: 6 {' H$ ^& H' V* Q; b
.text:08074098               + z6 ?8 U3 ~0 |) f6 ^
.text:08074098                 push    ebp 妖城在线论坛0 N4 m4 f- H# p  l
.text:08074099                 mov     ebp, esp
- n* p  L  L; r* B; Z2 q& o魔力私服,最新魔力宝贝私服技术交流.text:0807409B                 mov     edx, [ebp+8]
2 y8 b" h" I% ~魔力私服,最新魔力宝贝私服技术交流.text:0807409E                 cmp     edx, 0FFh —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 v4 D7 H" l% M$ X
.text:080740A4                 jg      short loc_80740C0 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 M- B0 t& n3 ~& X% R
.text:080740A6                 push    ecx
8 [- `8 s; Y7 V8 V% s" T& l4 j魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A7                 mov     ecx, 32h
! W0 q% s0 M+ S& C3 V$ e* v.text:080740AC                 push    edx
& U, W9 i- y3 q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AD                 mov     eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( Z- x! i! x' t8 p, j/ _
.text:080740AF                 imul    eax, edx 魔力私服,最新魔力宝贝私服技术交流9 Y# s- A& I/ D$ ^5 n& u8 H5 v
.text:080740B2                 imul    eax, edx
. m: ]$ K! K1 m/ X—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B5                 cdq
* G& l9 U4 l: V: N7 ibbs.mocwww.com.text:080740B6                 idiv    ecx
- T8 e9 s0 `  A7 i; u& P3 K妖城在线论坛.text:080740B8                 mov     edx, [ebp+8]
% q. r  s/ X" h  R5 fbbs.mocwww.com.text:080740BB                 imul    eax, edx
- \: f& b0 a' l0 Fbbs.mocwww.com.text:080740BE : J, R% o9 u9 h+ g7 s6 ?
.text:080740BE locret_80740BE:                     bbs.mocwww.com7 w. m4 J. U2 I6 e& `6 ~# T
.text:080740BE                 leave 妖城在线论坛! u7 V; x* S% S7 q% s
.text:080740BF                 retn 魔力私服,最新魔力宝贝私服技术交流5 S- K+ I7 O' r  ?3 x" ^. W
.text:080740C0 loc_80740C0:                         妖城在线论坛; G+ _: S' f2 Q/ e$ t
.text:080740C0                 mov     eax, 0FFFFFFFFh 魔力私服,最新魔力宝贝私服技术交流+ |3 H' j: Q! Q9 ]$ W/ @
.text:080740C5                 jmp     short locret_80740BE
0 B; r  B& p# k! Z: e6 D0 D2 ~; ?9 Z* }% [5 ]
方便起见这里直接把我改好的代码贴出来,与原来不同的地方:
) U9 c; y: F- T: k! o! K9 }魔力私服,最新魔力宝贝私服技术交流Cmp              edx,0FFh —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( f/ I: h# D: }- n
Jg           shortloc_8074C0 4 O, W' e  o0 m; u( {' h0 w
判断等级是否大于255是的话跳转80740C0
% Y1 I1 t" S. r2 S魔力私服,最新魔力宝贝私服技术交流否的话进入我们的等级公式:
" d7 w. A8 L0 U# q' w& b7 T7 i1 Nbbs.mocwww.com(等级*等级*等级除以50)*等级
% {$ ]& N* m9 w2 ?! ?4 [. A( |9 X魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表也就是等级三次方除以50再乘以等级
3 H$ O. h# z& m6 N6 M% @' [$ B$ @bbs.mocwww.com为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。 妖城在线论坛: Q+ `) Y  r- P2 {5 C6 \  u8 X
216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。
: o5 F$ T( L: i3 G+ R/ I" |# N—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
7 N- w, f  B0 a魔力私服,最新魔力宝贝私服技术交流魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 a7 a- f8 q6 A5 i* u0 d- Y" [/ ]
接下去做公式: 魔力私服,最新魔力宝贝私服技术交流' w+ o8 C, d) d; n
Push              ecx,32h          这里是经验倍率,就是公服经验除以ecx等于你的经验 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ w6 Q* m& g7 Y. {6 }$ F/ \
Mov        eax,edx      将下一等级的值赋值给eax 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 |  p0 c6 e( P+ E
Imul              eax,edx          将eax,edx相乘,结果存到eax
) L2 `, S; j, ^2 Q; q魔力私服,最新魔力宝贝私服技术交流Imul              eax,edx          同上
, }" N0 T5 R9 o/ J- H& K9 V魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Cdq                             这个做除法不加就会出错,用户登录后服务器当机
3 K: n" W/ @/ ~0 b7 i  JIdiv        ecx                eax除以32h算到50倍经验 bbs.mocwww.com2 |7 j8 s) ~+ a% U  ?2 U% R
Mov        edx,[ebp+8]    从新获取下一等级的值 妖城在线论坛; |) }6 P/ e5 M) [
Imul              eax,edx          将eax,edx相乘,结果存到eax / p# s( t6 ?  b; O$ B) _' a  R
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& ~  `4 p* k1 N
好了,这样就完成了运算过程。 . e# A, s- D- n& G

7 |( g* ]4 d2 @  M1 a; G—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 loc_80740C0:                         妖城在线论坛" ^9 }6 d: g; Z. V# L$ C
mov     eax, 0FFFFFFFFh
+ H7 I8 x1 v( ]! ?  m—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートjmp     short locret_80740BE bbs.mocwww.com- a, e  u" Z# R- U
这一段代码就是等级超过你设置的上限之后返回-1。
1 ]' w/ ~' t9 u% `9 X7 M, Q妖城在线论坛妖城在线论坛- g' M2 Q; ?; B# o. s  X* n
妖城在线论坛' e7 z! P. c- Q5 J) ^) G
下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。 魔力私服,最新魔力宝贝私服技术交流& V. r# I: O$ z
这里就要用到FlexHex了。 魔力私服,最新魔力宝贝私服技术交流! B- j( R' l$ e1 Q4 h* J* W

- h2 d- y! Y' z5 ~9 h9 q" p+ u魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。 ' l, U, I4 h- l8 q- c( d
如下对应:
' q- ]6 {6 m2 `& i( F" W2 Fbbs.mocwww.comCmp              edx,0ffh                       81  FA  FF  00  00  00
0 X, B0 x1 q+ d. E$ i- M魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表jg      short loc_80740C0         71  FA
  _* n" d2 o( |3 M4 u. K/ o% K/ k+ |3 i魔力私服,最新魔力宝贝私服技术交流mov     ecx, 32h                      B9  32  00  00  00
) h% K! M- e9 Q0 \' ~1 q妖城在线论坛魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ i  ?  y8 i/ W; ]  D$ W& {0 f6 X, }
依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。
" a- e7 G' |! Y6 U: W这个挺有乐趣可以自己慢慢享受摸索。 妖城在线论坛' ~3 b4 @3 w6 \' x: E

# d% M/ h' ^; R, O! Q  P( s魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。

TOP

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

TOP

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

TOP

学习学习
2 y* K3 g) f: `* n! w, t" A魔力私服,最新魔力宝贝私服技术交流谢谢楼主分享经验

TOP

感谢楼主分享,顶!

TOP

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

TOP

发新话题