没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
2 I2 Z; M& G7 Q J' o—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。 魔力私服,最新魔力宝贝私服技术交流6 j1 L+ Q0 ?6 u% u
9 Q W3 { k$ e0 E$ f魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表用IDA载入gmsv,分析完成后进入Exports选项卡。 bbs.mocwww.com L# s& ]3 L% A8 `* Y2 K5 k1 g) v8 D
搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。
1 V9 P, E" S% ?' J魔力私服,最新魔力宝贝私服技术交流.text:08074098 public CHAR_GetLevelExp
& N* @4 q! ]' b! k) I妖城在线论坛.text:08074098 CHAR_GetLevelExp: 魔力私服,最新魔力宝贝私服技术交流' R) n1 H$ ~# Q+ f- j. f: W+ {
.text:08074098 push ebp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! ^0 @$ {% D6 {0 h! o/ b! t
.text:08074099 mov ebp, esp
& E5 G6 ^% i3 O5 t" Q4 q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:0807409B mov edx, [ebp+8]
/ X) G+ t n E# p, J& c魔力私服,最新魔力宝贝私服技术交流.text:0807409E cmp edx, 7Eh
' [$ \7 S, r$ q. Ybbs.mocwww.com.text:080740A1 jbe short loc_80740C0
3 o) ~/ H5 n% D3 Jbbs.mocwww.com.text:080740A3 push ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート- S! S' T- C# q& R
.text:080740A4 mov ecx, 7
9 C2 I3 d& m. M+ j' M, M, i—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A9 push edx bbs.mocwww.com1 e8 }% e( P. x9 S
.text:080740AA mov eax, edx bbs.mocwww.com- I( T3 Z7 b; [! p
.text:080740AC imul eax, edx $ o" z) H- x( d( h4 u' a5 f
.text:080740AF imul eax, edx
% Q" J8 F5 c( p+ G; q' ?+ B妖城在线论坛.text:080740B2 imul eax, ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート; j; [, A8 \* u4 j
.text:080740B6 loc_80740B6:
# U1 E2 c5 R' C魔力私服,最新魔力宝贝私服技术交流.text:080740BE leave
' d& R& i7 u& B3 n魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BF retn 妖城在线论坛+ G' F5 R- W. b( n! _
.text:080740C0 loc_80740C0: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 C, o R5 N# u. \' S
.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] 妖城在线论坛9 {1 ^. T/ B, k, p
.text:080740C7 jmp short loc_80740B6
& P3 W5 _6 t v- E/ P D/ N( Vbbs.mocwww.com魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, a2 `) `6 o( U' P& U7 V
粗糙的解释下这段代码的意思
4 |$ D; ^& @& Y/ f6 m/ qbbs.mocwww.com—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート- X" E( a! y5 V; D; ?3 b8 t5 C
Push edp
: R3 M1 j3 X: f0 G& V- |bbs.mocwww.comMov ebp,esp
% [+ U$ }/ H- ^2 k& m& A) V—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov edx,[ebp+8] + W: K; g( h" E. s, G o. a) U
获取当前等级的下一级存到edx
& d* t* }9 h" t, p% f' G魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
6 c9 ]: F( r, Pbbs.mocwww.comCmp edx,7eh bbs.mocwww.com& A) h( i9 I4 _* u3 B7 F6 P: n! O
将edx与7eh也就是10进制数130比较
Q9 ~2 O& e' z; ^% vbbs.mocwww.com
" J, U- R( S; Y" c9 x3 {魔力私服,最新魔力宝贝私服技术交流Jbe shortloc_80740C0 bbs.mocwww.com# F% z" ~( z+ q. h7 M
如果edx小于7eh则进行跳转到80740C0
6 `& B2 O* _+ n魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表bbs.mocwww.com s. m4 m9 z, _; n* x
Push ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 j, ]2 U( ?( i* q
Mov ecx,7
7 j1 g& }: i F; Y给ecx赋值7
" G9 x$ F% s1 W. j& ?: F9 z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート9 r: @5 E9 _) j# g- [ w* L7 E
Push edx bbs.mocwww.com% U# x& ~1 g' t7 k$ v8 r _) g
Mov eax,edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( d, S! F E; m. m' I0 L6 k
把当前等级+1的值给eax 妖城在线论坛/ }# u* |' E w/ O; K
' O7 H ]4 I4 x
Imul eax,edx 妖城在线论坛, n5 t' Q0 ?1 i5 s
把eax与edx相乘,结果存在eax bbs.mocwww.com( }+ Y8 \( g9 b$ o5 T# D
魔力私服,最新魔力宝贝私服技术交流; K1 C( z% }- t% }
Imul eax,ecx
2 f1 i- p) T8 I8 U$ [妖城在线论坛把eax与ecx相乘,结果存在eax 魔力私服,最新魔力宝贝私服技术交流2 _# M# l) p* U ?
& x- j2 R8 m6 _# l7 p/ V, Z4 F% wLeave
: g/ v. h" f9 @6 h* x1 d0 b—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートRetn 魔力私服,最新魔力宝贝私服技术交流# o2 c+ }- a! Y/ ]
退出这个过程吧,大概
8 j+ {1 W5 ^+ z- Y# T# v魔力私服,最新魔力宝贝私服技术交流妖城在线论坛$ Y. ]$ K# Y" U( Z$ z0 @( m7 `4 m
Mov eax,dwordptrLevelUPtbl[edx*4]
N: I+ Z# p$ cbbs.mocwww.com这里是读取经验表的内容给eax,也就是查表读经验
- a3 w- m1 ], q' O, i7 b! h魔力私服,最新魔力宝贝私服技术交流bbs.mocwww.com2 O- v7 C% {' f
jmp short loc_80740B6
: ~3 ?& _9 ^, z, X/ V% C+ I; E+ s& U强制跳转到80740B6
3 Q5 V5 t6 _1 ?6 {7 x! I( m+ cbbs.mocwww.com
- N& x& O2 I; |5 S—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート好了,这段代码就这点意思,逻辑上不难理解。
- @6 v' r. w" |( @$ ^魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。
$ s7 a0 R. ^% ~ C7 ]妖城在线论坛
* f2 N8 s3 I- A9 d+ v妖城在线论坛分析完了之后开始修改了,上面的代码具体作用如下: 妖城在线论坛 q( K. o/ [+ A2 n. L/ B3 ~
判断等级下一级是否小于7eh,是则跳转到查表。
9 m) m0 W6 H! u% b" L" j妖城在线论坛否的话也就是大于7eh时,按照下面算法运算 bbs.mocwww.com' w9 K5 t% W b% M3 F3 t4 O
.text:080740A3 push ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: b% B5 t. J, q& Q1 r4 m" x! O# a+ D7 K
.text:080740A4 mov ecx, 7 / e' K; r1 U8 G
.text:080740A9 push edx
8 x) s4 d T: _/ ]妖城在线论坛.text:080740AA mov eax, edx
" n% b# C* P, a) T' t5 ^8 Y! S魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AC imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; f9 A0 U4 b, X* C0 o3 a3 @, q
.text:080740AF imul eax, edx bbs.mocwww.com& n/ u; F% T; X7 Y
.text:080740B2 imul eax, ecx
* e* a9 m) \6 i5 D3 Y. @妖城在线论坛也就是eax的三次方乘以ecx,这里可以改成我想要的。
2 S* ~+ [0 c; q5 [! ~0 ?—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
$ Q, `! j6 G) L. F8 m我的目标是改称等级的四次方除以50,但是问题来了。
8 j( B% B# C) q1 |' h. Q4 y妖城在线论坛怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート; |, y8 M7 q5 H6 o# @
# x% v4 g7 ]0 W: L/ N) s.text:08074098 public CHAR_GetLevelExp
2 X `7 J+ d) u/ z& U魔力私服,最新魔力宝贝私服技术交流.text:08074098 CHAR_GetLevelExp: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ J7 S+ r. Y$ S$ f- ~4 g9 n
.text:08074098 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 o3 H+ k" r) i
.text:08074098 push ebp
- `( E. H# P6 M) w! x7 G# v—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074099 mov ebp, esp
/ E" I/ E+ f% w! A) @2 |bbs.mocwww.com.text:0807409B mov edx, [ebp+8]
% L1 F7 G9 w0 H魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:0807409E cmp edx, 0FFh
" _; @/ U {9 N# ~妖城在线论坛.text:080740A4 jg short loc_80740C0
9 x) a# ~/ e9 m9 a9 U7 R妖城在线论坛.text:080740A6 push ecx
4 u/ r" Y5 J8 W' [魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A7 mov ecx, 32h bbs.mocwww.com7 l8 i0 S# D G4 d( U
.text:080740AC push edx
, u8 n5 K# t+ J—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AD mov eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 j: @7 ]4 k( Y* ?1 A
.text:080740AF imul eax, edx 0 E' t- b; d6 Z3 G
.text:080740B2 imul eax, edx
. X- J5 p. K! k0 A. B$ o魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740B5 cdq
; R, r* D7 e) Q; n, V- [5 M% J% z, R—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B6 idiv ecx 妖城在线论坛6 `' F1 X! f: L2 t6 x) U! J
.text:080740B8 mov edx, [ebp+8]
9 }. S" T7 a" V( ^' H; ?妖城在线论坛.text:080740BB imul eax, edx / e* Q$ G6 K. t8 w4 y
.text:080740BE —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ X+ }& N9 G( |1 q, V/ S8 h2 o9 u
.text:080740BE locret_80740BE: 2 ^. o; d( z1 L4 \- Q7 ^ n
.text:080740BE leave bbs.mocwww.com( P2 u. W& @, ` c9 W7 e9 E0 ^
.text:080740BF retn
; `; }) A' D! Q! M$ k2 Z魔力私服,最新魔力宝贝私服技术交流.text:080740C0 loc_80740C0: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; U7 _ Z4 ]; w' |* |+ R
.text:080740C0 mov eax, 0FFFFFFFFh
: H$ z2 F5 y3 _) A+ R妖城在线论坛.text:080740C5 jmp short locret_80740BE
. w* m0 ]) @+ `0 O! hbbs.mocwww.com
2 u$ p. |' _7 i4 c1 o5 T. z$ q6 a; Q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート方便起见这里直接把我改好的代码贴出来,与原来不同的地方: bbs.mocwww.com7 Y( R4 \+ I; a5 [+ u( N
Cmp edx,0FFh
5 d6 y" E6 M+ H6 m9 mJg shortloc_8074C0
! Q" N+ k% _$ Q/ A—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート判断等级是否大于255是的话跳转80740C0
0 D' W/ R; I. x- ]魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表否的话进入我们的等级公式:
$ u1 p( L( k3 y9 d8 g9 W. K) x(等级*等级*等级除以50)*等级 妖城在线论坛; r( F T4 V+ ~5 g7 ~, M
也就是等级三次方除以50再乘以等级
. U1 I z+ q! |4 {8 f! j0 k魔力私服,最新魔力宝贝私服技术交流为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。
5 M+ a2 ?: r1 p7 ?9 |6 r魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, V( {0 U5 v' c' K& \: r# v
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。 魔力私服,最新魔力宝贝私服技术交流0 M' h. _. {" p- f* a# \5 L a6 o
' P9 T \; v0 o9 g0 ?
接下去做公式: - t2 f4 j) P, x$ W4 }" q
Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验
/ u+ m2 S9 y f; J9 d) b8 m L妖城在线论坛Mov eax,edx 将下一等级的值赋值给eax bbs.mocwww.com. c- E& ^9 V. E# `1 h' X9 W
Imul eax,edx 将eax,edx相乘,结果存到eax 妖城在线论坛$ |2 u% v5 y" q8 G t# v% E0 b
Imul eax,edx 同上 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 h* R" v; _2 f" a9 y0 p+ k
Cdq 这个做除法不加就会出错,用户登录后服务器当机
k# |" ?4 E. A/ s魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Idiv ecx eax除以32h算到50倍经验
% E0 b- A& B7 ]6 s) l魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Mov edx,[ebp+8] 从新获取下一等级的值
1 |- h$ N! q4 E, E) L妖城在线论坛Imul eax,edx 将eax,edx相乘,结果存到eax bbs.mocwww.com2 z! w2 r: ` e/ F7 L
bbs.mocwww.com/ a+ e$ G. E2 A$ o/ L: o2 R: Y
好了,这样就完成了运算过程。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. d5 e3 b+ }6 Z
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 e P! C) m) N
.text:080740C0 loc_80740C0: 妖城在线论坛7 ?! C6 q7 a( I
mov eax, 0FFFFFFFFh
6 ]; t/ Y2 k H5 G% a8 ]5 E—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートjmp short locret_80740BE 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- ~) s; \- @- j, b+ J1 O' e
这一段代码就是等级超过你设置的上限之后返回-1。 " q1 Z6 W/ e3 N3 |& z3 J
8 _/ i0 G* N6 U1 P魔力私服,最新魔力宝贝私服技术交流" r5 [$ l4 T- ^. Y
下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
. a* l _. ?8 g. P妖城在线论坛这里就要用到FlexHex了。 8 ^$ |# x! }6 t. U
( z; p& @& w& K6 u( X妖城在线论坛首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
1 [/ s$ q9 B! x+ L# `4 c. X妖城在线论坛如下对应: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 b* H. d+ a7 r0 x) s+ l
Cmp edx,0ffh 81 FA FF 00 00 00 bbs.mocwww.com& \# J! h. l/ G$ C7 H$ q7 Y" M
jg short loc_80740C0 71 FA —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 }0 D2 }( C( ]2 z0 }7 D
mov ecx, 32h B9 32 00 00 00
- G2 x8 }! L/ ` v妖城在线论坛—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 M B' _7 N, [$ }2 G0 H( E
依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。
9 C0 U. @0 s2 r! b, ?—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这个挺有乐趣可以自己慢慢享受摸索。 魔力私服,最新魔力宝贝私服技术交流" M$ S2 }$ L8 J3 s6 b! k( Z
bbs.mocwww.com: K8 d( f1 A. _9 G
以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。