没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
" c; X% c! \% ~1 G魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。
* S6 N- q! m1 D% mbbs.mocwww.com
' x' G5 a, D9 f* c2 P—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート用IDA载入gmsv,分析完成后进入Exports选项卡。 8 Z0 Q2 L0 r3 i
搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。
& M4 i+ d. J* E9 G! ]: Nbbs.mocwww.com.text:08074098 public CHAR_GetLevelExp —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート9 H: A8 j& }& t4 T, `( D* _
.text:08074098 CHAR_GetLevelExp:
8 {. r( t4 B# A" o( [—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 push ebp 妖城在线论坛5 d3 L- O* n7 X
.text:08074099 mov ebp, esp 妖城在线论坛. N+ w2 k5 U+ Y( x( G) n9 P7 f* M: [
.text:0807409B mov edx, [ebp+8] bbs.mocwww.com7 m( t, r: N# U" U, k
.text:0807409E cmp edx, 7Eh bbs.mocwww.com$ a4 s# C. i+ H. s3 I! ^4 Q5 s
.text:080740A1 jbe short loc_80740C0
7 a. w+ ` H6 d0 ~7 A O6 ~—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A3 push ecx
6 r! a( t! I5 H6 {) g( P8 I! U" K妖城在线论坛.text:080740A4 mov ecx, 7 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 O6 s1 t" E" j# o9 e! k
.text:080740A9 push edx
4 o. T9 Z5 G# A/ g( D( O) V9 B妖城在线论坛.text:080740AA mov eax, edx
4 `* _1 V9 d& n! d0 p6 U—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AC imul eax, edx
3 a" p. C' R; [% D5 v0 {% u* d妖城在线论坛.text:080740AF imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* I6 k5 @: J; Y3 I, Z0 a6 v) ^
.text:080740B2 imul eax, ecx
6 P/ s( z: x5 l2 N# g魔力私服,最新魔力宝贝私服技术交流.text:080740B6 loc_80740B6:
2 ?$ s& z, {; q1 [4 I$ E—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BE leave
$ N4 {* h# r; L—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BF retn
( R. e. j' o: I! u1 m妖城在线论坛.text:080740C0 loc_80740C0: 妖城在线论坛! p7 j# k' `4 w* C/ _
.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4]
/ z8 b8 Q% | k.text:080740C7 jmp short loc_80740B6 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: l; B' l8 L; L
/ N- A; k" b! u! m- M5 S魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表粗糙的解释下这段代码的意思 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 G% N) A8 X. x( S0 J; r1 e
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 Z5 Z6 f! Q: z) n( X
Push edp
5 d" Y: \ D1 G+ a+ I魔力私服,最新魔力宝贝私服技术交流Mov ebp,esp 魔力私服,最新魔力宝贝私服技术交流7 B) i9 u! X C' X. J0 G+ ^2 e
Mov edx,[ebp+8] . K& Q7 R' I* }3 y# U r* H( P
获取当前等级的下一级存到edx
; @: ?3 G h0 T: @, S7 g—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートbbs.mocwww.com% X& L' h/ v" ]4 ]3 l* w5 p
Cmp edx,7eh 9 ^5 L8 ?' e5 m. b5 k
将edx与7eh也就是10进制数130比较 妖城在线论坛* O. F0 [5 O3 }8 s$ w
- J2 Q9 ]# u6 X9 Q# a, R: cbbs.mocwww.comJbe shortloc_80740C0
* h8 J3 t7 N! A, n% P7 M, Q, b魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表如果edx小于7eh则进行跳转到80740C0
, k% m3 C; o5 N" Y$ _魔力私服,最新魔力宝贝私服技术交流, ], D; u- S9 b1 f; v& Y9 k
Push ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 P1 K: L/ r3 ?
Mov ecx,7 魔力私服,最新魔力宝贝私服技术交流( F$ Q- k4 i6 X
给ecx赋值7 妖城在线论坛 C0 c4 z2 Q8 W) m7 O" v: f" P/ G
bbs.mocwww.com j8 r+ g5 N% L
Push edx
: l! u& G3 f& M8 l魔力私服,最新魔力宝贝私服技术交流Mov eax,edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ a- q1 ?; P, P5 k% O" A2 K" M
把当前等级+1的值给eax 魔力私服,最新魔力宝贝私服技术交流2 b% f) |" ? m$ @$ v
魔力私服,最新魔力宝贝私服技术交流( G* ^& T) J2 T' `% v2 S, t( {: O
Imul eax,edx
# G" |# o8 E" z1 h; X* o0 S魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表把eax与edx相乘,结果存在eax
% y% v4 } i9 m" F# S5 u: mbbs.mocwww.com妖城在线论坛 z, N/ p7 f2 @( Z6 p0 \2 H* E/ X7 N
Imul eax,ecx
, y3 ^5 H. x; d2 g" `魔力私服,最新魔力宝贝私服技术交流把eax与ecx相乘,结果存在eax
[4 g2 ~- Z3 c: r妖城在线论坛7 o! ]& e6 {7 O( Y( c& F
Leave
- `5 s# k4 L& W; ]妖城在线论坛Retn
$ B6 o/ U& F# ]; U' Lbbs.mocwww.com退出这个过程吧,大概 魔力私服,最新魔力宝贝私服技术交流9 d6 b- |8 R) G: c0 i( v1 {
S5 K" D/ S6 e/ e4 _魔力私服,最新魔力宝贝私服技术交流Mov eax,dwordptrLevelUPtbl[edx*4] 妖城在线论坛' G* D# \9 x, R
这里是读取经验表的内容给eax,也就是查表读经验 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 l; O- U9 ~+ M J$ |
妖城在线论坛0 I, C F+ ^7 W+ j; O! x: H1 t
jmp short loc_80740B6 & j$ _ n" f3 Q7 w9 d: z
强制跳转到80740B6
- |7 j5 V$ N: R$ s% gbbs.mocwww.com
{, R) f# ~) D7 V妖城在线论坛好了,这段代码就这点意思,逻辑上不难理解。
; @1 T0 D3 M' r1 {6 x8 f- U妖城在线论坛虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。
$ d+ W/ |0 U/ R$ p4 r2 [2 j魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
- `& X5 j$ E. }1 s/ Ibbs.mocwww.com分析完了之后开始修改了,上面的代码具体作用如下: 妖城在线论坛! q# Q8 {# U: L8 Q, D& |
判断等级下一级是否小于7eh,是则跳转到查表。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ A! k X K- I0 _$ y Z P1 O
否的话也就是大于7eh时,按照下面算法运算
1 i) `- {- y' w {3 O魔力私服,最新魔力宝贝私服技术交流.text:080740A3 push ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- h. j* n" `! s2 m6 m
.text:080740A4 mov ecx, 7 魔力私服,最新魔力宝贝私服技术交流) u) T2 ?4 \* N4 q3 Y5 F
.text:080740A9 push edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% w( X$ I R/ z8 k, U
.text:080740AA mov eax, edx
1 z0 x; S3 l! s# V! |6 ~: Z; a魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AC imul eax, edx
. P4 W( N: D* A+ ]3 b; }3 g—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AF imul eax, edx
+ P: X: i, F# s) E魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740B2 imul eax, ecx
" b7 U. Q! E# g/ T妖城在线论坛也就是eax的三次方乘以ecx,这里可以改成我想要的。
* h# n, e' [ ~+ R* V. Q1 _魔力私服,最新魔力宝贝私服技术交流- z n+ j. B+ k% m
我的目标是改称等级的四次方除以50,但是问题来了。
; k- R! l( Y) g# x9 |魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。
/ s: ~# V! U) f9 D魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ F" t( R4 E# c
.text:08074098 public CHAR_GetLevelExp 魔力私服,最新魔力宝贝私服技术交流9 _0 L/ C8 @ Z: g# k2 v' a0 ?
.text:08074098 CHAR_GetLevelExp: bbs.mocwww.com# i6 s, y% c ` O, B
.text:08074098 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 j o1 D: E9 D, X* C
.text:08074098 push ebp
8 h9 e/ _* L, X& {3 T) H—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074099 mov ebp, esp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, r! ^' e: ^# g8 v
.text:0807409B mov edx, [ebp+8] 妖城在线论坛- R% F' m ^; {. U/ r& P2 s, V
.text:0807409E cmp edx, 0FFh
5 N& d9 M4 S l* d- Sbbs.mocwww.com.text:080740A4 jg short loc_80740C0
! L7 J ~5 |) j ] a魔力私服,最新魔力宝贝私服技术交流.text:080740A6 push ecx
4 D; u% K1 N0 x* f妖城在线论坛.text:080740A7 mov ecx, 32h 8 v5 Y, b/ Q/ u% Z, i9 x
.text:080740AC push edx 魔力私服,最新魔力宝贝私服技术交流3 j$ K3 L. g8 z. J1 h& {- r
.text:080740AD mov eax, edx
5 I j* G3 B" n9 `+ M7 t g妖城在线论坛.text:080740AF imul eax, edx
4 n. I/ s7 X- |8 s.text:080740B2 imul eax, edx
3 H- K5 h! n5 \—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B5 cdq
& f W# k; W1 w魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740B6 idiv ecx
4 g- g% Y( z1 n0 U.text:080740B8 mov edx, [ebp+8] bbs.mocwww.com; H5 a6 l0 y Y
.text:080740BB imul eax, edx 2 M" Q4 h8 D9 T
.text:080740BE 妖城在线论坛6 i0 J% {: | Y( F) Z6 u0 C) g
.text:080740BE locret_80740BE:
1 e: H0 S4 q2 j8 n `妖城在线论坛.text:080740BE leave
) \! w+ U: v4 Z0 B3 M3 p' y( D( |* W.text:080740BF retn 妖城在线论坛) W- D, w7 K: q' s6 y) Z$ c
.text:080740C0 loc_80740C0:
# n0 ?. Q+ T: Q, R魔力私服,最新魔力宝贝私服技术交流.text:080740C0 mov eax, 0FFFFFFFFh 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ Z1 x2 v; [- [# b" j2 v4 A7 z0 [2 U
.text:080740C5 jmp short locret_80740BE
( H( t7 q2 P% x' q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ a' O7 e( S# G5 p" f1 y
方便起见这里直接把我改好的代码贴出来,与原来不同的地方:
f& ~& W7 J8 a* v/ C5 x妖城在线论坛Cmp edx,0FFh
! R! J2 n* {; m+ v. Q" y2 F—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートJg shortloc_8074C0 魔力私服,最新魔力宝贝私服技术交流4 D8 H( W+ ~0 Q3 X M
判断等级是否大于255是的话跳转80740C0 3 w. q' J- y4 W1 f: ^
否的话进入我们的等级公式:
+ i2 U7 L( f7 ^- n5 e魔力私服,最新魔力宝贝私服技术交流(等级*等级*等级除以50)*等级
6 z% ]3 s, [1 r [3 |8 _+ W魔力私服,最新魔力宝贝私服技术交流也就是等级三次方除以50再乘以等级
$ c* \9 @& r: _+ S [7 @魔力私服,最新魔力宝贝私服技术交流为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。 . p3 N$ z ~ @5 }5 d
216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。
! f5 e8 c$ y9 b3 Q魔力私服,最新魔力宝贝私服技术交流所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ h: h2 e2 F5 g s
3 P a' S1 ?; |+ ~. a9 N: b" K \bbs.mocwww.com接下去做公式:
; v0 o7 U2 e: z9 H5 z! O4 {Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验
! y+ ~/ R- L2 R5 c* f4 Jbbs.mocwww.comMov eax,edx 将下一等级的值赋值给eax bbs.mocwww.com# B6 X) p: o* \* a$ b
Imul eax,edx 将eax,edx相乘,结果存到eax 魔力私服,最新魔力宝贝私服技术交流0 U/ z; b' n, K. G! K5 W8 Z
Imul eax,edx 同上 魔力私服,最新魔力宝贝私服技术交流$ a' R/ s2 v3 _6 h- u
Cdq 这个做除法不加就会出错,用户登录后服务器当机 妖城在线论坛( } B: X5 d. ?: I7 q
Idiv ecx eax除以32h算到50倍经验
% Q$ W" g6 J" D8 u5 f. w( s5 I$ a9 uMov edx,[ebp+8] 从新获取下一等级的值
: ~" Z7 _. |0 H. O! K" F. ubbs.mocwww.comImul eax,edx 将eax,edx相乘,结果存到eax 魔力私服,最新魔力宝贝私服技术交流& N* @# r2 z4 T: n+ Y' S V
bbs.mocwww.com5 w6 ~' s ?, R/ z' v6 |: D/ `
好了,这样就完成了运算过程。
: X3 }! ~3 K% u0 |9 Z妖城在线论坛—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ ^+ {3 x- E4 }2 ?5 X- f
.text:080740C0 loc_80740C0:
% }' ]7 U5 c7 x$ I [2 I8 T妖城在线论坛mov eax, 0FFFFFFFFh
( p5 w5 R& k( {1 `& C, M6 }( Ujmp short locret_80740BE
9 Q/ I. r/ E; v9 J魔力私服,最新魔力宝贝私服技术交流这一段代码就是等级超过你设置的上限之后返回-1。
8 Q' Y0 o' H0 u' q
- c: Y9 T" T7 x' g1 ^$ X; ]魔力私服,最新魔力宝贝私服技术交流魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 M' I7 M' C2 w6 s) R9 \, c
下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
0 z3 l$ B V. S' W/ J, m这里就要用到FlexHex了。
( L1 f" w# d5 A, O—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
8 I( b, R- Y( ~& I首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。 妖城在线论坛3 {0 q' J( K. k) L' p
如下对应:
' L# R3 z3 A$ i魔力私服,最新魔力宝贝私服技术交流Cmp edx,0ffh 81 FA FF 00 00 00 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) J/ C, ?6 e* W
jg short loc_80740C0 71 FA 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) s: x. o9 m7 ?# b/ s7 ?/ p' p" t, S3 w
mov ecx, 32h B9 32 00 00 00 bbs.mocwww.com+ J6 w9 Q- S. s
, V5 r7 h; o) A1 P% y8 B; f2 a$ m魔力私服,最新魔力宝贝私服技术交流依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ H3 {! }" | |1 }
这个挺有乐趣可以自己慢慢享受摸索。
5 @; g p9 R* X2 h# y# T魔力私服,最新魔力宝贝私服技术交流
' T5 q( |9 C# C4 z# ^% f: W2 c以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。