没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
9 c/ C$ K6 b( ~# ubbs.mocwww.com使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。 7 X" q5 _ I7 w
bbs.mocwww.com) k( m0 ~6 T9 o9 S6 }! M& Y
用IDA载入gmsv,分析完成后进入Exports选项卡。
$ R8 d& m% I, M' h' ]; ], ~—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。
! i0 h0 Y* R B( o+ \ X* ~—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 public CHAR_GetLevelExp
\. Y, b5 ^$ }1 ?4 p9 P7 S4 Q* ] I魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 CHAR_GetLevelExp: 魔力私服,最新魔力宝贝私服技术交流5 t0 C3 F6 W% G
.text:08074098 push ebp 5 R3 j3 r5 \) q$ ^
.text:08074099 mov ebp, esp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ ~' H, [& F. E) N" k, k
.text:0807409B mov edx, [ebp+8] / e% a+ g/ B! h$ `" X+ r2 S0 O+ n% ^* x
.text:0807409E cmp edx, 7Eh
3 P {" d5 {% v( F3 M.text:080740A1 jbe short loc_80740C0
5 P0 U% i. L( B.text:080740A3 push ecx
4 m7 S* q6 a, V+ |0 B# k: n0 {9 ~3 ]妖城在线论坛.text:080740A4 mov ecx, 7 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 `, f' p) c) F, p8 E3 c
.text:080740A9 push edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! y& N, a1 w5 b
.text:080740AA mov eax, edx 魔力私服,最新魔力宝贝私服技术交流( X7 \0 W! @- L: v/ B
.text:080740AC imul eax, edx
* h+ S" M& J- Z8 X4 X- ]2 E+ Qbbs.mocwww.com.text:080740AF imul eax, edx
8 I" _! }/ E4 h. M% [! O9 V& X% W$ y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B2 imul eax, ecx
8 g% M* E) k) F; S& d. W( wbbs.mocwww.com.text:080740B6 loc_80740B6:
/ H/ q3 q" a$ A$ [( I0 W妖城在线论坛.text:080740BE leave 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# Q$ T; J( I5 x: Q3 ~! z
.text:080740BF retn
2 {2 v/ u! [' ]7 Q8 d0 R; x/ b—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 loc_80740C0: 魔力私服,最新魔力宝贝私服技术交流 U' \+ C% d7 p2 h6 |
.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4]
' H$ B+ ~3 j1 R魔力私服,最新魔力宝贝私服技术交流.text:080740C7 jmp short loc_80740B6
1 s X# M: D9 E. y' H
6 \% u6 X& \0 E—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート粗糙的解释下这段代码的意思 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 {. G) I" D+ l# ]
魔力私服,最新魔力宝贝私服技术交流, l: s) \" C! Y! V- f0 h- m0 U. \
Push edp
5 [- @4 h1 a$ M3 P9 T8 e魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Mov ebp,esp
" G& D, e& U; ?. F9 q! v A* G1 s魔力私服,最新魔力宝贝私服技术交流Mov edx,[ebp+8]
! y K# E( s" \4 J h—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート获取当前等级的下一级存到edx / W. Y& g1 ]6 C7 ?0 e3 Q. r
! `, l+ W3 Q8 v }+ F' i! {—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートCmp edx,7eh
# m' x" [. N; g; ?! I7 r% Fbbs.mocwww.com将edx与7eh也就是10进制数130比较 魔力私服,最新魔力宝贝私服技术交流 q! X# Y6 {; g2 D; w2 Z( j
1 b. H* Y! F1 k妖城在线论坛Jbe shortloc_80740C0
* N5 S' J; [/ n* ?—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如果edx小于7eh则进行跳转到80740C0
5 C8 \8 Y$ B) d魔力私服,最新魔力宝贝私服技术交流妖城在线论坛0 n( {& Z: h9 Y$ n' }1 t
Push ecx
- z# N$ D% A3 w* Y( y妖城在线论坛Mov ecx,7
/ B" M- y! u" ^3 {- w给ecx赋值7
% p, x! |- F( ~) x( x妖城在线论坛
$ G* S! \2 K5 D% | b9 F2 t—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートPush edx 妖城在线论坛 b0 W+ z$ f' q& p8 K! o8 Z6 u
Mov eax,edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, d T- B3 M) |6 c+ k9 Y% D9 q" D
把当前等级+1的值给eax 妖城在线论坛' z# }# B8 {/ y
bbs.mocwww.com+ _* }! s- E- \, D4 D! G9 m
Imul eax,edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' B6 j" g& P4 \ F( r- l8 Q1 Y! s
把eax与edx相乘,结果存在eax 妖城在线论坛; i8 D0 w- |0 W; s$ m
bbs.mocwww.com9 @7 U! P$ {6 T% E
Imul eax,ecx
1 O+ z Q2 r1 w) A. r—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート把eax与ecx相乘,结果存在eax
7 y+ i$ m4 s- ?9 ~6 i0 A% n—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート魔力私服,最新魔力宝贝私服技术交流* `% S9 u1 [; y& A) f+ J
Leave —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 l1 W7 k0 J. m8 ?/ l+ {
Retn
# @( v2 y- {* p( {# d4 k6 f! wbbs.mocwww.com退出这个过程吧,大概
' q9 N* ]( Q+ \9 M* D9 v6 u4 u
0 r: B! L/ M! BMov eax,dwordptrLevelUPtbl[edx*4] bbs.mocwww.com2 Z9 q8 a1 g$ @; C
这里是读取经验表的内容给eax,也就是查表读经验
% l# z+ l2 _, ]魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, C/ K; @$ s- B( t
jmp short loc_80740B6 bbs.mocwww.com8 `- X2 T* ~0 Z. z+ G
强制跳转到80740B6 bbs.mocwww.com& M7 u% {! {( E
0 a$ ]) V) c' f' ^: I5 u妖城在线论坛好了,这段代码就这点意思,逻辑上不难理解。
: T9 x8 o( a$ w& ~ U虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。
7 }9 {% z% f; ^9 Z魔力私服,最新魔力宝贝私服技术交流
/ v; z: H5 `7 F. h0 {6 c分析完了之后开始修改了,上面的代码具体作用如下:
, H( o$ D: S( g0 b1 n1 r8 Cbbs.mocwww.com判断等级下一级是否小于7eh,是则跳转到查表。 魔力私服,最新魔力宝贝私服技术交流" a. F) Y$ H# `9 V% j! j
否的话也就是大于7eh时,按照下面算法运算 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート9 o, B# Q# {2 W* ?
.text:080740A3 push ecx 妖城在线论坛2 q* o4 c1 ^9 z4 y7 l
.text:080740A4 mov ecx, 7 妖城在线论坛* N% ?8 l ~1 Y: U# |: _5 F4 A( \, k$ d
.text:080740A9 push edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ J. V( W* L+ V3 B# y
.text:080740AA mov eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 x5 B$ \% [5 _5 i9 i6 |' ]9 t
.text:080740AC imul eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ }, i9 I( ^3 p9 D8 N1 _" D- V
.text:080740AF imul eax, edx
/ t0 {5 l5 K& i: N# x% o. Pbbs.mocwww.com.text:080740B2 imul eax, ecx
+ r3 I2 R' A0 U5 h2 O# b—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート也就是eax的三次方乘以ecx,这里可以改成我想要的。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& B0 A# W+ x& I# x2 k+ j& Y
6 o! S) u9 s6 c* F3 q( Y# U魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表我的目标是改称等级的四次方除以50,但是问题来了。
3 o6 [. b. u4 E3 s" z$ P. p1 P0 q- q' j魔力私服,最新魔力宝贝私服技术交流怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。 妖城在线论坛 L/ e6 g. p( U5 f, Z
% Z' ?, M' t2 H魔力私服,最新魔力宝贝私服技术交流.text:08074098 public CHAR_GetLevelExp
% k* T$ L, z! Z魔力私服,最新魔力宝贝私服技术交流.text:08074098 CHAR_GetLevelExp: bbs.mocwww.com$ h1 S% @5 S& X* ^5 [
.text:08074098 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" M/ U, H0 Z: J
.text:08074098 push ebp 妖城在线论坛- i$ T. Q8 q) o' d5 A1 v
.text:08074099 mov ebp, esp
7 B2 K( S, y7 Y i: ^" e" n4 l.text:0807409B mov edx, [ebp+8] bbs.mocwww.com+ X5 u J( |* @1 I
.text:0807409E cmp edx, 0FFh
$ r1 \2 h/ z: l7 h妖城在线论坛.text:080740A4 jg short loc_80740C0 妖城在线论坛0 [ C5 q6 A# D# _# g0 M! f
.text:080740A6 push ecx bbs.mocwww.com: @" p6 h9 z" ]6 G
.text:080740A7 mov ecx, 32h 魔力私服,最新魔力宝贝私服技术交流8 @. s; f% p$ O% d. y0 r8 o
.text:080740AC push edx % [$ B1 h/ I5 G. x m
.text:080740AD mov eax, edx
i* {( R" v4 p8 W$ a2 r, S& ?魔力私服,最新魔力宝贝私服技术交流.text:080740AF imul eax, edx 魔力私服,最新魔力宝贝私服技术交流1 S3 F/ D' [2 F3 D, a3 k r
.text:080740B2 imul eax, edx 妖城在线论坛6 h6 L4 n: v6 K# g2 I
.text:080740B5 cdq
% n, S+ p$ F1 L+ L—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B6 idiv ecx
- ]8 N0 U- {/ ?+ o! t* o I3 ^魔力私服,最新魔力宝贝私服技术交流.text:080740B8 mov edx, [ebp+8] bbs.mocwww.com) U! k) T' Y1 d% a8 N6 {' [$ y
.text:080740BB imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 }" V, G# ?, k% x$ y0 X% h
.text:080740BE
0 _" ~( q$ T/ A2 d0 k魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BE locret_80740BE: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, c9 g8 ]8 r; t7 L6 w: a4 H6 l
.text:080740BE leave bbs.mocwww.com: x6 J% z$ p3 _1 q. A* M, N
.text:080740BF retn ) O4 `# I. @( `. t" J! d& C5 l
.text:080740C0 loc_80740C0:
. N6 N1 E4 W; Z* { x hbbs.mocwww.com.text:080740C0 mov eax, 0FFFFFFFFh bbs.mocwww.com' T9 y7 p6 ]0 j% A& H' y
.text:080740C5 jmp short locret_80740BE + @- p7 x- H& W2 _
妖城在线论坛3 u- K6 l+ w5 @6 L9 _& {
方便起见这里直接把我改好的代码贴出来,与原来不同的地方:
0 l0 T9 X- c1 b! t+ A n" ]bbs.mocwww.comCmp edx,0FFh 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 L6 v G5 q. @* o
Jg shortloc_8074C0
! W6 p" u( C8 n$ }% o5 J& S妖城在线论坛判断等级是否大于255是的话跳转80740C0
6 M E6 W" \/ { E% v s魔力私服,最新魔力宝贝私服技术交流否的话进入我们的等级公式: 妖城在线论坛" r/ o8 a& ]2 I+ g8 V' l+ s8 P8 \
(等级*等级*等级除以50)*等级 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 A X9 w' p0 W* D; |
也就是等级三次方除以50再乘以等级
% N6 X" }5 l& v% h5 Z/ k n7 t: Z( W魔力私服,最新魔力宝贝私服技术交流为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。
4 b2 N: e4 k8 X—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 妖城在线论坛' Z+ _# m; Y' S+ _- x B
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
3 z& |/ Y2 T/ ?$ R, l—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
" {0 D3 k/ F! L7 @; E; ?' cbbs.mocwww.com接下去做公式: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% c7 L. U" G0 u' t- l! a
Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验 bbs.mocwww.com# }1 N# |+ y2 C: z1 S
Mov eax,edx 将下一等级的值赋值给eax
* J6 c0 J1 x* G# L魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Imul eax,edx 将eax,edx相乘,结果存到eax 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, S# S% t- [- @, U# }2 f6 N
Imul eax,edx 同上 bbs.mocwww.com' d4 T5 _4 U6 q2 s; g6 Y
Cdq 这个做除法不加就会出错,用户登录后服务器当机 bbs.mocwww.com0 J0 t+ Y) x6 K7 v
Idiv ecx eax除以32h算到50倍经验 魔力私服,最新魔力宝贝私服技术交流- H6 s; W( ?$ |" s: E
Mov edx,[ebp+8] 从新获取下一等级的值
- F" J* R3 ]- h$ V7 b1 w! \- v魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Imul eax,edx 将eax,edx相乘,结果存到eax
' u# I# V( N4 ~9 N- l5 |魔力私服,最新魔力宝贝私服技术交流
5 S: Z' i: H6 M# e好了,这样就完成了运算过程。 / n( s. P: T+ y* {8 \
, ~! z+ W5 @6 m, ^# i魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C0 loc_80740C0: 妖城在线论坛8 Z/ r) E+ j# P1 C# ?
mov eax, 0FFFFFFFFh
0 M# ]' K1 p4 Y# i$ V$ I! _3 o8 `魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表jmp short locret_80740BE
2 U$ ^2 y/ F2 _/ v/ V—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这一段代码就是等级超过你设置的上限之后返回-1。 魔力私服,最新魔力宝贝私服技术交流8 Q N$ o$ S5 y. L* y
bbs.mocwww.com) S, c6 C, c2 c( M
6 d5 f: N5 `/ }—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
/ E$ S. d: Z ~, E5 y魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表这里就要用到FlexHex了。 bbs.mocwww.com) }7 ^' W& d H7 `3 v
" w/ M( y# ]7 i" z首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
& M" f% q+ c' [" q! q" \—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如下对应: 妖城在线论坛% G: V! @+ V+ h. D4 D# L! M: }
Cmp edx,0ffh 81 FA FF 00 00 00
" K, d; x/ P& @! m- v5 R& m) ?魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表jg short loc_80740C0 71 FA
7 }, r* p6 }# i魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表mov ecx, 32h B9 32 00 00 00 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' Q. \. }1 t' j; s4 e+ B
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ |! k* Y R& ]9 D- C
依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。
u' z- b5 i6 h3 z( }1 `$ L: e6 j妖城在线论坛这个挺有乐趣可以自己慢慢享受摸索。 , p6 a' r: j5 v
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 P7 P f" Z: I3 l* B5 l1 F. ~
以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。