没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。 魔力私服,最新魔力宝贝私服技术交流6 o( Y' H# w" u
使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。 bbs.mocwww.com! F* G. W0 G: k/ {. [
7 ?) g# C$ }9 f6 s—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート用IDA载入gmsv,分析完成后进入Exports选项卡。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ N6 A3 p |6 i3 k/ d* G: n$ p
搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 n: ~) O7 ~# @! Y6 _/ n$ e* u
.text:08074098 public CHAR_GetLevelExp
% k3 V& O. }7 c& e—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 CHAR_GetLevelExp:
& m$ n! V0 ^1 d7 n魔力私服,最新魔力宝贝私服技术交流.text:08074098 push ebp —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 K* a7 I$ [* _+ r7 c
.text:08074099 mov ebp, esp 魔力私服,最新魔力宝贝私服技术交流: ?8 j/ J) z. B& r
.text:0807409B mov edx, [ebp+8] 魔力私服,最新魔力宝贝私服技术交流8 z! \1 |6 ]5 \: ~1 |) O; n
.text:0807409E cmp edx, 7Eh 魔力私服,最新魔力宝贝私服技术交流& B9 T; s1 ^0 \7 |% d8 c
.text:080740A1 jbe short loc_80740C0 魔力私服,最新魔力宝贝私服技术交流0 i' O5 e! d+ }; s2 u
.text:080740A3 push ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ L8 E" X- y0 P0 o$ _, w
.text:080740A4 mov ecx, 7 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( a2 V5 K3 [! S$ D) _1 D
.text:080740A9 push edx
# K1 L4 U8 i) g7 K# q& J7 h魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AA mov eax, edx
& n: D4 s# D6 ~0 R+ d4 ]* @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AC imul eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 s& ?# ?8 q9 l
.text:080740AF imul eax, edx
1 |) A6 g$ E$ A" t6 s* o* ?—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B2 imul eax, ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ i$ p, V2 ]% |; I8 M6 i
.text:080740B6 loc_80740B6:
4 y. M c3 n/ w1 m7 E# Y.text:080740BE leave —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ z: g8 y/ F% w/ ^3 w" ?1 W/ P
.text:080740BF retn —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( j0 J$ L' d2 P, h. K- U( N
.text:080740C0 loc_80740C0:
0 S0 G* ^# v# d& R: j6 H- m妖城在线论坛.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4]
; f* y4 h7 c1 Y- cbbs.mocwww.com.text:080740C7 jmp short loc_80740B6 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( H& r, K! _3 g$ p9 Y% w
( Z2 r4 ]6 \( `; P; X: R—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート粗糙的解释下这段代码的意思 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* C2 \9 x3 M X' t: p' \! G, a; \8 Q
妖城在线论坛3 s# K, H) v3 V7 k* S: B( w
Push edp
n( H4 H9 Z7 x) Fbbs.mocwww.comMov ebp,esp
- V$ _4 h# D7 E. d—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov edx,[ebp+8] bbs.mocwww.com3 T+ r6 e2 L, I! @1 p; v
获取当前等级的下一级存到edx
9 h5 E% v% g0 o3 r3 A5 M魔力私服,最新魔力宝贝私服技术交流
, o! H& A% w- eCmp edx,7eh
3 |7 j [" |, G3 @ _5 ^bbs.mocwww.com将edx与7eh也就是10进制数130比较 妖城在线论坛+ g- Y$ \% X! r' R' M8 ]
D* B; b# C3 H魔力私服,最新魔力宝贝私服技术交流Jbe shortloc_80740C0 妖城在线论坛4 I5 A8 z( y- e8 d: {2 F8 ?5 m5 \9 D
如果edx小于7eh则进行跳转到80740C0
4 Y7 Y9 Y* C8 b# u/ r
$ W+ n8 I0 T+ l; _" H" X魔力私服,最新魔力宝贝私服技术交流Push ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( H! Y B1 w& e0 W# a+ `
Mov ecx,7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" t( _: ?/ V( n% H) J* b
给ecx赋值7
- W" X2 I2 A! D' `' }2 Pbbs.mocwww.combbs.mocwww.com9 _5 R* w" U5 I, A
Push edx
" V# E& z- I( B m) g, c6 A, |$ Mbbs.mocwww.comMov eax,edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( t4 x4 _2 M6 m
把当前等级+1的值给eax 4 n x* L+ C- N8 s
! c3 z# z8 |& y; L—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートImul eax,edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) r! q- m2 \+ O+ G$ C4 z
把eax与edx相乘,结果存在eax
! p7 w; q2 d) T, G, [bbs.mocwww.com魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% d4 d' \8 X! T( e) q+ G
Imul eax,ecx
! V* N; D- d/ K% Y( S魔力私服,最新魔力宝贝私服技术交流把eax与ecx相乘,结果存在eax 妖城在线论坛1 G2 t5 a: \: M$ j" {* \
# V- i# Y7 k! G8 a$ U妖城在线论坛Leave
/ q4 N2 |+ {) I0 o0 e, Q" L: s- j魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Retn * G7 Q2 D+ v' o: v3 K
退出这个过程吧,大概
3 o) r7 I/ T; ~: F魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
6 Z% C& s, S! s0 JMov eax,dwordptrLevelUPtbl[edx*4] —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート- b6 O2 X* V* u8 ~5 i$ d: {! |% ]
这里是读取经验表的内容给eax,也就是查表读经验 ; \5 d W3 l8 H) ^3 _% |0 r0 q
% q. l# g5 k6 {) R8 F妖城在线论坛jmp short loc_80740B6 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 U" b" z" w, g1 Y' r
强制跳转到80740B6
4 @5 t9 D/ g, Q2 J* S2 u, f魔力私服,最新魔力宝贝私服技术交流魔力私服,最新魔力宝贝私服技术交流% S! E+ m) ?- @; m% i* T9 M
好了,这段代码就这点意思,逻辑上不难理解。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 e" j9 t* |1 f5 E
虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。
: r; n% C5 G! u2 Y- m魔力私服,最新魔力宝贝私服技术交流
) s8 k! w* b' ]/ q% \' ]8 mbbs.mocwww.com分析完了之后开始修改了,上面的代码具体作用如下:
2 p B& p+ D+ Q! u l% J2 E2 ^* |) G判断等级下一级是否小于7eh,是则跳转到查表。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& z4 W: |% F% A# X. y" q; b5 o
否的话也就是大于7eh时,按照下面算法运算
( j1 Q, S6 w. { w; @' ~.text:080740A3 push ecx 4 O( q" M2 T5 p/ b- z+ e( D: d8 R) C
.text:080740A4 mov ecx, 7 妖城在线论坛" s2 w6 N' B+ w* K1 u5 D! m- k
.text:080740A9 push edx
# C4 v" \4 `, N6 o% c" r$ _魔力私服,最新魔力宝贝私服技术交流.text:080740AA mov eax, edx
* X: l' [5 j0 d' q% q* L6 t2 u0 D妖城在线论坛.text:080740AC imul eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 u- s! a3 ~' W2 o# I/ x5 r
.text:080740AF imul eax, edx
0 o/ X0 }* f i) }—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B2 imul eax, ecx
' ?- N8 t9 |! R+ Q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート也就是eax的三次方乘以ecx,这里可以改成我想要的。 妖城在线论坛 B9 R3 E# L8 ^: k t5 v- `
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 R2 _5 }4 {! Y; z7 u
我的目标是改称等级的四次方除以50,但是问题来了。 0 i, P$ N. N! t
怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。
{4 J/ H% ^6 z# _% T# q A: g3 B& ~# t+ [$ N1 l4 S0 j5 V# A
.text:08074098 public CHAR_GetLevelExp
/ _$ Z: I. ?' G+ x5 I1 {1 W妖城在线论坛.text:08074098 CHAR_GetLevelExp:
9 k D+ k7 }- V.text:08074098 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 V& v+ {# z" W/ W9 T
.text:08074098 push ebp bbs.mocwww.com2 K8 K9 F$ u( Q. }
.text:08074099 mov ebp, esp
1 e% s) ^1 N( o9 A, }$ I% b$ ?魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:0807409B mov edx, [ebp+8]
_2 o9 Q: D8 F% n) Q! e. [2 ].text:0807409E cmp edx, 0FFh bbs.mocwww.com$ {' S1 u T% q/ N+ q8 U
.text:080740A4 jg short loc_80740C0
7 G; a+ ~5 ] j/ u& P妖城在线论坛.text:080740A6 push ecx bbs.mocwww.com% @/ }2 u- {- o" \5 r
.text:080740A7 mov ecx, 32h
1 K2 m& T$ r, {, f+ I—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AC push edx
3 `# E1 e: d8 P0 c( J- {妖城在线论坛.text:080740AD mov eax, edx , L! w" `1 H6 u' Q4 n8 |
.text:080740AF imul eax, edx 妖城在线论坛- B! H. C: Z* ^6 |6 U: j: f) Y
.text:080740B2 imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 e: ?6 j/ D3 \+ j& ^8 V
.text:080740B5 cdq 魔力私服,最新魔力宝贝私服技术交流/ Z3 r J0 L% x5 v/ N8 B Q
.text:080740B6 idiv ecx
4 O. r. k: \ R3 xbbs.mocwww.com.text:080740B8 mov edx, [ebp+8]
' P7 o) _# F( C; P/ W+ ?& {魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BB imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: t$ B0 k2 e3 |. r7 a
.text:080740BE 5 r6 I& O4 Z6 c" J; w6 N% ~
.text:080740BE locret_80740BE:
* b* j* C8 \. R.text:080740BE leave 2 k2 f2 P& I+ m7 z
.text:080740BF retn ; {+ i* P3 E2 m6 o( v: f" b
.text:080740C0 loc_80740C0:
" Y ]* m& Y" F% n5 wbbs.mocwww.com.text:080740C0 mov eax, 0FFFFFFFFh - Q. N7 }! X5 ] {( x
.text:080740C5 jmp short locret_80740BE bbs.mocwww.com. z6 ?. c9 r) T: W1 G
; ^3 u5 g7 N6 E/ b+ @9 I, V—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート方便起见这里直接把我改好的代码贴出来,与原来不同的地方: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% X- G, E$ m' k
Cmp edx,0FFh
) b; y3 v; k( a3 j2 _2 N8 ]妖城在线论坛Jg shortloc_8074C0
) f) a( u# F# P3 p9 Ybbs.mocwww.com判断等级是否大于255是的话跳转80740C0
, T) ?2 Q+ U+ o( T6 k否的话进入我们的等级公式: 魔力私服,最新魔力宝贝私服技术交流. J- h# s f+ K2 U" }& A
(等级*等级*等级除以50)*等级
7 L( L: r; H$ C8 Q: t: v" n7 G魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表也就是等级三次方除以50再乘以等级
1 L" s% S# u. m) y4 C, ^ Mbbs.mocwww.com为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。
- @5 U2 v3 K; N: B; W6 ]& A216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 妖城在线论坛% ?2 C. v9 K. x6 I
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
5 O3 s1 i; y6 J! ~) _8 ?0 [2 s4 V妖城在线论坛妖城在线论坛, z3 M! M" o2 U7 E8 A( v
接下去做公式: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 W& t8 ?8 |. w, X; k# f, D) ~
Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验 妖城在线论坛, k0 l& q. ?. D; |
Mov eax,edx 将下一等级的值赋值给eax
+ B2 Y4 [4 P7 | f, t* L—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートImul eax,edx 将eax,edx相乘,结果存到eax
7 J6 a" O. m3 X8 A2 A% x. {7 W—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートImul eax,edx 同上 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 r) ~7 c4 l V K/ x
Cdq 这个做除法不加就会出错,用户登录后服务器当机 魔力私服,最新魔力宝贝私服技术交流7 ?7 F3 ?2 U$ B. X% v/ N
Idiv ecx eax除以32h算到50倍经验
) s+ g5 K6 m8 z2 L. n1 T5 A* J0 F G4 M魔力私服,最新魔力宝贝私服技术交流Mov edx,[ebp+8] 从新获取下一等级的值 % z7 c- u. {! X/ S, L1 x; j" V) W8 S
Imul eax,edx 将eax,edx相乘,结果存到eax
+ }- a+ J& ]9 L1 |5 M3 N妖城在线论坛—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 j/ d2 C+ D I3 H8 m) F6 C
好了,这样就完成了运算过程。 bbs.mocwww.com# ^; |) i" A' P" W* K
6 w' _( I1 k1 g. W9 E.text:080740C0 loc_80740C0: bbs.mocwww.com% C& z+ K$ n" w1 k- y
mov eax, 0FFFFFFFFh —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート5 y$ |/ a" Q, m% T" H& {1 x
jmp short locret_80740BE
' P0 s, g; c {. N; ?7 a妖城在线论坛这一段代码就是等级超过你设置的上限之后返回-1。
# a7 n0 W- m7 m3 a7 q# S魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ [! Q1 F( I1 ^4 ^0 t: N8 G4 I( N
9 h) Z7 h' P$ E0 o+ vbbs.mocwww.com下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。 妖城在线论坛* j ^, m) a8 `
这里就要用到FlexHex了。 妖城在线论坛. Q1 q- R1 L" C+ R0 {$ {
# e7 Q! k* L6 b2 w5 Z妖城在线论坛首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
3 o" m7 T# b0 [/ U8 r7 c6 i魔力私服,最新魔力宝贝私服技术交流如下对应: 1 k$ ?+ e( H* N+ I5 c9 C1 W
Cmp edx,0ffh 81 FA FF 00 00 00 % h C4 p" Z9 C, y6 T
jg short loc_80740C0 71 FA
; C, O- C% X$ P' ]& H! W! I& fmov ecx, 32h B9 32 00 00 00
6 c" u4 E5 a2 T7 w& u9 A T) ]bbs.mocwww.com
3 o+ ~. D" k9 Q0 h0 k! Qbbs.mocwww.com依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 . h- K6 K4 u8 \" i) ^
这个挺有乐趣可以自己慢慢享受摸索。 , @% M8 Z& n( x8 C! D+ Y
bbs.mocwww.com8 A4 v0 \$ ~) a w5 v
以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。