没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, v2 q! q/ Q3 e" J# h8 T
使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! i8 k# t2 Y+ T
* @; B7 S3 }" c0 q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート用IDA载入gmsv,分析完成后进入Exports选项卡。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 E9 [+ U% m9 z, S' }9 x
搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( [, I" M1 f- m$ x! ^$ U3 t
.text:08074098 public CHAR_GetLevelExp
7 ]2 P: W. }8 _7 Q3 g) Q5 F魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 CHAR_GetLevelExp:
i" u, e* E. R- n—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 push ebp
' F* Y" G# C2 I4 ?9 G5 ~魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074099 mov ebp, esp
, [2 g% e5 [ t% ?1 t妖城在线论坛.text:0807409B mov edx, [ebp+8] 妖城在线论坛& L9 D& }$ ^% [* U3 [- b
.text:0807409E cmp edx, 7Eh bbs.mocwww.com; \( K- W" G1 Z/ D
.text:080740A1 jbe short loc_80740C0 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 Q* s8 P" L& h! x3 K. S3 Y- h5 A3 m ]
.text:080740A3 push ecx
, q# Q/ X1 z `—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A4 mov ecx, 7
5 u2 T# f/ d$ N- ]& T; ^魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A9 push edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! D, j7 F% q1 V9 S# a1 i1 Y
.text:080740AA mov eax, edx
; J8 o, h3 R6 _8 Q.text:080740AC imul eax, edx R3 ~. w5 Z K0 X5 f2 l
.text:080740AF imul eax, edx 妖城在线论坛- c6 X7 V( k6 l: m3 P/ o4 J
.text:080740B2 imul eax, ecx
b* F$ R* T! S4 [- n7 ybbs.mocwww.com.text:080740B6 loc_80740B6: 妖城在线论坛3 V- S8 o6 k/ o* n- L! X& X
.text:080740BE leave
3 |9 q% \8 d% Q6 M; X* F# R2 M# P.text:080740BF retn
" F" O9 p# F+ c, W( Ibbs.mocwww.com.text:080740C0 loc_80740C0:
9 n4 p" _7 a2 A妖城在线论坛.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] bbs.mocwww.com p5 u0 D0 p+ {: |" [( z6 f4 y
.text:080740C7 jmp short loc_80740B6 . q2 i4 S" R# \: H$ Y' g/ n
: X9 {- n6 m% X# q粗糙的解释下这段代码的意思
3 {: u- W, D& d; P魔力私服,最新魔力宝贝私服技术交流bbs.mocwww.com' C) N( s% P$ c
Push edp
; _* o" V3 I2 T/ v! G妖城在线论坛Mov ebp,esp
+ t4 v- ?/ X' p. @0 u5 xbbs.mocwww.comMov edx,[ebp+8] ( s- ?: L; e; H; q
获取当前等级的下一级存到edx
8 v' r [1 Q/ b魔力私服,最新魔力宝贝私服技术交流魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 ^ J; `4 g2 f- u) m/ _- Z# P
Cmp edx,7eh
* u* ?4 ?& @+ u% \将edx与7eh也就是10进制数130比较 bbs.mocwww.com" e. h1 ?$ N0 K" o( v; F
# R7 h$ F0 f+ F+ C y5 A7 p. ]
Jbe shortloc_80740C0 bbs.mocwww.com! F" j' v; z( \) n0 q4 l
如果edx小于7eh则进行跳转到80740C0 ) I1 A% w, s! c1 H# g4 _
' Q1 q2 y% h8 p% U4 cbbs.mocwww.comPush ecx " ^! P- u8 J+ _* o2 C" N# ~
Mov ecx,7 7 `6 b. s* s' g" K, O) }1 V
给ecx赋值7 . f) C8 `/ E3 N5 A; h2 ^& L
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# H, Q! W* f+ R( m! {
Push edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% r# u" F4 x! F) k
Mov eax,edx ( u x, L! \$ q, a* O2 t; W1 x" Q
把当前等级+1的值给eax 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. k$ z( q# G# |2 ~- b5 d: w
9 l/ n+ O( I+ Z魔力私服,最新魔力宝贝私服技术交流Imul eax,edx 妖城在线论坛5 R: W* i4 S- K5 {6 J0 ?, a3 e; o
把eax与edx相乘,结果存在eax
/ ?9 |5 [% h& F0 O魔力私服,最新魔力宝贝私服技术交流
) w! W/ W$ I: a, h9 ^—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートImul eax,ecx
/ ?* E1 t4 q2 ?& [( i) Dbbs.mocwww.com把eax与ecx相乘,结果存在eax 妖城在线论坛 j' J3 ^+ u$ p% ?
5 j5 d7 T# a% P3 h2 l; I% G: pbbs.mocwww.comLeave
1 Z( t6 ~" [$ H+ v7 \: i魔力私服,最新魔力宝贝私服技术交流Retn
5 h- l$ d' R9 I1 l# u+ h$ N退出这个过程吧,大概
/ a4 h% {0 E5 E/ Y. h- D* K魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( T% z0 i) ?; b
Mov eax,dwordptrLevelUPtbl[edx*4] 魔力私服,最新魔力宝贝私服技术交流+ y5 T7 x: M- R, @$ \: T l
这里是读取经验表的内容给eax,也就是查表读经验 妖城在线论坛) F2 u1 \1 ?8 T- \; z
h) u y& G% i0 `- D) x
jmp short loc_80740B6 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 U ]$ m; r! N
强制跳转到80740B6
. f- c& T/ I% C& {2 ~bbs.mocwww.com—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 R( O0 |0 s2 Q" M) M1 d! h
好了,这段代码就这点意思,逻辑上不难理解。 ' d$ i( x0 a0 F2 _* b2 z" e) Q
虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ _ A$ m7 Q! f4 l
bbs.mocwww.com- d; [! H- t+ Q2 ]! t/ ^
分析完了之后开始修改了,上面的代码具体作用如下: bbs.mocwww.com# Y: O) r }: b/ b+ R
判断等级下一级是否小于7eh,是则跳转到查表。 bbs.mocwww.com; J) P8 [2 L0 T
否的话也就是大于7eh时,按照下面算法运算 bbs.mocwww.com! A: _ J" p2 G; Y- _
.text:080740A3 push ecx bbs.mocwww.com. B' U7 g x r& h( P, M
.text:080740A4 mov ecx, 7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 P. j2 m& q, \5 o. {
.text:080740A9 push edx
* w6 T7 S$ e* f& X魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AA mov eax, edx
: c8 [. U6 e; m9 Z; Tbbs.mocwww.com.text:080740AC imul eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& Y4 i1 k. h' E2 f
.text:080740AF imul eax, edx
; a" d$ v! D. s+ x6 n% w魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740B2 imul eax, ecx
0 I6 h' V- C5 p) j y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート也就是eax的三次方乘以ecx,这里可以改成我想要的。
* f' e z& C c3 J—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートbbs.mocwww.com% ~" [# o0 Q3 m! O! d7 ^; W" g
我的目标是改称等级的四次方除以50,但是问题来了。 妖城在线论坛" E X; @2 W* ~' F( E7 p
怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。 bbs.mocwww.com6 O: {8 ]( K" w4 G3 u+ m. L- E/ ~4 M
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ _+ g1 _6 ^. h; H3 Z9 O& g
.text:08074098 public CHAR_GetLevelExp
/ J! ?" i5 L P# q4 A魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 CHAR_GetLevelExp:
: g) t% {! i" v# [魔力私服,最新魔力宝贝私服技术交流.text:08074098 魔力私服,最新魔力宝贝私服技术交流5 w m3 W/ B6 g4 Q! b) O7 P: }6 d# w
.text:08074098 push ebp
, K- k. Z. @* [# ]魔力私服,最新魔力宝贝私服技术交流.text:08074099 mov ebp, esp
* q) p6 z4 Q. d% y.text:0807409B mov edx, [ebp+8]
' P3 s- J4 [. ~.text:0807409E cmp edx, 0FFh —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート5 d# j: t7 y z5 N( n0 c
.text:080740A4 jg short loc_80740C0 魔力私服,最新魔力宝贝私服技术交流, @% H% e" m6 Z- y' Q' V
.text:080740A6 push ecx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 X- M- {! ^! N2 |7 J7 N" m
.text:080740A7 mov ecx, 32h 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: M* Q) Y7 ? g7 ?& D# R3 h
.text:080740AC push edx 0 E) O* |. r$ E j1 X0 N4 C
.text:080740AD mov eax, edx bbs.mocwww.com: W# T+ B" S, V! |; v
.text:080740AF imul eax, edx 魔力私服,最新魔力宝贝私服技术交流4 [1 _9 s, \7 P" R5 o
.text:080740B2 imul eax, edx
& h, P# r5 g5 r- {0 }& h魔力私服,最新魔力宝贝私服技术交流.text:080740B5 cdq
$ L2 K. ~) P1 N* @.text:080740B6 idiv ecx
/ N( h( N3 E t( l魔力私服,最新魔力宝贝私服技术交流.text:080740B8 mov edx, [ebp+8] 妖城在线论坛2 Y7 y S6 X9 w8 S0 q" n% D
.text:080740BB imul eax, edx 妖城在线论坛! C( }- M. ?$ ?) k+ m+ I
.text:080740BE 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( V) c: ]3 s ^5 L/ L* w, k
.text:080740BE locret_80740BE:
$ R4 S0 Z7 i) O I. d/ c7 \$ h8 |, N- H魔力私服,最新魔力宝贝私服技术交流.text:080740BE leave —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 B& F* @2 \7 K B2 J. @
.text:080740BF retn 魔力私服,最新魔力宝贝私服技术交流. c% a6 U; D5 Q/ v, v
.text:080740C0 loc_80740C0: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 ^) j% E: R* [$ i. Z* I
.text:080740C0 mov eax, 0FFFFFFFFh —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 u1 E$ I7 O6 s( i! v" V: i
.text:080740C5 jmp short locret_80740BE
6 V) N" C8 w$ N2 B; Y$ ^3 a q魔力私服,最新魔力宝贝私服技术交流
# F" [( ], W; Jbbs.mocwww.com方便起见这里直接把我改好的代码贴出来,与原来不同的地方:
8 Q5 X1 H3 T2 A8 T lCmp edx,0FFh 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 j1 R* `" D' l! y
Jg shortloc_8074C0
" V, B) u% | o5 Q% Q9 p" Q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート判断等级是否大于255是的话跳转80740C0
3 t& x9 `' @( p. R( j; y妖城在线论坛否的话进入我们的等级公式:
. @6 u4 I9 A" T/ [; y(等级*等级*等级除以50)*等级 魔力私服,最新魔力宝贝私服技术交流8 ^3 @ u$ Q1 q( f
也就是等级三次方除以50再乘以等级
! B: f% {' h2 P0 \' D( x" F; x魔力私服,最新魔力宝贝私服技术交流为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。
, J m8 n1 x$ p- A; [妖城在线论坛216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。
) F, ?! n% b7 j: ]; x# ]—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。 妖城在线论坛7 W: z/ u/ ~; E' W, \' r: O
7 o9 x2 M. o, U" a/ r
接下去做公式: 妖城在线论坛2 Y# s; w; Y! \- y3 O
Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) @ Z7 f% ~: W9 p$ y6 f7 ? N
Mov eax,edx 将下一等级的值赋值给eax 魔力私服,最新魔力宝贝私服技术交流) b( O: |- W% {/ h9 L2 j: U! R
Imul eax,edx 将eax,edx相乘,结果存到eax
0 S& |. ~. b' e, @" g4 b魔力私服,最新魔力宝贝私服技术交流Imul eax,edx 同上
3 @! r v7 M6 M5 i) r0 h6 [bbs.mocwww.comCdq 这个做除法不加就会出错,用户登录后服务器当机
: b# D+ Y% C: _0 {bbs.mocwww.comIdiv ecx eax除以32h算到50倍经验
3 O+ @& Z, v% _0 e0 L妖城在线论坛Mov edx,[ebp+8] 从新获取下一等级的值
& a+ [* P" j- P& \: P: _( e—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートImul eax,edx 将eax,edx相乘,结果存到eax
! e$ `7 C! ?/ z8 D: |: y: o妖城在线论坛
1 Z- C$ W+ ~4 d% abbs.mocwww.com好了,这样就完成了运算过程。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) @9 B" m# [# I4 D e6 w5 `) X; i( V1 v
妖城在线论坛* d, E" C9 b& ~* p1 K& N& o4 W
.text:080740C0 loc_80740C0: 妖城在线论坛1 n5 l- R$ c; Y
mov eax, 0FFFFFFFFh 妖城在线论坛, t. K q5 A/ Q3 J) L
jmp short locret_80740BE 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' l! C2 t8 Z1 x$ i5 e
这一段代码就是等级超过你设置的上限之后返回-1。
5 G/ i! L& ?. X! }4 X- E7 H! c魔力私服,最新魔力宝贝私服技术交流
1 r$ ]/ z! [ M9 Z2 G! t- u魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
& `3 ~9 o4 e; a/ J妖城在线论坛下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
8 w1 L' I* [3 M# r妖城在线论坛这里就要用到FlexHex了。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* S+ ~. G+ l! n) v/ I# P
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 a5 F0 `5 P! c0 i
首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
) _- e+ _4 j% |5 V/ H+ p% g如下对应: . a3 n3 f$ a2 v# M. s* U
Cmp edx,0ffh 81 FA FF 00 00 00
& N4 l; d2 V C5 x- N9 j% Y魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表jg short loc_80740C0 71 FA —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 v( l5 c1 a* Q6 M/ K& F' K
mov ecx, 32h B9 32 00 00 00
s! ^2 E7 Q& J9 v' S, L5 O% z* B' u魔力私服,最新魔力宝贝私服技术交流妖城在线论坛! M# b: U K Z! z4 D& t2 z
依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。
G" [5 n+ h- C; I z' e! \! ]- z# Ubbs.mocwww.com这个挺有乐趣可以自己慢慢享受摸索。
3 X# _5 f( B& I魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表bbs.mocwww.com* m4 s7 p& g2 D- x
以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。