没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
! s p: ^- p; h- a* y: ?, ^8 z y5 _使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。 魔力私服,最新魔力宝贝私服技术交流+ N! ~* q% K" Z+ B/ g
* K, Z+ {# ~2 q' p* h0 l妖城在线论坛用IDA载入gmsv,分析完成后进入Exports选项卡。
+ i- e5 E0 Y( D* ?魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 R- j' V' n& @" Q
.text:08074098 public CHAR_GetLevelExp
$ b0 Y1 @% M& R! p: V3 Vbbs.mocwww.com.text:08074098 CHAR_GetLevelExp:
$ j W8 K- x: S—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 push ebp —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート- w) w6 T4 a) u: `
.text:08074099 mov ebp, esp —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 V8 w5 U4 H0 V1 q
.text:0807409B mov edx, [ebp+8] bbs.mocwww.com1 r6 K ]$ N+ j! \7 E
.text:0807409E cmp edx, 7Eh bbs.mocwww.com; E& ?( B! v" _0 s
.text:080740A1 jbe short loc_80740C0 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ W5 R! H4 G/ z, X
.text:080740A3 push ecx
5 a5 n* Q! a/ S9 q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A4 mov ecx, 7
9 @; R1 K! C3 ~. S) |4 q4 mbbs.mocwww.com.text:080740A9 push edx bbs.mocwww.com0 B$ }" C% ^) a \( k
.text:080740AA mov eax, edx
9 U; j; w1 U8 t9 S2 }. E! q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AC imul eax, edx 9 {8 W" x" D% R7 |% g4 b
.text:080740AF imul eax, edx 魔力私服,最新魔力宝贝私服技术交流" k- `. {" W2 Z; d* x2 T( [
.text:080740B2 imul eax, ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 w+ g9 l+ V) U* u8 d- ]
.text:080740B6 loc_80740B6: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 Z( e$ x7 Z1 `( @* O& y: O
.text:080740BE leave
[) g; ?( I' Z% `3 c0 n, a—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BF retn
3 h9 ]' r9 p/ a魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C0 loc_80740C0:
9 f/ {# n- q, t( V; n: `—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4]
: l, }" \ B& Q( ?7 T) B/ `5 E/ I—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C7 jmp short loc_80740B6
/ @6 j! O8 _7 Q- Z Z( @0 F魔力私服,最新魔力宝贝私服技术交流
+ l# m5 [7 g% V1 t妖城在线论坛粗糙的解释下这段代码的意思 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 _3 \0 Z# B2 x4 p: Y l
' k" [( W$ S' \% UPush edp
2 I* }: u2 } E% uMov ebp,esp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 K6 X/ Z7 ~* p: S* N3 k6 }
Mov edx,[ebp+8]
\1 w* C& G; N; _& O) l妖城在线论坛获取当前等级的下一级存到edx 妖城在线论坛$ }2 Z" q& l. K+ \' ^" I
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. }- A' l- K0 J i8 G5 v! o" o1 ]
Cmp edx,7eh 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% J4 q4 k# p& H* q
将edx与7eh也就是10进制数130比较
. _* _* ?/ [7 o o2 o4 R—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート妖城在线论坛9 x7 V( T# G N: Q
Jbe shortloc_80740C0 bbs.mocwww.com+ D7 [' \8 j' J' D( A% L3 ]
如果edx小于7eh则进行跳转到80740C0
4 B. g+ P0 c! G4 j: Q妖城在线论坛bbs.mocwww.com, N* T% h; Y* B8 F3 z6 b0 [5 X6 o
Push ecx / ^& [; m- c9 R/ f0 ]7 y4 Y3 B3 O) ?
Mov ecx,7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート9 o! X% f# N- a) O% y, n8 u6 [, [
给ecx赋值7
* P+ I9 R# A, ~. N—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 j- u$ B( {- M/ r" V
Push edx
8 K$ a3 T+ z! g$ Vbbs.mocwww.comMov eax,edx
% p/ }# b6 w" P2 n8 t! D把当前等级+1的值给eax bbs.mocwww.com, ~( i% O7 y; R2 }
* m0 I d+ s# C妖城在线论坛Imul eax,edx
+ J, T/ L9 C: l: v1 ~' l* V) l% B妖城在线论坛把eax与edx相乘,结果存在eax 魔力私服,最新魔力宝贝私服技术交流( Z8 R3 K6 D9 @) ~
妖城在线论坛& G- |( M3 ~4 O7 S# N9 V
Imul eax,ecx
/ n2 \0 r4 l% ?魔力私服,最新魔力宝贝私服技术交流把eax与ecx相乘,结果存在eax bbs.mocwww.com( \0 r* T1 \+ f& R
妖城在线论坛7 _$ d# O& T/ u& G
Leave bbs.mocwww.com `1 k1 J3 j4 _* }" ?8 T
Retn
( l( J6 x$ [2 y6 x/ Y' f; R: |9 l魔力私服,最新魔力宝贝私服技术交流退出这个过程吧,大概
! e% Q# @+ U: @9 |1 A+ m4 s$ }: Z' P
Mov eax,dwordptrLevelUPtbl[edx*4] 妖城在线论坛% [: R3 b/ R" z
这里是读取经验表的内容给eax,也就是查表读经验 bbs.mocwww.com* e/ u2 v: w* Z7 \5 x" M
魔力私服,最新魔力宝贝私服技术交流' r( I0 E) u4 h
jmp short loc_80740B6 魔力私服,最新魔力宝贝私服技术交流 P: \0 z( s3 g
强制跳转到80740B6 妖城在线论坛0 M; z/ l/ u# T. y2 F& M+ h
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* r% J& {% [* @( k9 I6 Y
好了,这段代码就这点意思,逻辑上不难理解。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 z( R+ @, [8 v2 z# j
虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。
" B; F$ t" B3 \% j魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
2 F( ~# c/ T: ]; @bbs.mocwww.com分析完了之后开始修改了,上面的代码具体作用如下: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 [. O! _- }1 G1 Y! f# ~
判断等级下一级是否小于7eh,是则跳转到查表。 魔力私服,最新魔力宝贝私服技术交流, x E$ s9 K' C2 H: d7 P
否的话也就是大于7eh时,按照下面算法运算 妖城在线论坛1 u' m3 `& P# p$ s `+ `
.text:080740A3 push ecx , W7 m) @; k- @1 u! ^
.text:080740A4 mov ecx, 7
6 D& N( z6 c4 m# U/ j, V" u—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A9 push edx bbs.mocwww.com. ^6 N+ j, X x( ~( N
.text:080740AA mov eax, edx
% w' ?0 D: {' i魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AC imul eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# ^- J9 Y3 S y5 O1 R
.text:080740AF imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 g7 l6 b( `$ u( D
.text:080740B2 imul eax, ecx
9 n9 `4 t8 f' @' ]: B! @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート也就是eax的三次方乘以ecx,这里可以改成我想要的。
& A6 e5 H& P$ t魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# T: x; M6 q3 A8 u
我的目标是改称等级的四次方除以50,但是问题来了。
" a/ ^3 o+ Q+ T! d% x0 ^+ ^—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。 魔力私服,最新魔力宝贝私服技术交流* F6 {1 s4 Z0 y
+ G9 ?$ a9 K1 |) ^魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 public CHAR_GetLevelExp
$ ^5 q/ u: A: z9 l—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 CHAR_GetLevelExp:
. U+ j- Q( P. c* @2 ^6 l* k; l魔力私服,最新魔力宝贝私服技术交流.text:08074098 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" [; f7 w+ T, L/ Y
.text:08074098 push ebp
* B* `) h( ~/ V. v" \* [2 |魔力私服,最新魔力宝贝私服技术交流.text:08074099 mov ebp, esp
: I3 S7 F. I9 b, Qbbs.mocwww.com.text:0807409B mov edx, [ebp+8] 魔力私服,最新魔力宝贝私服技术交流& x# S6 R' W- C5 F7 M2 R
.text:0807409E cmp edx, 0FFh 妖城在线论坛4 P" \9 l; l/ F6 N5 r8 d; l
.text:080740A4 jg short loc_80740C0
0 n4 O+ y5 p- g$ z) B x魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A6 push ecx
6 o4 `; s3 I+ r: ^+ c8 y4 j.text:080740A7 mov ecx, 32h
! V0 `4 N' ~( l& p8 t魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AC push edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 |# H* M4 n1 V! C+ ]) ?' x* z
.text:080740AD mov eax, edx
5 L( p h }! a.text:080740AF imul eax, edx
1 C6 F4 o7 C! }; q0 e; j魔力私服,最新魔力宝贝私服技术交流.text:080740B2 imul eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" s' k! `! u) c% }7 V
.text:080740B5 cdq 2 V* q. `" l2 U% D5 \- j
.text:080740B6 idiv ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 E" L1 Q5 Y$ v
.text:080740B8 mov edx, [ebp+8] 妖城在线论坛# [+ c% U y/ Y; t
.text:080740BB imul eax, edx 妖城在线论坛7 P- x. x1 P8 L1 d( Y2 u
.text:080740BE
+ U* K ]& [( o7 Mbbs.mocwww.com.text:080740BE locret_80740BE: bbs.mocwww.com1 J+ `" O. ]2 L- r& o! v- p
.text:080740BE leave
- O% g, c- G7 e: \' _妖城在线论坛.text:080740BF retn
8 g3 Z. b1 r0 `# f& ?- \* \1 k+ {1 w) r魔力私服,最新魔力宝贝私服技术交流.text:080740C0 loc_80740C0: 8 V+ r- r- d3 o$ d; E9 Q- M
.text:080740C0 mov eax, 0FFFFFFFFh bbs.mocwww.com( r; d K# a# Q1 f) S
.text:080740C5 jmp short locret_80740BE 魔力私服,最新魔力宝贝私服技术交流9 W5 l, U& ~, I5 o! r& I/ k1 R/ F/ x6 L
妖城在线论坛4 C% G( V) x; r$ o
方便起见这里直接把我改好的代码贴出来,与原来不同的地方:
! M4 ?2 F5 ~6 d" j$ `( t" _' b魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Cmp edx,0FFh
! `" I6 D V. r1 R1 @* \妖城在线论坛Jg shortloc_8074C0
! h D0 n N z* O; ]' {$ F" I魔力私服,最新魔力宝贝私服技术交流判断等级是否大于255是的话跳转80740C0
7 T8 s3 r' _, e0 p. y! ebbs.mocwww.com否的话进入我们的等级公式: 魔力私服,最新魔力宝贝私服技术交流5 e" X6 q0 j$ v# b% D" d) v
(等级*等级*等级除以50)*等级
+ h# A& G P |9 o' L% d也就是等级三次方除以50再乘以等级
0 X! e) S& Z2 q" c9 W: [魔力私服,最新魔力宝贝私服技术交流为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。
3 j% W K6 z2 j' X% ubbs.mocwww.com216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- C3 Y( E0 W: T/ H
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。 魔力私服,最新魔力宝贝私服技术交流: B" H" G1 f( m
0 a& |6 v) c+ H' B' Gbbs.mocwww.com接下去做公式: 魔力私服,最新魔力宝贝私服技术交流2 L) J: ^* z& G- ~$ Q
Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验 妖城在线论坛. W- H2 z2 s9 n: t9 I
Mov eax,edx 将下一等级的值赋值给eax
v/ ]2 j0 T9 { q- K0 nbbs.mocwww.comImul eax,edx 将eax,edx相乘,结果存到eax
- l& R( h a X. |妖城在线论坛Imul eax,edx 同上 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( [0 U8 ^) I; r# J5 ]/ I
Cdq 这个做除法不加就会出错,用户登录后服务器当机 妖城在线论坛1 ^; h% }8 W1 y" \
Idiv ecx eax除以32h算到50倍经验 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 L; v5 C( D' Z! x0 @6 P; [
Mov edx,[ebp+8] 从新获取下一等级的值 魔力私服,最新魔力宝贝私服技术交流/ ^2 ?0 B; {5 Q1 v8 n2 v
Imul eax,edx 将eax,edx相乘,结果存到eax
1 f( o% F. S, `6 ?- Q, d魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表妖城在线论坛3 P5 j z) R; q I: [* ^- s
好了,这样就完成了运算过程。
5 Z7 w2 d. [0 P# [3 d/ @) d魔力私服,最新魔力宝贝私服技术交流
% j- M% }% Q1 M/ k8 gbbs.mocwww.com.text:080740C0 loc_80740C0: 妖城在线论坛8 X, b: c- W; W0 E
mov eax, 0FFFFFFFFh 1 `$ g: `: ` k# R
jmp short locret_80740BE
/ e! ~) h5 O0 e3 W$ G+ |, l魔力私服,最新魔力宝贝私服技术交流这一段代码就是等级超过你设置的上限之后返回-1。 妖城在线论坛1 a. ?% k& S4 a, y, t
% Q; s5 h* {0 ?8 c2 l—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
& K- P1 u( u1 C- {, b! o7 f& R9 b—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
# Z& y5 l: b' f* E魔力私服,最新魔力宝贝私服技术交流这里就要用到FlexHex了。 魔力私服,最新魔力宝贝私服技术交流2 ~0 y2 r1 f. _! U
; T1 n/ ?( n& E- Ubbs.mocwww.com首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( _; \5 n; s( _* p5 ]% W+ t" N
如下对应:
/ d* w; M% }3 E* m. ~' o1 R2 m魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Cmp edx,0ffh 81 FA FF 00 00 00 魔力私服,最新魔力宝贝私服技术交流, s3 O) y# |7 C; J8 Q) c; \4 R
jg short loc_80740C0 71 FA 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. r- m6 L: \9 k$ F
mov ecx, 32h B9 32 00 00 00
* B; I- ~7 }- B3 C) S6 s
) }' q7 L0 e! g依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。
2 x* X2 X( p- |—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这个挺有乐趣可以自己慢慢享受摸索。
/ @6 ?' D3 z; A% X妖城在线论坛; S6 `/ L. t: {* s
以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。