没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. L" a- A7 x, H6 q4 U) c4 `5 a) H
使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。
2 s, ?- n' A5 _ c—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート魔力私服,最新魔力宝贝私服技术交流# o0 k5 g5 N. b% E" w7 ?0 `
用IDA载入gmsv,分析完成后进入Exports选项卡。
+ t* E. v( ~. g1 ^魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 bbs.mocwww.com" r9 u9 _( m+ p9 i# s& k
.text:08074098 public CHAR_GetLevelExp
- {% y5 Y8 z& S! j' ~妖城在线论坛.text:08074098 CHAR_GetLevelExp:
4 z8 p& {8 B% ]; U妖城在线论坛.text:08074098 push ebp " V9 U5 l2 E) L, `1 t Q# u& I( {
.text:08074099 mov ebp, esp # j1 t' F8 P3 N0 b( R# Y
.text:0807409B mov edx, [ebp+8]
% g/ }% q$ f; V0 P' j—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:0807409E cmp edx, 7Eh 魔力私服,最新魔力宝贝私服技术交流% e/ V" `, {* J, V: ~
.text:080740A1 jbe short loc_80740C0 bbs.mocwww.com7 D) a- j' e! C
.text:080740A3 push ecx
6 R/ s" o* d2 G3 z7 p8 _.text:080740A4 mov ecx, 7 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 d/ J2 A1 L. L( X, s
.text:080740A9 push edx
: ?1 c! }$ ^; @4 X# ?* {$ m! p魔力私服,最新魔力宝贝私服技术交流.text:080740AA mov eax, edx & i F% c& |3 |
.text:080740AC imul eax, edx
' L5 d7 l& v5 W1 }! z+ T, xbbs.mocwww.com.text:080740AF imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& x4 g# C' _+ I1 \$ l! c( `( H
.text:080740B2 imul eax, ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 f8 i2 K( t# R4 l6 Q0 _9 N
.text:080740B6 loc_80740B6: 魔力私服,最新魔力宝贝私服技术交流2 f- @0 f) h% C8 h# }$ k# C
.text:080740BE leave
4 E3 B# b& W8 U魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BF retn
* ^# ?: c5 i$ f! {魔力私服,最新魔力宝贝私服技术交流.text:080740C0 loc_80740C0: 魔力私服,最新魔力宝贝私服技术交流8 H* u. [/ l6 W$ y
.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] " [7 a% |5 f+ a% F0 I* g
.text:080740C7 jmp short loc_80740B6 bbs.mocwww.com& i- S- q) S6 \+ Q# g! F, I
" L2 b, C. R6 x4 ^8 e3 c0 @+ p—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート粗糙的解释下这段代码的意思 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: n6 e( G: S$ b9 q: {2 U
" ]( P7 m6 W, i# ^2 {—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートPush edp bbs.mocwww.com8 ^. b" ?* \! m7 V2 o6 T) ]; C
Mov ebp,esp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" s1 c0 W- d* D0 F% Z# A' n
Mov edx,[ebp+8] . J" w# a( e6 q& E' |
获取当前等级的下一级存到edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( z; M2 b+ N# q. M
魔力私服,最新魔力宝贝私服技术交流) O+ f" n& X7 b# F
Cmp edx,7eh
5 p5 q, c* j" V+ ]5 B魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表将edx与7eh也就是10进制数130比较 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 _4 E6 d' X C: [) |5 g2 K1 ^
& f) n5 R3 Z, a7 g" r' P; lJbe shortloc_80740C0 魔力私服,最新魔力宝贝私服技术交流! S5 a* E6 w: V4 j
如果edx小于7eh则进行跳转到80740C0
6 z2 T! P. z1 j. l8 u魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力宝贝私服技术交流. u1 ?9 v5 O* W. @! b
Push ecx bbs.mocwww.com* i& }; R- K3 o% Y5 ?% t/ K9 O3 O8 c
Mov ecx,7 魔力私服,最新魔力宝贝私服技术交流- I2 o' y& d" S9 m0 E
给ecx赋值7
% Z* q A& n+ @- {2 m魔力私服,最新魔力宝贝私服技术交流妖城在线论坛8 \$ p* M% o0 a8 Z, Z: D" k e
Push edx 魔力私服,最新魔力宝贝私服技术交流* b# h* u8 G3 J" P
Mov eax,edx
- a' Q; w5 O" P. D魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表把当前等级+1的值给eax bbs.mocwww.com" q) I/ I; @- ]4 \# y0 m3 R
) D, l5 \! |0 _3 _bbs.mocwww.comImul eax,edx
7 }/ ~/ V7 |. H0 H0 ^8 N. fbbs.mocwww.com把eax与edx相乘,结果存在eax —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 K. }" d1 C) L# O( B
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 q8 h) t5 H6 }9 l! v9 d; I/ k* i
Imul eax,ecx & h/ X( d7 {# A. v( b+ L
把eax与ecx相乘,结果存在eax
3 ]( }+ C: }9 }. ~魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート y$ ^( w, }' p& i) m( g
Leave
& O+ r2 ]; a' ^% sRetn
0 z" \0 O/ A7 E8 c魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表退出这个过程吧,大概
5 [5 g3 C% w- S# @: B% Hbbs.mocwww.com
9 x; Q. y) z7 u( H" \% I魔力私服,最新魔力宝贝私服技术交流Mov eax,dwordptrLevelUPtbl[edx*4] 妖城在线论坛8 m( t& g1 @; N/ t, y& s
这里是读取经验表的内容给eax,也就是查表读经验 魔力私服,最新魔力宝贝私服技术交流5 {4 x; q1 I2 r6 q E
6 U# N: k8 }0 C& ~- _魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表jmp short loc_80740B6
6 J( c5 A' N2 v1 H' A魔力私服,最新魔力宝贝私服技术交流强制跳转到80740B6
# k8 Y" d2 ?- r; y) |' T9 w妖城在线论坛bbs.mocwww.com' H# r4 K, ]' S! _% L% ~( Z& m; K9 C
好了,这段代码就这点意思,逻辑上不难理解。
+ L$ o1 I! [' q1 Z虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。 bbs.mocwww.com3 T& X# J0 `6 ]' x
% H, O" y% ]2 S: ~; M$ ]0 q3 O2 h& r魔力私服,最新魔力宝贝私服技术交流分析完了之后开始修改了,上面的代码具体作用如下:
~6 N0 h; V; Z- A魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表判断等级下一级是否小于7eh,是则跳转到查表。
6 K4 ~1 w: d: W0 U7 _8 |否的话也就是大于7eh时,按照下面算法运算 魔力私服,最新魔力宝贝私服技术交流- Q$ s2 B6 V; {/ a0 R) h
.text:080740A3 push ecx
H; B5 R* C3 S. G8 c$ {妖城在线论坛.text:080740A4 mov ecx, 7 妖城在线论坛5 |6 D7 W( b3 [2 d" d, o
.text:080740A9 push edx
+ v8 z4 O( b. ^# C魔力私服,最新魔力宝贝私服技术交流.text:080740AA mov eax, edx 魔力私服,最新魔力宝贝私服技术交流& I. E3 c$ B4 t& f+ \! J
.text:080740AC imul eax, edx
0 N1 R/ x/ I+ `4 j* a2 K" @bbs.mocwww.com.text:080740AF imul eax, edx # d7 D- |- Z, a- D% ?7 {' X4 Y- o
.text:080740B2 imul eax, ecx
+ V1 T, B7 C5 p5 k也就是eax的三次方乘以ecx,这里可以改成我想要的。 + w- W) A& x2 e. F8 U8 R
bbs.mocwww.com7 N7 Y$ V. w. r7 ?7 ]
我的目标是改称等级的四次方除以50,但是问题来了。
- l0 b% }2 _* \8 L" N& w9 N怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。
4 J V8 W0 b, t8 [7 L `9 |8 ^: rbbs.mocwww.combbs.mocwww.com0 r$ d u4 C, K# f
.text:08074098 public CHAR_GetLevelExp
# H9 Y$ @* Q0 d& }—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 CHAR_GetLevelExp: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" s4 O/ O1 p' O- L
.text:08074098
6 ?' `/ Y, v* ]bbs.mocwww.com.text:08074098 push ebp 妖城在线论坛2 @7 T' W4 f9 J$ h- S" o
.text:08074099 mov ebp, esp
9 h7 ^. A% o* F4 R魔力私服,最新魔力宝贝私服技术交流.text:0807409B mov edx, [ebp+8] 妖城在线论坛/ Z9 a3 Q+ }3 ]
.text:0807409E cmp edx, 0FFh
6 @; `& r: {1 n% T/ f( Z.text:080740A4 jg short loc_80740C0 魔力私服,最新魔力宝贝私服技术交流) ^! m" U! [7 K/ r
.text:080740A6 push ecx 妖城在线论坛( ^8 H" t' ]) u7 X: i8 l- u
.text:080740A7 mov ecx, 32h
% c8 M, R$ o7 J6 x$ d+ c1 ].text:080740AC push edx
! S7 [; a5 v3 L2 t5 H妖城在线论坛.text:080740AD mov eax, edx bbs.mocwww.com ~0 l! W$ ]+ m( j' a" X/ g Q
.text:080740AF imul eax, edx
% i% F1 N" \: G4 M# ?.text:080740B2 imul eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" i1 N' }: m' e& X* U
.text:080740B5 cdq
. r6 c( L, T% U% i e! k.text:080740B6 idiv ecx bbs.mocwww.com, c5 ?. k' T3 @% [. |
.text:080740B8 mov edx, [ebp+8]
/ l2 W( A# D: s& o) X- u; e7 s$ ]4 G魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BB imul eax, edx
& H* a; K( a& N- p' Q9 N: w P3 B.text:080740BE 妖城在线论坛( z; c) f7 `3 I+ q3 D' V
.text:080740BE locret_80740BE: 魔力私服,最新魔力宝贝私服技术交流5 N0 A7 i% Z. R, E
.text:080740BE leave $ X. W6 V7 \: K- g' V8 o$ x
.text:080740BF retn
5 g; L( C" |4 ], P5 R9 V, g% r妖城在线论坛.text:080740C0 loc_80740C0:
$ @2 g9 L8 U5 C0 c妖城在线论坛.text:080740C0 mov eax, 0FFFFFFFFh bbs.mocwww.com* X' t$ v" s5 B0 x' M, _+ q, g
.text:080740C5 jmp short locret_80740BE 魔力私服,最新魔力宝贝私服技术交流4 P; o F" [% ~
bbs.mocwww.com& z3 l3 m0 h3 B# B8 Z) T) [4 _# A
方便起见这里直接把我改好的代码贴出来,与原来不同的地方: 魔力私服,最新魔力宝贝私服技术交流4 e; i3 q4 v6 J! q
Cmp edx,0FFh —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& i0 r7 `+ X: l7 C: `) q
Jg shortloc_8074C0 魔力私服,最新魔力宝贝私服技术交流4 Q, ]: r: D8 i% O' z; r; D: \9 A8 y d
判断等级是否大于255是的话跳转80740C0 bbs.mocwww.com# d9 Z" Q; n( C |9 n3 K1 Z) X
否的话进入我们的等级公式:
& c L" j* b4 R9 P/ O/ z# X7 ~- |(等级*等级*等级除以50)*等级
$ m* {/ A0 a4 |7 w* mbbs.mocwww.com也就是等级三次方除以50再乘以等级
; M$ [' o4 v; x魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。 妖城在线论坛 w! g$ T9 } S9 h7 d; ]' D
216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. l9 |! g' ]& v: |. }; a0 K6 f! E
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
* O% s% g0 D4 a x: b( |魔力私服,最新魔力宝贝私服技术交流bbs.mocwww.com! B3 o% s1 Q+ }6 L% T
接下去做公式: 魔力私服,最新魔力宝贝私服技术交流6 M$ j& [& G8 Q3 t$ p1 z3 L
Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验 魔力私服,最新魔力宝贝私服技术交流% p! p) D3 V: h5 {* [/ N. _
Mov eax,edx 将下一等级的值赋值给eax
* P& @4 V* c/ E2 v( T/ P魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Imul eax,edx 将eax,edx相乘,结果存到eax
* I2 L B( }: I6 ]6 L( j ]bbs.mocwww.comImul eax,edx 同上
# D0 V5 ~0 Z+ Tbbs.mocwww.comCdq 这个做除法不加就会出错,用户登录后服务器当机 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 m: p% o8 H/ H4 l( I. O3 w8 Y0 ~
Idiv ecx eax除以32h算到50倍经验 妖城在线论坛# P( Q; V, R% d- v4 u
Mov edx,[ebp+8] 从新获取下一等级的值
9 I$ D- ]- u) r' p$ A e妖城在线论坛Imul eax,edx 将eax,edx相乘,结果存到eax
5 `+ q6 a5 q$ G1 A* m2 }—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* [+ B( q5 ?6 a' a
好了,这样就完成了运算过程。
( b7 u+ Y- D* s4 f魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
. ^: C9 x* x4 V- E+ Z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C0 loc_80740C0:
9 |+ i% A( P9 D/ y% U& b—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートmov eax, 0FFFFFFFFh - j) I& n, @0 R3 H1 `0 ^
jmp short locret_80740BE
2 [6 k6 f4 X- T9 c5 r: ]妖城在线论坛这一段代码就是等级超过你设置的上限之后返回-1。
3 k& g. `' X) Abbs.mocwww.com魔力私服,最新魔力宝贝私服技术交流; b( n" x7 E5 ~) \; o
bbs.mocwww.com2 X: u3 U- K( K
下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。 妖城在线论坛+ Q8 E" H. Z, K
这里就要用到FlexHex了。
& c, }" o# Y0 I8 G8 d2 q妖城在线论坛
5 a9 H& ` P# |4 B4 q% @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
) e" @5 W" Y* H, q1 s) L: v5 f妖城在线论坛如下对应:
3 k- }5 ]. M. W. T( {bbs.mocwww.comCmp edx,0ffh 81 FA FF 00 00 00 妖城在线论坛0 w- L) z2 {5 |9 H
jg short loc_80740C0 71 FA 魔力私服,最新魔力宝贝私服技术交流6 w5 i3 x3 g$ ? w6 p8 D. D
mov ecx, 32h B9 32 00 00 00 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート9 R0 k/ ^" b! t0 o/ w9 ?0 E
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ U. U0 p5 C4 r5 j0 p
依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# y5 t$ r/ R$ j5 ~
这个挺有乐趣可以自己慢慢享受摸索。
# d/ t6 o( W4 B- I—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
: X+ W% R- q% B* E6 z+ O1 f( V S$ kbbs.mocwww.com以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。