发新话题
打印

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

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

没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# Q8 S2 l1 |& Y. ?. L/ ]4 K
使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。 魔力私服,最新魔力宝贝私服技术交流1 J2 O7 e6 Y" p0 ?

' a! c* ~& u: f3 P用IDA载入gmsv,分析完成后进入Exports选项卡。
3 k0 P* m7 L3 ~( ibbs.mocwww.com搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。
' H& a, i3 e1 x- Y4 G  U—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098                 public CHAR_GetLevelExp —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' `2 D3 c1 R4 H4 W; k
.text:08074098 CHAR_GetLevelExp:
9 |! I# @5 x/ d  r—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098                 push    ebp 魔力私服,最新魔力宝贝私服技术交流0 m  K1 f0 l/ ?6 e! \8 A
.text:08074099                 mov     ebp, esp
( }' u& l8 D- O2 u+ U& [% S% e妖城在线论坛.text:0807409B                 mov     edx, [ebp+8]
/ p6 ~$ K, A, J" K$ N.text:0807409E                 cmp     edx, 7Eh
; y( \; ~) q1 z0 [8 O7 X( O; J$ n0 Sbbs.mocwww.com.text:080740A1                 jbe     short loc_80740C0
# j: Y) F, Z0 L5 m- A0 f妖城在线论坛.text:080740A3                 push    ecx   z( J! E4 O; n, k9 w
.text:080740A4                 mov     ecx, 7 妖城在线论坛" }6 t6 ?* g4 I" P2 X' v. X& k5 t
.text:080740A9                 push    edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 ^$ m! Y# P+ [, I
.text:080740AA                 mov     eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' @) r; f$ j7 D
.text:080740AC                 imul    eax, edx
3 A5 @7 C0 k+ w" e  z) J魔力私服,最新魔力宝贝私服技术交流.text:080740AF                 imul    eax, edx 妖城在线论坛- F% {& P) N! N' Z
.text:080740B2                 imul    eax, ecx
. ^1 ^9 m; G% X5 K+ w0 |妖城在线论坛.text:080740B6 loc_80740B6:   妖城在线论坛5 U0 I9 V3 C3 P- D
.text:080740BE                 leave bbs.mocwww.com! o0 L' i& e1 [" _3 i4 e
.text:080740BF                 retn
! ^! @4 D' E( N, {.text:080740C0 loc_80740C0:                           —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) q( N1 i8 N% f* C, Z9 ]5 q6 V; E% a
.text:080740C0                 mov     eax, dword ptr LevelUpTbl[edx*4]
3 S  {0 |1 r* O, d9 ^# E魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C7                 jmp     short loc_80740B6 魔力私服,最新魔力宝贝私服技术交流4 V6 X. v. ?5 ]4 j0 s- w* ~( @
1 f* H' W) Z, F" ]; w7 H2 G
粗糙的解释下这段代码的意思
+ c7 l$ `& `1 ~8 Q6 nbbs.mocwww.com
- o- G. o# I/ W- j4 W! DPush              edp bbs.mocwww.com+ c4 h2 G3 M: s4 s) T! v& D7 d4 M* R& R& m
Mov        ebp,esp —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート5 j6 O/ W; ^2 U
Mov        edx,[ebp+8] ! K8 o$ I) O# k4 J" K3 p2 l
获取当前等级的下一级存到edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: k; Y1 T/ B1 J: D7 q7 t: e
妖城在线论坛4 ?+ B: [$ K, _8 @- m8 m
Cmp              edx,7eh
& H) ?( k/ b# b3 D* O/ c; c将edx与7eh也就是10进制数130比较 妖城在线论坛' Z, C1 u" J3 R/ o4 Y! K, t
  c$ ?, E5 a% W. V# ?3 z6 \
Jbe         shortloc_80740C0 魔力私服,最新魔力宝贝私服技术交流  C& L; X5 f  k5 h) h* a
如果edx小于7eh则进行跳转到80740C0
7 e# f5 }* }* u魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
2 R/ G8 H+ T5 B  _# U妖城在线论坛Push       ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" U. ]: Q9 u6 v/ ]# i9 D- }
Mov        ecx,7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 }4 r4 }) `( N
给ecx赋值7
7 N2 C7 W' I! i魔力私服,最新魔力宝贝私服技术交流
% \; O6 n% B. Z4 V6 W妖城在线论坛Push              edx
6 E& {. C! {+ t$ Q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov        eax,edx $ |+ y* k$ L) h" [) G0 {* h- g
把当前等级+1的值给eax
4 d4 o/ |. D5 m4 w魔力私服,最新魔力宝贝私服技术交流bbs.mocwww.com( h1 k& R" q& b" |; k3 \
Imul              eax,edx 魔力私服,最新魔力宝贝私服技术交流' v1 Y- }: ?2 ], z% o: i; A3 E
把eax与edx相乘,结果存在eax 妖城在线论坛& r. q5 g2 L; E( J$ C+ ?! k

6 g! c5 b9 V. _# R妖城在线论坛Imul              eax,ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: l5 X* k' A7 y$ p8 _/ z
把eax与ecx相乘,结果存在eax + j+ ]& ~9 u+ p; c$ a/ ^

% ]+ x* q5 ^- @; v- y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートLeave 妖城在线论坛! q4 q" g/ M6 W, j
Retn
+ O, |) q7 O. ?1 D  Q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート退出这个过程吧,大概
, A' B# A5 l4 _6 o- d" M* |妖城在线论坛bbs.mocwww.com) R- Q7 v) q# t2 ]$ \+ z, s
Mov        eax,dwordptrLevelUPtbl[edx*4]
, |0 x4 Z1 d% T: r/ h+ Z8 [, J—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这里是读取经验表的内容给eax,也就是查表读经验 魔力私服,最新魔力宝贝私服技术交流$ ]) Z9 e, ]) U. {) m
妖城在线论坛' C& }5 V! K. z. d8 C
jmp     short loc_80740B6 妖城在线论坛7 @! E: A  C- w7 `* ]
强制跳转到80740B6
7 \5 a( W. f+ Y- M: u7 n2 y; J魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力宝贝私服技术交流7 z4 p/ ^; Q) ~! x3 p
好了,这段代码就这点意思,逻辑上不难理解。
# G5 q& ^! B- t$ c—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。
3 _) M1 ^8 ?) \6 Z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート; V, e9 w. {5 K4 |' Q
分析完了之后开始修改了,上面的代码具体作用如下: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 {$ y1 C6 e8 I3 e
判断等级下一级是否小于7eh,是则跳转到查表。
$ T* Z2 b$ j: Q% f9 b  @) z% Q魔力私服,最新魔力宝贝私服技术交流否的话也就是大于7eh时,按照下面算法运算 / ?8 n: j  F, d( k# N
.text:080740A3                 push    ecx 妖城在线论坛4 N) e4 }8 n5 P4 S
.text:080740A4                 mov     ecx, 7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 |4 |+ H' i1 p. f. \
.text:080740A9                 push    edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ |* M: S" z" h, u
.text:080740AA                 mov     eax, edx
  o: y0 z1 Q% m) }, _' c) b! t. K.text:080740AC                 imul    eax, edx
/ J; h+ d2 X+ p: ?; R# {—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AF                 imul    eax, edx
+ g" M% \( Q; I% v  K; }! Y# C.text:080740B2                 imul    eax, ecx
* i& {3 S8 V  ~- J8 Q9 U" nbbs.mocwww.com也就是eax的三次方乘以ecx,这里可以改成我想要的。 bbs.mocwww.com+ }6 k) G4 y+ N# S; a! j; \

" i& S/ W& Z1 [  L( T( T魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表我的目标是改称等级的四次方除以50,但是问题来了。 7 A# [. P1 B1 b- P
怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。 bbs.mocwww.com  [+ d+ H1 e* Q; s

; \" a. b; D: F7 X, K6 f1 [.text:08074098                 public CHAR_GetLevelExp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 G, f$ U, M# K9 F) ?
.text:08074098 CHAR_GetLevelExp: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% v/ i' d3 @; j8 b8 N9 H' _, G
.text:08074098               
: w6 S7 e- }  U1 W' a1 k妖城在线论坛.text:08074098                 push    ebp 魔力私服,最新魔力宝贝私服技术交流, @' f; T* L6 ?) n% [4 G' d+ f6 p
.text:08074099                 mov     ebp, esp
" r. K/ f4 h! H) o; u* M+ M$ f5 J—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:0807409B                 mov     edx, [ebp+8]
# {& c$ X9 T3 ^& d1 H妖城在线论坛.text:0807409E                 cmp     edx, 0FFh
: v" ^4 T& D: ]2 Bbbs.mocwww.com.text:080740A4                 jg      short loc_80740C0 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% c3 H/ f9 A) Y$ n6 I: x6 T  E
.text:080740A6                 push    ecx 妖城在线论坛( ]: f! F: H4 N* F
.text:080740A7                 mov     ecx, 32h
8 d( l9 ~" A0 S" d—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AC                 push    edx
2 ], ]. B8 M* o8 X5 }, o9 t.text:080740AD                 mov     eax, edx 妖城在线论坛) I& c; ]/ k$ L! e5 a1 d: K$ n4 k! R
.text:080740AF                 imul    eax, edx 魔力私服,最新魔力宝贝私服技术交流, b# ^+ @: S( r  p
.text:080740B2                 imul    eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 w/ s/ }( j7 ~  V/ }
.text:080740B5                 cdq —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 r$ s% I5 L  d. P7 }: j
.text:080740B6                 idiv    ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 {1 J. h1 I2 P* n9 y! q
.text:080740B8                 mov     edx, [ebp+8] bbs.mocwww.com" g  D* Y3 Q: Q- s# s
.text:080740BB                 imul    eax, edx
) h+ ^* m  C8 x& K魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BE
) c7 m2 j. v8 H! T6 U- i妖城在线论坛.text:080740BE locret_80740BE:                     
2 C# D7 K6 Q' N' Q, P- n& u6 Rbbs.mocwww.com.text:080740BE                 leave
0 L) e( N/ M% Y魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BF                 retn —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート  S; _9 |$ f1 ]+ L: f. P* t4 J
.text:080740C0 loc_80740C0:                         魔力私服,最新魔力宝贝私服技术交流/ h4 ]0 d: w) j, P
.text:080740C0                 mov     eax, 0FFFFFFFFh bbs.mocwww.com8 {2 M  a7 ^4 Z4 Z4 k8 B! a& h
.text:080740C5                 jmp     short locret_80740BE 妖城在线论坛0 A* |( w  F* B& p+ O

6 d. t! _/ T! n# l/ {1 o; k魔力私服,最新魔力宝贝私服技术交流方便起见这里直接把我改好的代码贴出来,与原来不同的地方: bbs.mocwww.com$ Y" t; {+ O5 ?$ }; X: T+ q
Cmp              edx,0FFh 妖城在线论坛9 E2 u6 F' J' u' s/ ]/ n# l! T6 D
Jg           shortloc_8074C0 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! B  h. p; t- B7 e
判断等级是否大于255是的话跳转80740C0
5 L/ x$ ]* a0 T! Z* P+ Q" _妖城在线论坛否的话进入我们的等级公式: * @; Z; B3 ^8 x# |% ^
(等级*等级*等级除以50)*等级 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 d( s- Y; j% w# G9 \
也就是等级三次方除以50再乘以等级 魔力私服,最新魔力宝贝私服技术交流* r$ ]: D* d1 f! L/ G* M" k
为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。
1 ?+ B, U! D+ f; Q) \3 P$ A$ i5 d2 n/ E+ q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 T, {3 G+ D  N! V
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
# Y; Y/ [, C- U; N2 C$ D! m, D; c妖城在线论坛
" a) ~4 G8 l9 D$ Q& ?, h) a妖城在线论坛接下去做公式: 4 F* F2 z$ p& k6 O
Push              ecx,32h          这里是经验倍率,就是公服经验除以ecx等于你的经验 魔力私服,最新魔力宝贝私服技术交流2 K5 ]) P6 E; A9 @
Mov        eax,edx      将下一等级的值赋值给eax
3 t" s4 W5 W1 w/ a; a—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートImul              eax,edx          将eax,edx相乘,结果存到eax
% Q9 p- ~* [8 {6 R) w魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Imul              eax,edx          同上
7 L: ~5 d5 t3 o' [' L- C# b" V- B魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Cdq                             这个做除法不加就会出错,用户登录后服务器当机 bbs.mocwww.com1 G% G$ P- d' B3 q' p
Idiv        ecx                eax除以32h算到50倍经验 : o( m+ @6 c. @  F$ M  J& D1 Q. u! o
Mov        edx,[ebp+8]    从新获取下一等级的值 魔力私服,最新魔力宝贝私服技术交流* W' B' X' T. ]% e* k0 _6 S
Imul              eax,edx          将eax,edx相乘,结果存到eax
$ R+ R' X0 Z2 n+ Z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
0 w* {. r+ _/ P好了,这样就完成了运算过程。
- ]: \3 [3 y: m$ W妖城在线论坛
/ n  p" v9 ]. P" Z) _.text:080740C0 loc_80740C0:                         魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 D! `* W) [/ e  F" v, h
mov     eax, 0FFFFFFFFh —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート- A3 \& C4 x0 c: Q  |
jmp     short locret_80740BE 7 P# o* u; m, r; v4 o
这一段代码就是等级超过你设置的上限之后返回-1。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ R3 l- E3 Q8 y8 F/ Q2 a

- z5 F# n+ ~% F/ J1 _  q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* }/ {0 N5 n5 {; m! F5 _7 k( G
下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
& k+ f9 V; B/ ]- ^, o—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这里就要用到FlexHex了。 魔力私服,最新魔力宝贝私服技术交流1 L- h- L0 c) }8 p

7 f  w' G- }1 h: `. s/ y妖城在线论坛首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
/ U9 W9 s, _* n% y7 Z5 o如下对应: 妖城在线论坛# ~/ r/ H3 K% W5 q; q8 i6 k
Cmp              edx,0ffh                       81  FA  FF  00  00  00
5 q! S( N! w1 H/ Z. u! v妖城在线论坛jg      short loc_80740C0         71  FA
! l( J( ?' u* h魔力私服,最新魔力宝贝私服技术交流mov     ecx, 32h                      B9  32  00  00  00 bbs.mocwww.com( J. K" l' `) s- z, ?) P& m* e

3 ~6 G  h+ z3 t, N. G魔力私服,最新魔力宝贝私服技术交流依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 魔力私服,最新魔力宝贝私服技术交流1 N5 r$ N$ P( _* O! {! R
这个挺有乐趣可以自己慢慢享受摸索。
$ L# z( z: D6 H0 B魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力宝贝私服技术交流) z4 |9 E3 m: @0 m/ O2 h
以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。

TOP

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

TOP

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

TOP

学习学习
- x6 F/ ?9 v2 A& u谢谢楼主分享经验

TOP

感谢楼主分享,顶!

TOP

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

TOP

发新话题