没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。 6 i* h; U$ Q+ ~# `2 w e, L
使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。
) l/ g7 `& x& v3 x魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
& U. |: Q& x0 `/ i! |" F3 q' E魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表用IDA载入gmsv,分析完成后进入Exports选项卡。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 o3 S9 Q( b0 w3 N! o" l6 w. C
搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 妖城在线论坛! M& P+ i7 K: P8 ^3 Y
.text:08074098 public CHAR_GetLevelExp bbs.mocwww.com! x# W- E" C# g( x1 d
.text:08074098 CHAR_GetLevelExp:
7 N+ m) o [) p) R3 u9 \& ^% T.text:08074098 push ebp
/ c3 T2 ?5 [% x/ T魔力私服,最新魔力宝贝私服技术交流.text:08074099 mov ebp, esp
2 H0 X' V4 Q$ A3 B ^) I—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:0807409B mov edx, [ebp+8]
* S6 g7 y1 @9 ^* q3 r) k8 u妖城在线论坛.text:0807409E cmp edx, 7Eh
6 R: U4 T9 F/ C0 m魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A1 jbe short loc_80740C0 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, q( ^! F F" F6 d% P
.text:080740A3 push ecx 9 A% D* h2 w) Z6 R
.text:080740A4 mov ecx, 7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ q5 b x2 T4 ^ F( K3 P7 Y- @
.text:080740A9 push edx bbs.mocwww.com9 m- b, X* X7 ?: t0 r
.text:080740AA mov eax, edx 魔力私服,最新魔力宝贝私服技术交流! {4 a3 P: z' \. n
.text:080740AC imul eax, edx bbs.mocwww.com# Y. w u/ T* H
.text:080740AF imul eax, edx
9 I+ ^$ D7 D: v* N) j$ S2 [bbs.mocwww.com.text:080740B2 imul eax, ecx 妖城在线论坛" }1 @0 H- e1 G6 J$ W
.text:080740B6 loc_80740B6: 魔力私服,最新魔力宝贝私服技术交流& W6 N+ a. L2 E
.text:080740BE leave 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( f; b0 U( |4 B8 M7 u1 o% y. l% c
.text:080740BF retn 妖城在线论坛- m% [/ u' `+ ?. K+ U
.text:080740C0 loc_80740C0: , D8 x4 q" I$ S/ R6 |
.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] ' o5 l9 C9 l: C- l* ^9 k+ h
.text:080740C7 jmp short loc_80740B6
1 Z" m4 M3 S: q7 T魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
8 Q9 N' X$ Q+ c+ f妖城在线论坛粗糙的解释下这段代码的意思
$ O) X$ h9 a: A9 z' `—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
9 i6 ^( `( w% G1 k8 O—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートPush edp
9 T( B- u0 ]7 u! n7 J, t/ \' J! M7 M妖城在线论坛Mov ebp,esp
% ~" d/ I8 Y4 w, v" v4 ^—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov edx,[ebp+8] 妖城在线论坛 k$ c/ M$ O v5 {; o
获取当前等级的下一级存到edx 妖城在线论坛# B( t7 z B. n$ C
$ y W) ]4 |% n1 o& I. D- H hbbs.mocwww.comCmp edx,7eh 妖城在线论坛+ e; S( N% g% E/ @1 F
将edx与7eh也就是10进制数130比较 * h; D! k8 i% b. d5 U! D. j8 F
bbs.mocwww.com$ b9 f3 u9 S* k# a+ {+ I5 y
Jbe shortloc_80740C0 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# t+ m. n) k$ Y
如果edx小于7eh则进行跳转到80740C0 魔力私服,最新魔力宝贝私服技术交流# P! C/ @% p3 A: b5 ~) \7 o k% {
. T4 ^$ C# F G, ]. O# I魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Push ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, ~7 a D! F) Y9 Y2 k
Mov ecx,7 & a& [( e% U" `+ Q, B: S8 S4 O
给ecx赋值7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' b! X* M. m% v% G
" x, M. C( |" |2 z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートPush edx
% Y% V1 B" M; K; C1 ` TMov eax,edx 妖城在线论坛 i* S: r# Z; U1 B0 |$ K
把当前等级+1的值给eax bbs.mocwww.com+ L0 v v8 t8 p% ~- U( s) J
魔力私服,最新魔力宝贝私服技术交流! y. \: Y7 t0 L" W$ x7 n9 b
Imul eax,edx
3 \+ C$ Z5 O8 Vbbs.mocwww.com把eax与edx相乘,结果存在eax
4 o6 O9 V4 }* D; j" q# M. F魔力私服,最新魔力宝贝私服技术交流
5 R& _5 Z2 t$ m6 V' g- U/ m+ F—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートImul eax,ecx
4 D3 \7 ~/ N0 X o魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表把eax与ecx相乘,结果存在eax
1 j5 D5 B5 z9 O& ^' h' y/ {魔力私服,最新魔力宝贝私服技术交流—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 Q7 Z6 _& j' c4 z# d$ V
Leave bbs.mocwww.com0 n) [7 f6 p1 D
Retn , p6 I5 k8 N: w( m: Y6 y5 B
退出这个过程吧,大概
4 F0 t% `. U' Q) b1 `6 ]魔力私服,最新魔力宝贝私服技术交流. Z8 ^" k4 c/ ]. ?2 M
Mov eax,dwordptrLevelUPtbl[edx*4]
) z0 X: Z' [+ p! l9 c0 g—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这里是读取经验表的内容给eax,也就是查表读经验
. M: E3 L. B3 K8 Y( f6 `妖城在线论坛
; w! B7 d2 c6 m妖城在线论坛jmp short loc_80740B6
- p* h( ~: r$ s& _5 A! h5 F妖城在线论坛强制跳转到80740B6 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! G: q. _* `6 c3 G0 T' i' x
9 [1 m/ e6 [4 ]好了,这段代码就这点意思,逻辑上不难理解。
6 R/ l: X6 Z! f7 t* |魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。 bbs.mocwww.com+ l/ s8 C, W: x' J+ w# J0 j" D, O
妖城在线论坛6 |3 U* U* [8 U" {
分析完了之后开始修改了,上面的代码具体作用如下:
9 U! L: ^7 f3 L% c) B4 J7 r0 u ^! z' D妖城在线论坛判断等级下一级是否小于7eh,是则跳转到查表。 0 v% a- B x5 Y4 f9 `9 o% D. G
否的话也就是大于7eh时,按照下面算法运算
* k0 b& @. C; }4 e. D7 q9 \妖城在线论坛.text:080740A3 push ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ q/ x+ Z8 T& v* q0 w F W/ T* Z
.text:080740A4 mov ecx, 7
! m3 U: W# K/ A& u( S$ }魔力私服,最新魔力宝贝私服技术交流.text:080740A9 push edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. J/ V" I4 z6 P4 _! \& V
.text:080740AA mov eax, edx 魔力私服,最新魔力宝贝私服技术交流3 \6 ~% T- F! \2 q6 p! V" B" d; u
.text:080740AC imul eax, edx
1 W# M- I& x. s: S/ zbbs.mocwww.com.text:080740AF imul eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 X: G2 Q' h C! E6 j
.text:080740B2 imul eax, ecx
' J* S) J0 C/ O: S魔力私服,最新魔力宝贝私服技术交流也就是eax的三次方乘以ecx,这里可以改成我想要的。
7 g! S: z* s2 m5 I* Bbbs.mocwww.com
9 a4 G$ U- z1 f) s, rbbs.mocwww.com我的目标是改称等级的四次方除以50,但是问题来了。
: Z) x( S- O Y1 T* N5 S4 b0 N3 }$ [—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。
) F; I; a, E$ z1 ^* J7 h—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
* s a: h5 E7 \ |8 h2 _9 @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 public CHAR_GetLevelExp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; M% V, @/ e; x7 i
.text:08074098 CHAR_GetLevelExp:
* a9 J7 i1 U" t1 i) k; a& @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098
0 t6 R, s& X- d: h5 h# h魔力私服,最新魔力宝贝私服技术交流.text:08074098 push ebp 6 e+ E& a) W# F/ ^4 i2 X
.text:08074099 mov ebp, esp
0 p. l* K7 [5 N/ [.text:0807409B mov edx, [ebp+8]
, A. d& J, F3 h4 ^0 b魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:0807409E cmp edx, 0FFh
/ R# P. w# X& v6 e) _& vbbs.mocwww.com.text:080740A4 jg short loc_80740C0 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 S0 F) m; o9 E" ^$ e
.text:080740A6 push ecx bbs.mocwww.com: X# ]) T- D8 x
.text:080740A7 mov ecx, 32h 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! Q" l) a9 ]2 N/ l+ [6 G
.text:080740AC push edx
3 U4 L' z0 `# C9 P4 o7 C$ {. f.text:080740AD mov eax, edx
% j/ A6 _) F7 l魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AF imul eax, edx ( G7 e5 J) {' g+ x' d6 m V4 d
.text:080740B2 imul eax, edx
% s) p! H% L9 P2 t6 x, l1 o—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B5 cdq 妖城在线论坛! M3 o9 m3 j3 Y9 Y
.text:080740B6 idiv ecx 7 Q& `! N1 ^' R
.text:080740B8 mov edx, [ebp+8] bbs.mocwww.com+ p4 Q, r/ {; r: A# X( C5 A& y" L
.text:080740BB imul eax, edx
, {3 @6 g( W# _+ u- L& h魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BE
3 b. o5 w2 C( P8 W* I! s—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BE locret_80740BE:
& z" D! V6 _3 N( R, \bbs.mocwww.com.text:080740BE leave bbs.mocwww.com/ c3 E; f0 p, o* S; |
.text:080740BF retn
1 [* L8 a5 H* S! `+ u/ Q- V妖城在线论坛.text:080740C0 loc_80740C0: bbs.mocwww.com' ?* N% M4 L# s
.text:080740C0 mov eax, 0FFFFFFFFh
|8 `0 F" e, l+ W$ N# Q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C5 jmp short locret_80740BE
* j6 n4 }! ^& i( h/ Kbbs.mocwww.com
. b& T. u. o3 j/ l) wbbs.mocwww.com方便起见这里直接把我改好的代码贴出来,与原来不同的地方: bbs.mocwww.com) G5 @6 N3 x( k. x
Cmp edx,0FFh
2 b. Z* j. N* G) Z" {4 ^0 TJg shortloc_8074C0
- K; n3 G# T( i; X' f" \* `" @判断等级是否大于255是的话跳转80740C0
# N) g# b9 G$ ?! p l( O# w' U- F魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表否的话进入我们的等级公式:
1 m# _4 c! ]' T- i. Y魔力私服,最新魔力宝贝私服技术交流(等级*等级*等级除以50)*等级
& d- D% ~/ Y: r. F& [) e魔力私服,最新魔力宝贝私服技术交流也就是等级三次方除以50再乘以等级 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( p8 E) R0 U3 F* Y4 r* [3 f
为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 g( G. K3 r" F4 T
216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。
! [9 ]6 s" M, e$ q7 q- r! m/ J3 M—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
! v! F& q9 \3 X2 V1 R妖城在线论坛魔力私服,最新魔力宝贝私服技术交流. b# ~8 \1 @. o9 l% w
接下去做公式: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 h, F& v9 {: [0 K
Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验
/ {1 X# t6 M$ P3 u# x* ybbs.mocwww.comMov eax,edx 将下一等级的值赋值给eax
8 K' w f& k2 ? h+ Mbbs.mocwww.comImul eax,edx 将eax,edx相乘,结果存到eax 0 U7 j6 M8 S/ L' p
Imul eax,edx 同上
( ?7 f2 d ~- P3 ~+ T0 _4 p `, D( JCdq 这个做除法不加就会出错,用户登录后服务器当机 魔力私服,最新魔力宝贝私服技术交流& c* f7 D/ R1 A7 z9 @0 Q
Idiv ecx eax除以32h算到50倍经验 bbs.mocwww.com6 j+ b3 m: t( L, [6 S
Mov edx,[ebp+8] 从新获取下一等级的值 / i) | a' h, Z% t8 \; J5 X
Imul eax,edx 将eax,edx相乘,结果存到eax
: { H: `2 }& J7 m魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表妖城在线论坛 V/ W2 l6 _! q4 S9 S9 a
好了,这样就完成了运算过程。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& {: J$ s+ V1 x
妖城在线论坛/ ?0 e( i6 _) o/ j# `/ T5 G
.text:080740C0 loc_80740C0: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) d' A; q' }; J! w0 A( j
mov eax, 0FFFFFFFFh —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* b" d# l8 V! f# L
jmp short locret_80740BE
+ V. R- h. F- ?: Z% @4 l8 c( Y9 u这一段代码就是等级超过你设置的上限之后返回-1。 bbs.mocwww.com9 V3 M6 \: N' m/ t$ x
bbs.mocwww.com; s0 k- I" Y* C; T
4 ^3 j" y; E9 L4 \—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. I+ a$ @* N+ p& r" A j
这里就要用到FlexHex了。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 q: @( u! ~1 u5 V9 U
$ n% S8 ?; W7 M/ B—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
2 u+ C" O7 O N1 }0 r: j4 E4 u: C如下对应: * `+ N' h* `4 }+ v5 {% Q U+ y
Cmp edx,0ffh 81 FA FF 00 00 00 bbs.mocwww.com. Y6 I p' g& ^7 T& ?
jg short loc_80740C0 71 FA # e8 o' q0 |5 k* G5 {' E* r
mov ecx, 32h B9 32 00 00 00 魔力私服,最新魔力宝贝私服技术交流) |4 K& P/ b( Y, b% R
, y( j+ r( d/ ^8 w& I0 e依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 魔力私服,最新魔力宝贝私服技术交流' P9 `$ u* _ |+ {0 |7 u
这个挺有乐趣可以自己慢慢享受摸索。 妖城在线论坛' @. H4 i, [9 e8 E. e& [. ^7 ]
& F z9 i e8 D6 [魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。