没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 D3 ^/ ?& x* V1 F
使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( z: R! u( r9 }8 ?* y* I
) g: D$ B' f8 S( d4 Z" b/ u; X) Y
用IDA载入gmsv,分析完成后进入Exports选项卡。
[( Y. v8 J U Y. O7 G. B# `$ O搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。
: Z& Q9 i- n7 q9 m; s$ E3 e妖城在线论坛.text:08074098 public CHAR_GetLevelExp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 a$ H$ y- t+ j
.text:08074098 CHAR_GetLevelExp: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: l! i5 S) W: ~. I* Q( x
.text:08074098 push ebp j9 `( E- ?! Z, v, `
.text:08074099 mov ebp, esp
0 D% k: s* d% O" }9 w! P, Z" E4 g" q妖城在线论坛.text:0807409B mov edx, [ebp+8]
( v5 i4 H; W1 f) H; E8 r) n.text:0807409E cmp edx, 7Eh
, O. h+ G8 j) C7 ?魔力私服,最新魔力宝贝私服技术交流.text:080740A1 jbe short loc_80740C0
/ U/ R3 H& J* s; o% n魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A3 push ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 r/ k; m2 B/ i+ B5 d; p' Z
.text:080740A4 mov ecx, 7 ! `$ }/ C J; Z7 F( @
.text:080740A9 push edx 魔力私服,最新魔力宝贝私服技术交流, j$ Y# g/ d' e& K. J1 |: Z
.text:080740AA mov eax, edx 7 n0 } ?& P. l- D* k) u6 s
.text:080740AC imul eax, edx bbs.mocwww.com) G, d! ]/ ]- ^6 |! O% h
.text:080740AF imul eax, edx
, K2 U. C2 S& B) z, u6 K3 i" w3 {.text:080740B2 imul eax, ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# d3 J% y7 F3 H5 H7 _5 }+ o
.text:080740B6 loc_80740B6: 妖城在线论坛$ l; J6 @' o, M; O
.text:080740BE leave
) n% ~% K# _6 ]$ i8 C魔力私服,最新魔力宝贝私服技术交流.text:080740BF retn 妖城在线论坛9 o* _% Z3 O E2 M1 |2 j
.text:080740C0 loc_80740C0:
. \1 g: r3 D& H+ G3 I—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4]
+ n2 l* B6 t m+ J# D—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C7 jmp short loc_80740B6 魔力私服,最新魔力宝贝私服技术交流% B9 \1 e. U5 P6 \, m' E
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 d, ^$ [' q, I" _1 b8 A
粗糙的解释下这段代码的意思
; W. ^& {6 p" }2 R0 [. K魔力私服,最新魔力宝贝私服技术交流
7 t# Q8 X2 i. r3 MPush edp * u5 P3 }3 A# i! e: h: M5 S- h) O$ k
Mov ebp,esp —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& i& z8 K! c: R. _; w; n0 k
Mov edx,[ebp+8] 妖城在线论坛$ m( ?; L- e8 ?8 T" l- F8 `
获取当前等级的下一级存到edx + F2 `3 J' T& D8 r0 @
+ R% `" `6 E: G: P魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Cmp edx,7eh
+ H( w H9 B: \& l- w妖城在线论坛将edx与7eh也就是10进制数130比较 bbs.mocwww.com F. m' D9 T2 x! M& o: ?2 n$ L
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- C/ O8 n: Q: Y- i# i/ L* M
Jbe shortloc_80740C0 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& w( Q# d' _1 {) Y
如果edx小于7eh则进行跳转到80740C0
2 m" u4 ~3 f) k& e( Q妖城在线论坛魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ q Y5 S) c0 s4 M0 z
Push ecx
. d1 T0 ^1 B, h—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov ecx,7 bbs.mocwww.com% j2 M1 a$ ~- Y# u2 b
给ecx赋值7 * t7 l9 K1 n+ Q# K0 a5 e
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# T4 U) N; k7 t
Push edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" E* v1 ^0 K; J" o+ t
Mov eax,edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 n0 A# _) T1 t( |* X
把当前等级+1的值给eax
# n( W. X! F* U: p) Y9 J# `4 M—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* `+ W1 }5 l* ^, A. S, e7 \1 V
Imul eax,edx 妖城在线论坛* n# u0 W5 w9 T1 ]
把eax与edx相乘,结果存在eax
' ~( o" Q6 f8 e0 o: w魔力私服,最新魔力宝贝私服技术交流
# y, V. J! ` I$ f- Wbbs.mocwww.comImul eax,ecx + p& h6 _9 ]$ [
把eax与ecx相乘,结果存在eax
& }. u2 Q+ G$ \7 p! Hbbs.mocwww.com妖城在线论坛8 e" l( P0 E x. p2 G8 |0 Z+ j
Leave
# s. h0 m1 o/ R* \1 g' L6 g* ?bbs.mocwww.comRetn
% O# v# N5 M6 Z退出这个过程吧,大概
6 ]* q7 k& O" }1 A9 ~% p, Y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
7 r3 l6 E" U3 ?3 ?/ } I+ n* c魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Mov eax,dwordptrLevelUPtbl[edx*4] 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 @, p. F9 U1 J. ?" _# d( [
这里是读取经验表的内容给eax,也就是查表读经验
# K) i+ ]- \+ ~2 O0 k6 |" x8 U妖城在线论坛
& a S$ P( l9 i魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表jmp short loc_80740B6 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 N& P8 I! R$ [+ D
强制跳转到80740B6
5 v+ C! v7 {; K7 A& l7 fbbs.mocwww.com
8 W& x, G5 b5 \) c& o3 c妖城在线论坛好了,这段代码就这点意思,逻辑上不难理解。 + |/ p2 F% U3 K) a- `& }
虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" _8 j1 x" j' N) V1 Y
# b8 `4 o$ h# H+ L; S1 E" P) }7 ~魔力私服,最新魔力宝贝私服技术交流分析完了之后开始修改了,上面的代码具体作用如下:
' n% k0 d, v' q- \/ G+ J6 w) Y1 i, g魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表判断等级下一级是否小于7eh,是则跳转到查表。
3 Q, L% Y# |0 H; W—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート否的话也就是大于7eh时,按照下面算法运算
3 Z. b/ J- b+ @4 P" N' p—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A3 push ecx
% M- `$ ^# G( \% F$ \9 {# c$ ~魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A4 mov ecx, 7
9 M) f( N( p$ J魔力私服,最新魔力宝贝私服技术交流.text:080740A9 push edx 魔力私服,最新魔力宝贝私服技术交流1 L( k0 f3 Z1 V5 O7 Q
.text:080740AA mov eax, edx ; P5 x- i% T4 y! S* M( X6 ~
.text:080740AC imul eax, edx bbs.mocwww.com* e- h t( t$ u3 q1 s
.text:080740AF imul eax, edx
% a& X k# q. @魔力私服,最新魔力宝贝私服技术交流.text:080740B2 imul eax, ecx
4 C+ u+ H0 K) R" i% L" O( U魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表也就是eax的三次方乘以ecx,这里可以改成我想要的。 3 t1 ~1 u. Z1 @7 D% ~2 c- B3 u
3 B( n5 B7 D. w: t- ?9 N9 Y
我的目标是改称等级的四次方除以50,但是问题来了。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. `! Z% @5 ?1 E! K; i
怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート5 L* ~, ~1 I% B6 E% H; L( x
- W `/ G1 |/ N! j3 M* K8 n—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 public CHAR_GetLevelExp
( {9 l/ w9 F- M9 E9 P: O—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 CHAR_GetLevelExp: 妖城在线论坛0 o+ M2 Z3 E. P
.text:08074098
: d( b$ ?$ Y' T4 l3 }.text:08074098 push ebp bbs.mocwww.com6 ?( |5 D* v$ c1 g4 y0 N
.text:08074099 mov ebp, esp
2 w+ W0 y0 h" R/ i; g) ?魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:0807409B mov edx, [ebp+8]
. a1 L; w& V( O2 Q, f" j) g.text:0807409E cmp edx, 0FFh —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 Q/ \ b( \4 v# ]! j8 s9 G$ F, p' N
.text:080740A4 jg short loc_80740C0 妖城在线论坛2 y2 a, c! g( h3 y5 Z) d' O# m
.text:080740A6 push ecx
3 v( x! V" T" B/ G, X魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A7 mov ecx, 32h
) Z4 s4 M2 Z' p妖城在线论坛.text:080740AC push edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! v1 A" z( V4 Z" T' b8 q
.text:080740AD mov eax, edx
6 @+ D0 p0 J! B" t3 L妖城在线论坛.text:080740AF imul eax, edx
! P, x7 R# l$ _/ F魔力私服,最新魔力宝贝私服技术交流.text:080740B2 imul eax, edx 妖城在线论坛1 P7 A6 w; n5 }
.text:080740B5 cdq
4 z, | f, B3 Z2 C9 m魔力私服,最新魔力宝贝私服技术交流.text:080740B6 idiv ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ j) B8 w/ n* b0 y1 f" @$ G7 }
.text:080740B8 mov edx, [ebp+8]
+ |4 ?* O2 P$ t/ a.text:080740BB imul eax, edx 魔力私服,最新魔力宝贝私服技术交流8 c ] M. y& ~
.text:080740BE bbs.mocwww.com. p1 M$ E4 P# J
.text:080740BE locret_80740BE: bbs.mocwww.com0 T9 t I9 T+ x) z7 p7 w) t7 k5 J
.text:080740BE leave 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 S1 t7 A, J) `
.text:080740BF retn —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 {) T/ x- l6 L9 W
.text:080740C0 loc_80740C0:
4 ? t) ?9 a/ [5 h.text:080740C0 mov eax, 0FFFFFFFFh 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ M* G$ o# {' y7 P0 j4 v1 s3 D
.text:080740C5 jmp short locret_80740BE
8 B+ h8 _8 b1 D/ f魔力私服,最新魔力宝贝私服技术交流
: u2 {/ C7 l! Y方便起见这里直接把我改好的代码贴出来,与原来不同的地方: 6 [: e1 \# h8 v, U, n/ N8 e
Cmp edx,0FFh
' R: x/ w4 U2 J# Rbbs.mocwww.comJg shortloc_8074C0 妖城在线论坛6 T( y0 x8 l# ]5 g
判断等级是否大于255是的话跳转80740C0
6 O* S1 c# a3 R1 ^/ @. [—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート否的话进入我们的等级公式: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% v$ B6 Q: T5 Z4 K- O
(等级*等级*等级除以50)*等级
& w. O* \ D, v) G1 o6 r3 F也就是等级三次方除以50再乘以等级 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! B# H5 Z6 O9 K
为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。 + `5 n2 P7 ~0 W* ~$ a5 \( o
216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 r/ W0 `, D" V9 y
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。 bbs.mocwww.com: i. D5 E N2 T$ k6 A
' J& N8 v0 f5 g" ?/ E2 f* j- tbbs.mocwww.com接下去做公式:
$ h l6 D- M' @1 a6 C* u; C1 P: w魔力私服,最新魔力宝贝私服技术交流Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验
! M% o9 u+ C! _魔力私服,最新魔力宝贝私服技术交流Mov eax,edx 将下一等级的值赋值给eax
: M0 E) G/ N! F7 fbbs.mocwww.comImul eax,edx 将eax,edx相乘,结果存到eax —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 w' |- n3 {$ t- ^1 z E q% L6 g& ~
Imul eax,edx 同上
8 j& o# c) }, W: a$ }魔力私服,最新魔力宝贝私服技术交流Cdq 这个做除法不加就会出错,用户登录后服务器当机 魔力私服,最新魔力宝贝私服技术交流- A! z/ z1 J& ^
Idiv ecx eax除以32h算到50倍经验
! f+ U `9 c) q% J: U2 _! B6 |+ H% gbbs.mocwww.comMov edx,[ebp+8] 从新获取下一等级的值
; G) }$ p; F. b) v( V8 A/ e6 W魔力私服,最新魔力宝贝私服技术交流Imul eax,edx 将eax,edx相乘,结果存到eax 妖城在线论坛7 B; }/ Q l* V/ t. X
妖城在线论坛 f. s6 ?' L9 J. V6 G( ~. A
好了,这样就完成了运算过程。
( o1 X4 g# n+ R7 r u1 ~魔力私服,最新魔力宝贝私服技术交流bbs.mocwww.com* \$ I# \3 T3 E$ [/ q
.text:080740C0 loc_80740C0: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 J8 \! ^5 |& O: J
mov eax, 0FFFFFFFFh
2 `5 d1 d7 ~% H/ j0 Z) G3 F妖城在线论坛jmp short locret_80740BE 妖城在线论坛0 P) N+ t B4 @
这一段代码就是等级超过你设置的上限之后返回-1。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 X. i5 l1 k! z1 M! D- k
妖城在线论坛9 c+ V! P) ~; \7 Z! {
bbs.mocwww.com8 s# y: @5 T6 s) t; J( H4 X0 a
下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
0 v( J- Z: `, @妖城在线论坛这里就要用到FlexHex了。 妖城在线论坛6 W, S% ~' g4 G# U- X* c
5 t) S5 m: Y% ]8 h7 ^% k1 F+ o, W魔力私服,最新魔力宝贝私服技术交流首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 P, {' M# r8 R; w- U' C, X: r
如下对应:
' g3 v/ k9 d. o* v魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Cmp edx,0ffh 81 FA FF 00 00 00 5 ]( u* U+ F7 j/ @& v# e3 F* }$ Y P
jg short loc_80740C0 71 FA
' b5 B, f) s5 q6 v. j/ Omov ecx, 32h B9 32 00 00 00
1 X2 K% C1 S! Y& k8 J, l; @; a妖城在线论坛魔力私服,最新魔力宝贝私服技术交流+ o+ L Y# B+ e# @$ M
依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。
/ a- W4 `% c }) C4 A& v妖城在线论坛这个挺有乐趣可以自己慢慢享受摸索。
1 l* x) k% V0 B; [# _—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' C& A. m0 i D% p/ M
以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。