没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
) X4 w# `' V( L# |) r( \使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。
; ?6 U( E E! {7 N& U—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート魔力私服,最新魔力宝贝私服技术交流% G& C P. y" _+ v/ e
用IDA载入gmsv,分析完成后进入Exports选项卡。
R7 O0 u) J: `% C) e+ z7 W( L魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 e" Y/ ]' |1 p8 G5 K% b
.text:08074098 public CHAR_GetLevelExp —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 M0 g6 k9 \9 j. O7 |
.text:08074098 CHAR_GetLevelExp: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) D( S" U9 d( A/ i7 p9 Y
.text:08074098 push ebp bbs.mocwww.com" Y. g2 G/ A2 F% c7 g
.text:08074099 mov ebp, esp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( @5 [ V$ r; e0 h
.text:0807409B mov edx, [ebp+8] $ j( ^& }& b" N# n
.text:0807409E cmp edx, 7Eh 魔力私服,最新魔力宝贝私服技术交流6 D1 _( v: I7 d0 q9 G
.text:080740A1 jbe short loc_80740C0
: \1 |1 ^/ Y1 B0 _2 b, N4 N—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A3 push ecx
( W5 U _6 [* p0 {魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A4 mov ecx, 7 妖城在线论坛3 h8 t0 d) Y1 ^- l* r
.text:080740A9 push edx
1 K8 Q; H6 h8 w) ]+ X3 h$ M# e2 y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AA mov eax, edx 0 o1 X9 |. N$ O9 x( l3 C- i
.text:080740AC imul eax, edx
2 [7 t! T8 ^( [. O7 @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AF imul eax, edx
. _( V% @+ W8 A5 {bbs.mocwww.com.text:080740B2 imul eax, ecx
7 N3 e" U+ k( T" D. R- [9 U魔力私服,最新魔力宝贝私服技术交流.text:080740B6 loc_80740B6:
; G1 [4 f# b s& Y& H. V/ q# K; r.text:080740BE leave * Y0 R. l7 |5 Q0 G2 C& | j
.text:080740BF retn —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( I% D" P- k2 \: V5 v5 }
.text:080740C0 loc_80740C0:
* k) K! r. l' \( I' f7 j% v—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] 妖城在线论坛6 l& S+ T# e9 B5 L8 j6 @+ i- [* @
.text:080740C7 jmp short loc_80740B6
- i% }0 d6 r7 a: G9 S/ G
) U% L' N( t: r q, e7 O粗糙的解释下这段代码的意思
" c; a6 u0 L- l% i6 _8 B& \—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& K8 s- i- T3 @2 `& b5 [2 ]$ {
Push edp
) r- G6 D3 M2 [$ j" o8 k7 Z0 l. E妖城在线论坛Mov ebp,esp
1 W# Q) J' z# C9 O—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov edx,[ebp+8]
5 ^3 ^/ [3 H& W# l, s—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート获取当前等级的下一级存到edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# T5 Y* J3 R* T8 T* j
, [9 O" I: _8 ~2 sbbs.mocwww.comCmp edx,7eh
. @& l, A% U9 o. J: l4 U8 ]2 Nbbs.mocwww.com将edx与7eh也就是10进制数130比较 妖城在线论坛3 [* b' g. J8 m a0 D3 u
# y! X, w$ ^) D魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Jbe shortloc_80740C0
: }, }7 s/ M, H2 U, n6 @魔力私服,最新魔力宝贝私服技术交流如果edx小于7eh则进行跳转到80740C0 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート9 V8 N+ U7 X8 C
0 M1 C6 p- ^9 [, d" }' R& B7 B( \魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Push ecx * \+ T* J9 G+ [. B
Mov ecx,7 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! \1 G* r4 P" i, F9 |
给ecx赋值7 妖城在线论坛7 K! z5 H, _/ I8 T X
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* b- @- y8 b$ z) i, ]
Push edx
4 M: N! d1 F( M8 g9 }bbs.mocwww.comMov eax,edx % E1 C1 [: r2 O, v, ^1 }+ [
把当前等级+1的值给eax
0 h" r, v* C: c0 ebbs.mocwww.com
1 c5 n: c- D! s$ S0 r- s2 ~8 x—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートImul eax,edx 妖城在线论坛7 c5 U/ ~4 r5 @5 O4 F9 k" t' E' L( n
把eax与edx相乘,结果存在eax
& M, F, y, S0 u. H& j- t* B0 m5 B5 X( R% M3 n6 u( {% a) ?. T
Imul eax,ecx
[! w$ j7 z& a* _) U$ `( o—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート把eax与ecx相乘,结果存在eax
; N6 p! q$ X2 @& \1 p2 b/ T—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートbbs.mocwww.com- l! a4 r; c+ ?1 s0 E4 B# _
Leave 0 U' m) I1 {7 ~ N! M6 i6 y* u7 V! ]2 W
Retn
. Q/ V1 t7 b& c$ i' t魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表退出这个过程吧,大概
/ W1 x. H7 S# v/ U6 T妖城在线论坛
+ L8 p$ Q9 S8 B4 }' }Mov eax,dwordptrLevelUPtbl[edx*4] —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( v% _# y0 D8 h8 O1 y8 V7 L0 m( q
这里是读取经验表的内容给eax,也就是查表读经验
7 a0 e8 \8 k6 _8 a; s, v7 Q& z+ Y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
/ F8 c5 C. ~, A3 c魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表jmp short loc_80740B6 8 i* [; D4 d/ E R# g8 q3 ?
强制跳转到80740B6
- k; ?7 V# c5 ^- r7 n4 P* h4 xbbs.mocwww.com+ T c8 `. \3 n3 j2 l
好了,这段代码就这点意思,逻辑上不难理解。 魔力私服,最新魔力宝贝私服技术交流4 x) D4 i. N- B, z$ ?( {
虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。 魔力私服,最新魔力宝贝私服技术交流/ }2 a* P# G2 _: F; \+ p6 v, j0 o/ _% K
0 I) ?0 ?5 [/ \$ ~& c5 l& B' ~魔力私服,最新魔力宝贝私服技术交流分析完了之后开始修改了,上面的代码具体作用如下:
( |9 D' }6 |& D0 M0 K5 ]2 t4 P) Jbbs.mocwww.com判断等级下一级是否小于7eh,是则跳转到查表。
9 a2 g/ u `+ R—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート否的话也就是大于7eh时,按照下面算法运算 bbs.mocwww.com3 i! Q% b# H" y! W6 G
.text:080740A3 push ecx + S. E2 Y$ p9 S: O+ d4 ^
.text:080740A4 mov ecx, 7 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; _3 H I$ e" R
.text:080740A9 push edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 _# C# P. s& V7 F
.text:080740AA mov eax, edx
$ _2 C0 H! ?0 W* X6 B$ s2 \! ^魔力私服,最新魔力宝贝私服技术交流.text:080740AC imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 J0 F1 C' E' a7 E+ B2 Y6 j, ^
.text:080740AF imul eax, edx 魔力私服,最新魔力宝贝私服技术交流) r& k, X3 F5 H3 h+ P
.text:080740B2 imul eax, ecx
5 L9 F# i8 ^$ @9 i妖城在线论坛也就是eax的三次方乘以ecx,这里可以改成我想要的。
5 a7 z& S* A% U0 D! [妖城在线论坛魔力私服,最新魔力宝贝私服技术交流 M& U" t% ]& K- U
我的目标是改称等级的四次方除以50,但是问题来了。 魔力私服,最新魔力宝贝私服技术交流* ~1 j7 c0 d4 Q) @
怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。
7 n. @( [ e0 w; s2 M+ A0 ~4 p—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート魔力私服,最新魔力宝贝私服技术交流) t) I' X# x+ i: ~
.text:08074098 public CHAR_GetLevelExp
+ Q" G1 u$ ?4 K, z; g) G5 }bbs.mocwww.com.text:08074098 CHAR_GetLevelExp:
; n) P2 E, I( Q. d, `1 Lbbs.mocwww.com.text:08074098 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* o! o* b& s/ t- V; B! V# I
.text:08074098 push ebp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. Q3 k$ f( L3 f, ^8 ]
.text:08074099 mov ebp, esp
- }& T5 h( u. ~( s妖城在线论坛.text:0807409B mov edx, [ebp+8] bbs.mocwww.com! m8 t4 b8 g* d, }1 a; m
.text:0807409E cmp edx, 0FFh
; T @2 U0 y5 e) U" F# j魔力私服,最新魔力宝贝私服技术交流.text:080740A4 jg short loc_80740C0
: E) \# R( K+ q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A6 push ecx
4 M/ M# V. k& M" e.text:080740A7 mov ecx, 32h
# D/ m9 ?5 M& u* ?, S( Y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AC push edx bbs.mocwww.com1 W7 }- J" M. W# z& f, W
.text:080740AD mov eax, edx
6 A. m7 ]. z/ b+ }8 n3 _* o妖城在线论坛.text:080740AF imul eax, edx
+ ]- Q% m, ~# c3 K5 [妖城在线论坛.text:080740B2 imul eax, edx
% y9 T& h: I) z: P4 p9 f魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740B5 cdq 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 A& k6 D$ i f! i, z8 o
.text:080740B6 idiv ecx ) ]7 E# o: N# g1 w& Z0 {
.text:080740B8 mov edx, [ebp+8] 妖城在线论坛 n5 e; w+ `1 N7 I
.text:080740BB imul eax, edx
; _0 v9 }: \: p% S' E' p7 G% m—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BE 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 ?& ~+ F0 g" C
.text:080740BE locret_80740BE:
9 c0 I7 C' C; q1 s& `妖城在线论坛.text:080740BE leave
: l0 X6 D& C- Q, r( [. A.text:080740BF retn
! r: E" m! _7 X9 C7 q1 c9 f6 ~妖城在线论坛.text:080740C0 loc_80740C0: bbs.mocwww.com) X- B+ c; }+ @( p
.text:080740C0 mov eax, 0FFFFFFFFh 妖城在线论坛" T4 A2 g8 ]# U0 X% s& y
.text:080740C5 jmp short locret_80740BE 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: H$ h* Q. {( V) L' s% I! a
魔力私服,最新魔力宝贝私服技术交流& N5 S9 h0 R4 n" R# X: K
方便起见这里直接把我改好的代码贴出来,与原来不同的地方: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: L: v# g, D$ u4 C
Cmp edx,0FFh
! `1 Q- o+ ?8 s9 `( ^1 p; k E魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Jg shortloc_8074C0 魔力私服,最新魔力宝贝私服技术交流4 F* U$ j! q3 U" A/ w w' l
判断等级是否大于255是的话跳转80740C0
O) q- b; Z; K$ q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート否的话进入我们的等级公式: 魔力私服,最新魔力宝贝私服技术交流, N% H4 `: u0 U; i( ~- G
(等级*等级*等级除以50)*等级
* M- O# R, R- Q \' l9 d也就是等级三次方除以50再乘以等级 4 M6 N% D) q! L0 f7 o# }
为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# y. d0 [$ n: h6 o% C4 {, M) G
216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。
6 V% U4 V( d/ T) |+ {魔力私服,最新魔力宝贝私服技术交流所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
# w5 w1 E$ O7 d魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表妖城在线论坛, R% ]8 U7 Y9 i6 _! p: a1 M
接下去做公式:
. R0 f0 C' q6 Z2 K6 G5 Z妖城在线论坛Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验
9 B1 A. x4 ?( U# I* t妖城在线论坛Mov eax,edx 将下一等级的值赋值给eax
( n: j/ |# b6 H6 I6 f- n妖城在线论坛Imul eax,edx 将eax,edx相乘,结果存到eax
" S' A/ ?$ C3 Fbbs.mocwww.comImul eax,edx 同上
, ?2 }. o4 L# {: L, ICdq 这个做除法不加就会出错,用户登录后服务器当机
$ k9 R' Z7 y" i" e1 `$ S" X/ sIdiv ecx eax除以32h算到50倍经验 bbs.mocwww.com& r% z2 R: B$ N, q" z
Mov edx,[ebp+8] 从新获取下一等级的值 魔力私服,最新魔力宝贝私服技术交流& n5 V' R8 H+ o6 P
Imul eax,edx 将eax,edx相乘,结果存到eax
- s" D9 o" T' s$ M% t }1 o( R魔力私服,最新魔力宝贝私服技术交流6 G/ ` V; X3 {' X& z: B q" |
好了,这样就完成了运算过程。
3 [: _( t! k2 O1 o魔力私服,最新魔力宝贝私服技术交流
5 l; x8 O" q$ Rbbs.mocwww.com.text:080740C0 loc_80740C0: 魔力私服,最新魔力宝贝私服技术交流% x) @% ^" j! k9 M
mov eax, 0FFFFFFFFh
9 k! P; L4 a% M2 b, vbbs.mocwww.comjmp short locret_80740BE 妖城在线论坛/ M3 [& n# ?9 w. X( [. B" |
这一段代码就是等级超过你设置的上限之后返回-1。 bbs.mocwww.com4 J; \( | n5 a* Q+ q
妖城在线论坛, T K& k" x8 f, g: D. A
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ d& e# \6 r7 d
下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
7 h; ]8 H! r- s4 P9 D9 `& Y妖城在线论坛这里就要用到FlexHex了。 bbs.mocwww.com! z5 b1 U% _# w4 \
# H- T |. \" m" E3 C魔力私服,最新魔力宝贝私服技术交流首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
" h; w% ]# G2 S+ L0 O5 O: H2 jbbs.mocwww.com如下对应:
D5 b" R) _ B4 X/ ?( K3 t& E( c—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートCmp edx,0ffh 81 FA FF 00 00 00
( r: _- J/ K6 {% u# M7 T. N6 m2 b魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表jg short loc_80740C0 71 FA
) T, x. { U# i* l) g/ w, [; z/ \mov ecx, 32h B9 32 00 00 00
! |+ G$ P! z* N7 h1 ?- e. e( `0 P4 z妖城在线论坛妖城在线论坛* D/ e& Z4 U/ E) o, w1 K
依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。
( l( A" L. W& x u3 t: r. ^—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这个挺有乐趣可以自己慢慢享受摸索。
! T9 n, }6 |( O! l! I4 I1 r魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
% T# e$ w; U' Q! x- \: G. J/ i+ jbbs.mocwww.com以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。