没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: }# c- v. O* u9 z7 p) T$ n: v+ Y
使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。 # y( c q6 V, a+ P4 N
bbs.mocwww.com8 {9 S0 C1 c$ ^: B* C/ l
用IDA载入gmsv,分析完成后进入Exports选项卡。 妖城在线论坛) c- N, k+ R# C" d" ~* @6 B" W) T
搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。
" ]' `7 \6 O. ^5 E0 Z7 I魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 public CHAR_GetLevelExp 魔力私服,最新魔力宝贝私服技术交流) E$ U( Q( J+ N s
.text:08074098 CHAR_GetLevelExp:
, P; x1 B0 v5 g, Y.text:08074098 push ebp
# E0 {7 g( f2 J2 C魔力私服,最新魔力宝贝私服技术交流.text:08074099 mov ebp, esp
% F2 a" v. g" X; J/ D9 X1 m& Lbbs.mocwww.com.text:0807409B mov edx, [ebp+8] 魔力私服,最新魔力宝贝私服技术交流. Z/ P& N- ]# V9 E
.text:0807409E cmp edx, 7Eh
% ?# P* |- Z" h6 @2 R妖城在线论坛.text:080740A1 jbe short loc_80740C0
( F/ }) D- |0 x3 g" b—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A3 push ecx
+ m( }& h+ d7 [( i0 Y- H5 u( `魔力私服,最新魔力宝贝私服技术交流.text:080740A4 mov ecx, 7
' \8 S4 f: R# I妖城在线论坛.text:080740A9 push edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* g5 R% g, n7 N* j' m8 W* @
.text:080740AA mov eax, edx
3 e% V2 }) a+ L妖城在线论坛.text:080740AC imul eax, edx
" a" X5 y9 \ O9 k1 E2 Q" e/ Z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AF imul eax, edx
J q: X z. p( N+ N. ^ Q.text:080740B2 imul eax, ecx bbs.mocwww.com* w" k T, h: n4 B
.text:080740B6 loc_80740B6: 8 m; M0 u, b- p
.text:080740BE leave
6 v3 g8 A: T6 S( d+ G2 J- Z1 v妖城在线论坛.text:080740BF retn bbs.mocwww.com; c4 i# h% U; O, i
.text:080740C0 loc_80740C0:
2 Y7 Q8 H9 ~+ d5 z% E1 ]1 R( Q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] ; O8 G$ n/ l& f0 y; p
.text:080740C7 jmp short loc_80740B6
3 r: o4 W" Y3 X6 Fbbs.mocwww.com
1 C; i3 [0 A8 D; g—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート粗糙的解释下这段代码的意思 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% p# ]! F4 X0 e
妖城在线论坛& m, H; O7 Z6 q4 ~, b7 E/ ]
Push edp
# Q. u f! [! `7 b8 @- hbbs.mocwww.comMov ebp,esp bbs.mocwww.com- V3 a( h F$ k; v9 Y
Mov edx,[ebp+8] bbs.mocwww.com3 R8 @) H$ D5 [0 G
获取当前等级的下一级存到edx $ b5 h7 w# s% L3 k5 y- A4 q. y, [& E
* ?5 ~3 B$ }6 j1 q( I h, U: ?bbs.mocwww.comCmp edx,7eh 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 y1 Z7 `: X7 C- {
将edx与7eh也就是10进制数130比较 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- u( ^; t: U: F2 r; K; S6 L" B
妖城在线论坛7 W1 L5 `$ b7 o8 J' C. M3 J) _
Jbe shortloc_80740C0
$ z" E: H' @0 a" L妖城在线论坛如果edx小于7eh则进行跳转到80740C0
0 d* e& H. Y; j' B+ ]妖城在线论坛
! y/ t* { y+ I! ^魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Push ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' w0 Z. I' c( @9 J! |, b6 g% `3 [
Mov ecx,7
$ K; P* J: y! G/ N0 ~0 c+ ^1 \魔力私服,最新魔力宝贝私服技术交流给ecx赋值7 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! o( A, ^) Z' P) j9 g& L' ]9 Q
, T9 a+ E" b( |9 e! kPush edx
, f7 B5 i. s. ~! z% u; Gbbs.mocwww.comMov eax,edx
3 A, h/ {, s' m5 {魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表把当前等级+1的值给eax
* ]7 v( ^. t$ `! p! H—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート5 i5 {, ^0 [3 L! q! x+ S; j
Imul eax,edx
0 w, Y8 D) b9 u4 U( M5 ]/ f1 ]8 S—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート把eax与edx相乘,结果存在eax 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" b* x1 U4 q% V1 P* }, k
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 s4 z& x/ E8 _) `# V
Imul eax,ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 \& a z" h- ^3 b
把eax与ecx相乘,结果存在eax
* E- K# t8 s: }2 l; ~# Q" I—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
( \" n5 S; h# w3 | Q2 f8 {8 @6 ]$ }—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートLeave + k. b5 q2 V, c+ x
Retn
+ m' s* d g& x5 S- X魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表退出这个过程吧,大概
5 V, [3 f+ o2 Z4 A' ~* O8 r, s/ g- x妖城在线论坛bbs.mocwww.com2 h. u+ j, T" w# |# m1 h
Mov eax,dwordptrLevelUPtbl[edx*4]
, w% e, [) |+ ^8 w) o7 W妖城在线论坛这里是读取经验表的内容给eax,也就是查表读经验
$ r5 ~% [# v- f+ _0 ~) {bbs.mocwww.com
8 K u) N: u/ V5 O; Z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表jmp short loc_80740B6 & I4 m. T _! m: ~
强制跳转到80740B6 魔力私服,最新魔力宝贝私服技术交流! H/ m7 u$ j, z: Z: c
魔力私服,最新魔力宝贝私服技术交流' |) j2 h( F; `$ y
好了,这段代码就这点意思,逻辑上不难理解。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: `! W$ L9 {& t6 K; C7 Y/ `3 T
虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# j' j; P* x& ?$ V/ A
妖城在线论坛. b; Z. G/ q2 E6 J% i
分析完了之后开始修改了,上面的代码具体作用如下: bbs.mocwww.com, e% [9 }% ^2 y& B% |' q* _0 w9 K# U
判断等级下一级是否小于7eh,是则跳转到查表。
4 f+ c/ l( V' W( C8 T, }3 W( a魔力私服,最新魔力宝贝私服技术交流否的话也就是大于7eh时,按照下面算法运算
1 d; [) E* |. m9 S6 \.text:080740A3 push ecx : c t+ ?4 N4 u( R7 B! _5 u0 m
.text:080740A4 mov ecx, 7
& T4 g+ `: A0 `( N6 O5 T, N$ f9 A魔力私服,最新魔力宝贝私服技术交流.text:080740A9 push edx 妖城在线论坛6 l2 ?- e( U4 Z9 i
.text:080740AA mov eax, edx
; R8 w1 I1 d) X% ~# U魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AC imul eax, edx
, x; z9 d2 q0 d5 N/ }; |3 K9 A8 F3 p.text:080740AF imul eax, edx
# N z3 |* s) _# x& H! [妖城在线论坛.text:080740B2 imul eax, ecx
- y- x: B% [6 K- m* S也就是eax的三次方乘以ecx,这里可以改成我想要的。 妖城在线论坛0 [" ?5 Z! X% t* L
8 T; R$ G) {; W2 M+ P1 Q4 S8 w妖城在线论坛我的目标是改称等级的四次方除以50,但是问题来了。
0 B# f1 A& ^& B4 ^2 t% c魔力私服,最新魔力宝贝私服技术交流怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。 魔力私服,最新魔力宝贝私服技术交流5 ?% {- Q, l( }' f: u0 y( d
6 W) D# U$ A$ v.text:08074098 public CHAR_GetLevelExp 魔力私服,最新魔力宝贝私服技术交流! j. u' B5 w9 k v
.text:08074098 CHAR_GetLevelExp:
4 U+ }) E8 d5 ~—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098
/ r' l6 s$ k: I' l9 c—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 push ebp
# B ~9 K" F$ E$ m# @/ p: _6 w.text:08074099 mov ebp, esp 妖城在线论坛+ a: U3 s" ^9 J! ~2 a- N2 w
.text:0807409B mov edx, [ebp+8]
' L9 W/ X, H' r/ ]( s) {% j- ^bbs.mocwww.com.text:0807409E cmp edx, 0FFh
: K. s6 V& m: `9 F* v2 j魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A4 jg short loc_80740C0
( u0 D# {$ B2 x, I) dbbs.mocwww.com.text:080740A6 push ecx
+ Z1 M9 K/ \2 \' F—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A7 mov ecx, 32h 魔力私服,最新魔力宝贝私服技术交流: C) H: n d/ N5 o5 p
.text:080740AC push edx 妖城在线论坛4 z' G0 T4 D& L- Y) \' V/ e: |
.text:080740AD mov eax, edx 魔力私服,最新魔力宝贝私服技术交流/ ]2 w/ g* H) w/ B
.text:080740AF imul eax, edx
: `5 R, B( H- n! ], Q7 C: G—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B2 imul eax, edx 妖城在线论坛" A' q. ?! }% y8 O6 _* E& E
.text:080740B5 cdq
F/ v: o7 q% X( p妖城在线论坛.text:080740B6 idiv ecx
0 M8 @( c9 s1 D, l4 x' X5 g5 U—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B8 mov edx, [ebp+8] 妖城在线论坛+ h" L4 t+ @4 E2 P9 P; {
.text:080740BB imul eax, edx 魔力私服,最新魔力宝贝私服技术交流) K. t+ g, ?2 X P
.text:080740BE
; a' S4 G1 d) W$ {9 ^; t% M6 z.text:080740BE locret_80740BE: 妖城在线论坛4 F9 M9 h' ]) D
.text:080740BE leave
5 _8 A9 @: `( ~* R9 U; V/ |bbs.mocwww.com.text:080740BF retn
# c+ Z' \5 ]9 `% T7 o) h% L魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C0 loc_80740C0:
8 R* j$ d2 R& R: i& k1 H.text:080740C0 mov eax, 0FFFFFFFFh
2 p5 a0 \; g" s: p# G; E—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C5 jmp short locret_80740BE
) B5 c* e/ ~: l7 k' Z! k& z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力宝贝私服技术交流& \; a+ u9 s* B& h& m$ m+ H
方便起见这里直接把我改好的代码贴出来,与原来不同的地方: 妖城在线论坛; F2 w+ K- \- o3 v, O+ s1 ?! e' L
Cmp edx,0FFh
8 D" h2 F! n& b—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートJg shortloc_8074C0 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 _' s% W- P# G2 ?3 M+ c
判断等级是否大于255是的话跳转80740C0
9 {" X1 ^' S: Z1 ^2 R否的话进入我们的等级公式: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 c* _/ W1 W5 Q/ y. {# a: w$ F
(等级*等级*等级除以50)*等级 魔力私服,最新魔力宝贝私服技术交流7 G; H [0 G9 F x& `, L
也就是等级三次方除以50再乘以等级 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 S' {3 k7 n+ c- c5 A9 Q
为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。
1 T, v* k. T9 P# ^妖城在线论坛216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 ! _. [ g! R7 D1 ]2 _+ c
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
: ^2 B/ B2 o7 m0 Ebbs.mocwww.com m1 p* G" \+ p8 d. [; u8 ?# h
接下去做公式: 魔力私服,最新魔力宝贝私服技术交流" G9 {- I4 |( I) d1 r$ W$ i( U7 y
Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验
% L; ]4 U: T& i' D0 w& ~魔力私服,最新魔力宝贝私服技术交流Mov eax,edx 将下一等级的值赋值给eax
2 {$ g) ^ A$ [+ h4 Z2 s魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Imul eax,edx 将eax,edx相乘,结果存到eax 9 \3 I5 X( ?4 E* j; v6 s/ h) |
Imul eax,edx 同上
$ n; C0 a! w( {% y5 s, ?8 g. gCdq 这个做除法不加就会出错,用户登录后服务器当机
& V6 ~, W5 s4 s- |0 ]& y, a—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートIdiv ecx eax除以32h算到50倍经验 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 ]# Q- ~7 c5 h" e; _
Mov edx,[ebp+8] 从新获取下一等级的值
! j$ k+ r$ O6 O/ R* aImul eax,edx 将eax,edx相乘,结果存到eax
' O% o# a- R* z/ ~( N% W5 c
+ D, t, A7 c: S! x0 Q, t9 p妖城在线论坛好了,这样就完成了运算过程。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( ~+ ?6 b7 T. ^& @% F
: x3 r7 m7 C# P2 Y/ b: P妖城在线论坛.text:080740C0 loc_80740C0: bbs.mocwww.com( g/ h$ P5 @ Q" q7 v8 z" X) Q
mov eax, 0FFFFFFFFh
' X; U$ e# R9 O g& @# L8 ljmp short locret_80740BE 魔力私服,最新魔力宝贝私服技术交流7 U5 [0 `: M- g
这一段代码就是等级超过你设置的上限之后返回-1。 ' U, D' t( P& A8 u1 m, r1 c. t& \- Z
) x: Q5 ]: ^3 ?# J2 q! ]—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
3 z7 O- K- a! V$ x0 c) l/ X9 }* X8 k5 H妖城在线论坛下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) }: X7 o$ s4 n8 C) L
这里就要用到FlexHex了。
: J" r5 V; Q8 D1 Rbbs.mocwww.com魔力私服,最新魔力宝贝私服技术交流/ p& ?3 s L" L6 |- |0 O* ^
首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
$ c; p- [" u0 V( T4 [( S% ^5 \妖城在线论坛如下对应:
$ Z4 ]- Y7 G) p+ S: d6 Z7 \4 ]& zCmp edx,0ffh 81 FA FF 00 00 00 妖城在线论坛! C5 D. ]0 Z$ n! c q+ n
jg short loc_80740C0 71 FA
. r, |. r3 I1 L2 T! I+ D, c- y4 dmov ecx, 32h B9 32 00 00 00
! n4 ?9 L% a4 N魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表妖城在线论坛* y# L; K2 |- V9 {& q! U" X1 E
依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 , w9 O" C! Y" W8 b( r
这个挺有乐趣可以自己慢慢享受摸索。 6 O$ l% W2 h' Y! y
2 S% ?; n' Z& C' ]2 q魔力私服,最新魔力宝贝私服技术交流以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。