发新话题
打印

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

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

没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
4 |* X' h( P  W) wbbs.mocwww.com使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。 魔力私服,最新魔力宝贝私服技术交流# |8 P3 T) O* Z2 f6 m

. ?& Y! U) ~- |; H; J魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表用IDA载入gmsv,分析完成后进入Exports选项卡。
7 C3 d0 t, @8 r8 N, a2 Y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。
( C- n; w: Q7 j. H7 B# n  B—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098                 public CHAR_GetLevelExp
4 h9 `; N; i6 g0 J. P: W. Y妖城在线论坛.text:08074098 CHAR_GetLevelExp: 妖城在线论坛. U/ B. [! k% @0 ]
.text:08074098                 push    ebp bbs.mocwww.com/ C( m1 m2 [- a  e, z
.text:08074099                 mov     ebp, esp
! C! n! r5 p4 `—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:0807409B                 mov     edx, [ebp+8] 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- ]: r9 F  Q4 G
.text:0807409E                 cmp     edx, 7Eh —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, k- G# a$ h5 c) v
.text:080740A1                 jbe     short loc_80740C0
3 z, C! g9 b" z1 e3 |& W3 j% R魔力私服,最新魔力宝贝私服技术交流.text:080740A3                 push    ecx
3 f+ z, Y) t' W魔力私服,最新魔力宝贝私服技术交流.text:080740A4                 mov     ecx, 7 魔力私服,最新魔力宝贝私服技术交流1 u- q2 D# z$ ^' I# q( [* h
.text:080740A9                 push    edx
9 r8 `8 F: V# x  L2 H! \  N魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AA                 mov     eax, edx
* @: C, W4 S) ~" s& b6 ^' U' |魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AC                 imul    eax, edx
3 i. F9 Y- V9 A- V: [bbs.mocwww.com.text:080740AF                 imul    eax, edx
- E) K: Q% a2 E—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B2                 imul    eax, ecx
* g" }& ]6 ~; x" _4 a.text:080740B6 loc_80740B6:   
% W& Z8 Z; q* g3 h! ^1 }. a妖城在线论坛.text:080740BE                 leave
' p, e& ~: d8 D7 E魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BF                 retn 7 M1 i1 }1 `- p  n$ E% \
.text:080740C0 loc_80740C0:                           
/ N/ {6 F& O1 {+ n4 p.text:080740C0                 mov     eax, dword ptr LevelUpTbl[edx*4] . s% _' Z$ S2 I0 [( z% K' h
.text:080740C7                 jmp     short loc_80740B6
/ A3 x% p) R9 _( e& x( ~! C魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力宝贝私服技术交流+ s$ _" f# J' u$ I+ Z
粗糙的解释下这段代码的意思 魔力私服,最新魔力宝贝私服技术交流; q* l* Q) [8 C0 n! w  n
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- g9 a; ]/ f- \6 I0 _
Push              edp
; }' U- K9 g6 G, [3 A- M7 E—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov        ebp,esp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ L/ z% v. w1 G, r/ ~5 ]
Mov        edx,[ebp+8]
2 y- q; I& x7 Z6 ?5 O. Z' `0 K6 F魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表获取当前等级的下一级存到edx
: M9 `4 s: e6 @9 K5 T! p9 D—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ _) F9 s( c% m) F& K/ m
Cmp              edx,7eh bbs.mocwww.com0 B: w+ F# {! {3 c: T8 Z7 x" n  S
将edx与7eh也就是10进制数130比较 bbs.mocwww.com, n* g( k" N7 R& S7 B6 B0 L+ B
$ g7 j* u- t0 F: X4 L6 t
Jbe         shortloc_80740C0 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ z1 `7 C+ P: O+ E
如果edx小于7eh则进行跳转到80740C0 妖城在线论坛5 P9 N# z2 E: I1 z! }. _1 \; K! Y3 c
妖城在线论坛3 c1 b& |! [3 b- j$ R
Push       ecx
# q3 z( d6 S6 {" b8 G# p4 u, \妖城在线论坛Mov        ecx,7 bbs.mocwww.com3 N6 r2 \$ s4 |, d
给ecx赋值7
9 |7 C* D/ z& d4 Y* |, A! P8 h—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% I& ^) @1 h- g' Q/ |0 @
Push              edx bbs.mocwww.com+ q9 z0 ?0 T) Z- |9 L% A
Mov        eax,edx 魔力私服,最新魔力宝贝私服技术交流) r6 \4 A; \8 V5 s! P
把当前等级+1的值给eax
- [9 ]0 a* U1 I" |4 F  _魔力私服,最新魔力宝贝私服技术交流
" v  v- S, l% ?0 ?$ T% z魔力私服,最新魔力宝贝私服技术交流Imul              eax,edx
6 K5 Z( [- ?: M$ r7 I2 U+ c+ B魔力私服,最新魔力宝贝私服技术交流把eax与edx相乘,结果存在eax 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 z: F6 [4 }2 h' X1 z8 a7 w
魔力私服,最新魔力宝贝私服技术交流1 d" r) [7 e! h7 R- B& V
Imul              eax,ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. ^# ?( X# B  h& ]$ U+ l
把eax与ecx相乘,结果存在eax # ^, t6 n' C" t( x6 D% s5 s7 o
魔力私服,最新魔力宝贝私服技术交流) B: u2 R6 _, ]2 c1 W+ L* T( g& w
Leave bbs.mocwww.com3 ]2 C" o$ S0 C, @/ F; W1 q+ d$ d
Retn
4 M5 C* o3 v. u3 I魔力私服,最新魔力宝贝私服技术交流退出这个过程吧,大概 妖城在线论坛6 T$ _$ F8 T" T9 n/ F
bbs.mocwww.com4 Z6 H7 i& o5 H/ ^
Mov        eax,dwordptrLevelUPtbl[edx*4] 妖城在线论坛8 Z) U* L; v: y/ J2 \$ W9 @! X
这里是读取经验表的内容给eax,也就是查表读经验
; |( `/ u. I. R+ Y1 a( tbbs.mocwww.com
6 g5 ^( g& w' P8 M% i( R" d% F妖城在线论坛jmp     short loc_80740B6
( l6 G3 h+ w/ dbbs.mocwww.com强制跳转到80740B6
& B5 \0 \+ }5 f2 j; x& d: e0 xbbs.mocwww.com妖城在线论坛3 f2 ~7 s) Q. F9 U2 I' l2 N
好了,这段代码就这点意思,逻辑上不难理解。
5 a/ q8 Q1 g. N+ h  {bbs.mocwww.com虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。   ^& m; i. K$ H7 ^6 v$ k
bbs.mocwww.com$ u1 F; F5 ?" ~- |6 d
分析完了之后开始修改了,上面的代码具体作用如下: 妖城在线论坛. O6 k/ b! ~; e( V2 s
判断等级下一级是否小于7eh,是则跳转到查表。
7 `- q/ e/ t" M9 b' s6 e妖城在线论坛否的话也就是大于7eh时,按照下面算法运算
) h& X$ P- ?3 h$ ?+ f2 [妖城在线论坛.text:080740A3                 push    ecx ) X, D5 O6 C$ K$ ~2 z
.text:080740A4                 mov     ecx, 7
0 }+ [/ Z3 Q# m9 `妖城在线论坛.text:080740A9                 push    edx bbs.mocwww.com4 u+ e4 U7 [4 E5 N8 a- O0 c) r
.text:080740AA                 mov     eax, edx
2 |0 X8 F: A1 Z/ `魔力私服,最新魔力宝贝私服技术交流.text:080740AC                 imul    eax, edx
) [/ b4 x. q/ S3 W$ K: b魔力私服,最新魔力宝贝私服技术交流.text:080740AF                 imul    eax, edx
, ]" O3 g; a* U妖城在线论坛.text:080740B2                 imul    eax, ecx
! F+ B( i6 C8 ?1 @bbs.mocwww.com也就是eax的三次方乘以ecx,这里可以改成我想要的。 - E, `4 ~: Q# _" F2 E: a' z

+ s1 ~: I" f$ r! s魔力私服,最新魔力宝贝私服技术交流我的目标是改称等级的四次方除以50,但是问题来了。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: Z8 u( [/ R/ c
怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。
( V- `; L0 Q/ G* U) x魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# f0 V: x* h' N2 \
.text:08074098                 public CHAR_GetLevelExp 魔力私服,最新魔力宝贝私服技术交流4 Y+ c0 P# j+ k' R
.text:08074098 CHAR_GetLevelExp:
7 ]' z4 f5 A6 y. t4 P0 ^$ F妖城在线论坛.text:08074098               魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 H- k- L4 J) L) X
.text:08074098                 push    ebp bbs.mocwww.com+ Y$ J* {0 ]0 Y" @
.text:08074099                 mov     ebp, esp
  B. y7 ]0 F% V/ F$ H.text:0807409B                 mov     edx, [ebp+8]
# d+ a$ z- }8 r6 b魔力私服,最新魔力宝贝私服技术交流.text:0807409E                 cmp     edx, 0FFh , T8 _, o: `; U, n% g' N* Z9 `, y5 {
.text:080740A4                 jg      short loc_80740C0
' O# w" `4 ]' R1 X& k- c( ~bbs.mocwww.com.text:080740A6                 push    ecx
9 h! ~4 z- m* Z/ |0 [.text:080740A7                 mov     ecx, 32h 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! m) t, F3 h2 |% S  S+ H- I
.text:080740AC                 push    edx
9 e3 ]" @- i1 P5 B5 s+ |) l妖城在线论坛.text:080740AD                 mov     eax, edx
9 H# C/ I2 a5 V+ u$ o.text:080740AF                 imul    eax, edx 魔力私服,最新魔力宝贝私服技术交流% D3 L; T' I' E  H, X8 E0 m" d
.text:080740B2                 imul    eax, edx 魔力私服,最新魔力宝贝私服技术交流% t8 o9 m, h- d/ W% j
.text:080740B5                 cdq
% x9 v9 L/ v; Y; rbbs.mocwww.com.text:080740B6                 idiv    ecx bbs.mocwww.com0 A* s! V7 n2 D, Z& |/ R! [
.text:080740B8                 mov     edx, [ebp+8]
6 F1 R! D0 S, v7 N6 u—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BB                 imul    eax, edx
& M6 o1 a! |# V  _4 F* Z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BE
" J( [% y$ I2 W/ n  _) Z妖城在线论坛.text:080740BE locret_80740BE:                     
( Z! c5 H: q6 g# C( \—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BE                 leave + C/ S& w) `1 r% y: ^; P
.text:080740BF                 retn
, `. G/ F5 y8 x+ X. V, Y魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C0 loc_80740C0:                        
- ^3 L1 i( p; h9 y' n1 g.text:080740C0                 mov     eax, 0FFFFFFFFh
# D7 P: [' n( N0 ?.text:080740C5                 jmp     short locret_80740BE bbs.mocwww.com5 T0 i: c8 u& |. t  V

" n1 T- ]# B1 w—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート方便起见这里直接把我改好的代码贴出来,与原来不同的地方: bbs.mocwww.com  W9 F/ ~% X! [) ?1 f
Cmp              edx,0FFh
$ _7 P1 n3 S  B8 A: c1 T魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Jg           shortloc_8074C0 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ Z- \& [, j, a
判断等级是否大于255是的话跳转80740C0 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& X3 N7 _2 d$ z- p
否的话进入我们的等级公式:
4 F2 [/ a- m; T1 L; \" ubbs.mocwww.com(等级*等级*等级除以50)*等级 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" L* s8 E1 F0 J  W! W( V
也就是等级三次方除以50再乘以等级
: q1 R7 R% A, Kbbs.mocwww.com为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。 bbs.mocwww.com, {9 _+ a4 V. x+ F# f- B; g2 ^4 _) o
216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 " _. o, E( e. _& E" ?' _3 S* s1 S
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
: v" E3 F2 N$ c- ^8 Y3 p—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
; M$ T* B3 X# b' [: `+ R6 q4 Q魔力私服,最新魔力宝贝私服技术交流接下去做公式: ) v9 \( F9 ]( Z; |* J/ ]. C
Push              ecx,32h          这里是经验倍率,就是公服经验除以ecx等于你的经验
; N3 i+ O0 W9 |/ @9 tMov        eax,edx      将下一等级的值赋值给eax 妖城在线论坛) X/ q+ k  B: T# v+ |4 O
Imul              eax,edx          将eax,edx相乘,结果存到eax
5 W/ v8 W  ]+ [9 Ibbs.mocwww.comImul              eax,edx          同上 3 u: t+ Y* j/ x; v  K7 n9 ^
Cdq                             这个做除法不加就会出错,用户登录后服务器当机 妖城在线论坛" E) E9 m/ F0 Z. _
Idiv        ecx                eax除以32h算到50倍经验 bbs.mocwww.com1 s% V! Y+ V; \$ \3 R, j6 C
Mov        edx,[ebp+8]    从新获取下一等级的值 魔力私服,最新魔力宝贝私服技术交流. z$ p4 m5 y, b' O* w8 W9 g, s5 C
Imul              eax,edx          将eax,edx相乘,结果存到eax
0 s6 v; ?/ P+ q0 ?& h/ t  x% ]bbs.mocwww.combbs.mocwww.com/ w# B9 I! q! o) z
好了,这样就完成了运算过程。
3 t0 L# L* y# v& y" p1 y7 B魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" r! q! L6 I9 w( t( [- \/ ~5 W
.text:080740C0 loc_80740C0:                         魔力私服,最新魔力宝贝私服技术交流' P; W1 k! o1 U9 ]9 n
mov     eax, 0FFFFFFFFh
5 ^+ V; O8 M/ C/ U+ F% Q. C0 G' Vbbs.mocwww.comjmp     short locret_80740BE —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: K* K" \5 ?/ l/ ]+ W3 c
这一段代码就是等级超过你设置的上限之后返回-1。 魔力私服,最新魔力宝贝私服技术交流' b/ V5 v5 q; k0 [$ G
妖城在线论坛- t3 o; A) X% _  f( ]$ g

, g  p) `! x  \' I* L3 Y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
; b0 G( f) m: P/ s! }bbs.mocwww.com这里就要用到FlexHex了。 妖城在线论坛6 B) Q. r( |  `$ e; c
bbs.mocwww.com2 X4 N$ S1 ?; K) S: F
首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
! w& l" m0 t; T# U6 X妖城在线论坛如下对应:
3 @7 q9 s0 i( k0 ubbs.mocwww.comCmp              edx,0ffh                       81  FA  FF  00  00  00
7 r, {0 j( |: @$ @, Z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表jg      short loc_80740C0         71  FA
" n- c, B) e+ R: C8 w$ B2 |妖城在线论坛mov     ecx, 32h                      B9  32  00  00  00 魔力私服,最新魔力宝贝私服技术交流" O8 }" P& l. T( U

& Z" i2 o( @" f9 j& o魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 魔力私服,最新魔力宝贝私服技术交流% v! w+ X7 r0 Y5 o: \
这个挺有乐趣可以自己慢慢享受摸索。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート- h# n6 \; Q$ f
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 \+ w3 u% G5 a3 z: J. j( x
以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。

TOP

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

TOP

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

TOP

学习学习bbs.mocwww.com# d6 p# {% \6 F
谢谢楼主分享经验

TOP

感谢楼主分享,顶!

TOP

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

TOP

发新话题