发新话题
打印

[魔力私服分享] 没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。

没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。

没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
  d: Y6 L3 o% k& ]0 ]% gbbs.mocwww.com使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 L! n2 w3 O# _0 U" ~
1 E# M  \, \8 k# O" g1 t
用IDA载入gmsv,分析完成后进入Exports选项卡。
* b1 |5 h' \3 z7 xbbs.mocwww.com搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 魔力私服,最新魔力宝贝私服技术交流" B$ `& ~# T$ N( c  o
.text:08074098                 public CHAR_GetLevelExp 4 y, u$ b# {3 V# l9 C
.text:08074098 CHAR_GetLevelExp: 妖城在线论坛% `5 }) O. g- ~/ m+ Q% c: {6 |
.text:08074098                 push    ebp
/ n+ n9 y/ C2 G( |1 gbbs.mocwww.com.text:08074099                 mov     ebp, esp - x9 f) W( A* q2 e  a+ b2 C; R
.text:0807409B                 mov     edx, [ebp+8] —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ K, K- _7 ]& b- R" Q
.text:0807409E                 cmp     edx, 7Eh 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 a3 G: `2 D% }% o; u* z+ F4 _
.text:080740A1                 jbe     short loc_80740C0
+ i8 j$ b5 \: C; N* x+ H  Q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A3                 push    ecx
) N* X) C# J+ ~. b: j+ m. [" @! r魔力私服,最新魔力宝贝私服技术交流.text:080740A4                 mov     ecx, 7 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( O+ k) [4 \" D; [  u1 y! v) b
.text:080740A9                 push    edx 魔力私服,最新魔力宝贝私服技术交流) p4 y8 Q7 d5 r7 c& [
.text:080740AA                 mov     eax, edx 魔力私服,最新魔力宝贝私服技术交流" z5 v" w/ S# C' O, i) I
.text:080740AC                 imul    eax, edx bbs.mocwww.com: G! u! [( i8 v$ e$ S
.text:080740AF                 imul    eax, edx
9 ~% q/ E$ `- p/ Cbbs.mocwww.com.text:080740B2                 imul    eax, ecx + g5 g1 a" j% G1 P+ @+ c& N2 W
.text:080740B6 loc_80740B6:   魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表& h+ f# s) x) W$ p  w6 A4 _
.text:080740BE                 leave
7 [8 b. {7 u) M# @妖城在线论坛.text:080740BF                 retn 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表  E( K, j2 ]" z; M) A4 t
.text:080740C0 loc_80740C0:                           * x% W& _7 m# X5 x7 u
.text:080740C0                 mov     eax, dword ptr LevelUpTbl[edx*4]
' S8 t+ T6 U6 l& V—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C7                 jmp     short loc_80740B6
) A+ I! o0 S6 I& C* `7 {4 K妖城在线论坛bbs.mocwww.com  b% }' ~/ t% g  X3 f  g: ~0 y" a
粗糙的解释下这段代码的意思 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" i2 X- ]6 U$ c; S

: l% m: J5 c5 [9 X魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Push              edp bbs.mocwww.com( q0 q2 J# n& P& F! v3 c- y
Mov        ebp,esp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ D! E; l9 R1 l& }, W' W& T, u5 m
Mov        edx,[ebp+8] 魔力私服,最新魔力宝贝私服技术交流; B3 F- G& I7 b
获取当前等级的下一级存到edx ' ^* F$ y" _$ [; q1 Y9 U

5 ^& ~8 O5 I, k" y" u! Zbbs.mocwww.comCmp              edx,7eh   j. F4 g5 T0 B) m' m& K) f
将edx与7eh也就是10进制数130比较
% V. E) Y, h' S& _3 h/ [4 H& b
! W9 V# `1 F; D/ _# B3 I8 r2 j妖城在线论坛Jbe         shortloc_80740C0 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. {( m3 Y+ U& p% d0 M" M4 Y
如果edx小于7eh则进行跳转到80740C0
7 S1 I1 b2 p5 ~. c魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
# `/ s4 _* Y( ]% b& I魔力私服,最新魔力宝贝私服技术交流Push       ecx 魔力私服,最新魔力宝贝私服技术交流  e  @5 ?* h, g3 R( Q( ?
Mov        ecx,7
  I7 @0 ?  D7 b2 o0 C4 z# Q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート给ecx赋值7
" Q6 m, W: ~6 N5 @4 ^bbs.mocwww.com—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. z5 i% O' o4 a8 V9 r  u
Push              edx
+ i8 ~4 U# M, Fbbs.mocwww.comMov        eax,edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 r$ v% y3 o" S9 o
把当前等级+1的值给eax 9 g, P! \! o" T7 S! ^
6 p) ?" b- d3 E% |4 I" q6 j
Imul              eax,edx
8 e0 `$ x8 t! C魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表把eax与edx相乘,结果存在eax ) T! {; h' w: R

: ^% d2 I3 k: M. S9 D6 BImul              eax,ecx + k/ q8 M7 m9 X  [* q- w8 C
把eax与ecx相乘,结果存在eax 1 _* F9 O' A+ K5 p
; X4 Z' u1 _! J- K
Leave
+ J0 E2 H, ]0 s! R7 G* jbbs.mocwww.comRetn
' }2 O/ a3 q% `! \$ x; `—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート退出这个过程吧,大概 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 ^: l0 {. [. n' |3 A
妖城在线论坛5 X- C& z" Q0 M8 h6 ]' x* \. C7 z
Mov        eax,dwordptrLevelUPtbl[edx*4] —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% A; U. D" g% x: g7 d
这里是读取经验表的内容给eax,也就是查表读经验 妖城在线论坛. w  z1 B0 X+ `+ J, {/ b5 ]
妖城在线论坛2 [' z6 R7 j/ F; h1 v5 \% O
jmp     short loc_80740B6
4 w4 E4 _* Z5 o* v魔力私服,最新魔力宝贝私服技术交流强制跳转到80740B6
- T# O6 f0 o5 L2 o9 ]% |% _妖城在线论坛9 c4 e4 r1 Y8 c7 `- F
好了,这段代码就这点意思,逻辑上不难理解。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ Z! i- J* |: ?" c, `
虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。 $ ~6 F7 I- F( _
bbs.mocwww.com" l% [  |' L" n) [: o# [4 s& G  T
分析完了之后开始修改了,上面的代码具体作用如下: 妖城在线论坛3 V' H7 ?$ r; G9 I% G) J: i
判断等级下一级是否小于7eh,是则跳转到查表。
0 k% r& t- c; b  a9 w1 o妖城在线论坛否的话也就是大于7eh时,按照下面算法运算
# p% H0 z; O! P9 V& g  y魔力私服,最新魔力宝贝私服技术交流.text:080740A3                 push    ecx
8 |2 ~3 U3 G8 |6 J* H# c—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A4                 mov     ecx, 7 魔力私服,最新魔力宝贝私服技术交流6 }( V1 {9 l5 g9 m: A% u
.text:080740A9                 push    edx 妖城在线论坛5 n: A* f8 g, j& c4 f& \- a
.text:080740AA                 mov     eax, edx
! N0 P& ^3 }7 \8 v; \3 sbbs.mocwww.com.text:080740AC                 imul    eax, edx
5 U% `! o( ]& s6 p7 a# X.text:080740AF                 imul    eax, edx bbs.mocwww.com; s* k& y2 S2 x1 v" l% m
.text:080740B2                 imul    eax, ecx
' z, }/ h0 w) _: L0 ~# l妖城在线论坛也就是eax的三次方乘以ecx,这里可以改成我想要的。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 D7 N" g( R% ]. i0 D

" B5 b, [2 q% m5 m魔力私服,最新魔力宝贝私服技术交流我的目标是改称等级的四次方除以50,但是问题来了。
6 R( [. i% x1 W. n. {6 T8 gbbs.mocwww.com怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。 魔力私服,最新魔力宝贝私服技术交流1 \* z! f' k+ L& w# L, L

% h  f* e6 z8 Mbbs.mocwww.com.text:08074098                 public CHAR_GetLevelExp bbs.mocwww.com, j) _1 j& h, z! i
.text:08074098 CHAR_GetLevelExp:
6 R: h, P- I: X& X- z魔力私服,最新魔力宝贝私服技术交流.text:08074098               
% M7 u7 S/ h2 D( |8 x—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098                 push    ebp
8 i9 J' |8 w( ?: a魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074099                 mov     ebp, esp 魔力私服,最新魔力宝贝私服技术交流( D8 T4 c5 h- ]* O7 L
.text:0807409B                 mov     edx, [ebp+8]
/ O0 T& L6 P; R魔力私服,最新魔力宝贝私服技术交流.text:0807409E                 cmp     edx, 0FFh
9 l- T( B. H# q" j8 d3 Y( g$ R$ a妖城在线论坛.text:080740A4                 jg      short loc_80740C0 ) g9 {& Q" V! N! H# J) ?3 k
.text:080740A6                 push    ecx
1 H5 T1 ]/ l1 w0 @  A4 q: n妖城在线论坛.text:080740A7                 mov     ecx, 32h
* g1 e/ W7 c1 T! o# L" g. E( R魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AC                 push    edx
  e5 l3 c: I$ J& b3 n# m妖城在线论坛.text:080740AD                 mov     eax, edx
, n* B$ ^1 f5 T) L6 I& c  T- A7 I妖城在线论坛.text:080740AF                 imul    eax, edx 魔力私服,最新魔力宝贝私服技术交流1 j0 k9 G* _( J" L/ ^8 v
.text:080740B2                 imul    eax, edx 妖城在线论坛5 m+ A, B) Y4 D" ?+ Y/ k& M7 V6 k# U; E
.text:080740B5                 cdq bbs.mocwww.com+ Q  v' N- P4 w
.text:080740B6                 idiv    ecx
# B: |" S% M1 s# }魔力私服,最新魔力宝贝私服技术交流.text:080740B8                 mov     edx, [ebp+8]
* ?! A, v* c% O! h8 y, @魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BB                 imul    eax, edx 魔力私服,最新魔力宝贝私服技术交流. {0 U' ]. a4 m) U7 a# T9 U
.text:080740BE 0 u+ y# I( {& c$ t1 s, _- E
.text:080740BE locret_80740BE:                     
! G( q4 ?5 }4 m- ^/ J2 m" \3 I魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BE                 leave 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ q/ N( l" E0 F' Y. m2 G3 T4 N
.text:080740BF                 retn bbs.mocwww.com+ M2 H" `. A/ ~7 U* X4 d  D
.text:080740C0 loc_80740C0:                         $ ~" @7 l( m- O! y7 }! H
.text:080740C0                 mov     eax, 0FFFFFFFFh
# }5 l' S1 j2 G4 v6 i—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C5                 jmp     short locret_80740BE
+ e, Y/ z7 I2 }, _. {3 ]妖城在线论坛—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* Z: t8 p2 j' w3 z- E' ~/ M- R+ w
方便起见这里直接把我改好的代码贴出来,与原来不同的地方:
" o$ T5 B! u  }/ t4 p% _: T) O& cbbs.mocwww.comCmp              edx,0FFh
: G/ U$ v. S' bbbs.mocwww.comJg           shortloc_8074C0 妖城在线论坛3 c8 O3 r% [2 K" L0 R; [* ]
判断等级是否大于255是的话跳转80740C0 bbs.mocwww.com6 y. w, g! |4 [7 l! l. \, u( ]) o- W
否的话进入我们的等级公式: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, w! @8 @+ v4 V6 N$ N* _! Z0 n
(等级*等级*等级除以50)*等级
" S' T6 M6 C. H3 f# O9 S魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表也就是等级三次方除以50再乘以等级
3 g0 A* y; s" P* X8 a3 t魔力私服,最新魔力宝贝私服技术交流为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。
# ?, V1 x9 S  f1 ?- ]# |7 w魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 妖城在线论坛7 w% H; e  K* f: ]2 C! k0 K# g
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
8 J% B8 m, B3 W1 R: c. V
) J4 \  q3 R& _, d) n6 E  tbbs.mocwww.com接下去做公式: bbs.mocwww.com7 w8 _8 T7 P3 }7 q; J4 |6 \8 X6 k
Push              ecx,32h          这里是经验倍率,就是公服经验除以ecx等于你的经验
, z. r' \8 N% ?魔力私服,最新魔力宝贝私服技术交流Mov        eax,edx      将下一等级的值赋值给eax —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 |" a" [) Z5 x4 v' c1 h
Imul              eax,edx          将eax,edx相乘,结果存到eax 魔力私服,最新魔力宝贝私服技术交流) \: ]( \9 q: S9 E1 b* p$ F' C
Imul              eax,edx          同上
& b0 E" y5 O. W; C1 C! U" k妖城在线论坛Cdq                             这个做除法不加就会出错,用户登录后服务器当机 1 @2 u0 t/ \3 O) t7 f$ i
Idiv        ecx                eax除以32h算到50倍经验
% _9 k& ^  K2 N; o4 v) t妖城在线论坛Mov        edx,[ebp+8]    从新获取下一等级的值 bbs.mocwww.com* Z. r( a! |, R
Imul              eax,edx          将eax,edx相乘,结果存到eax 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 X+ k  ^3 U8 d) K! b
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! C; ^) J6 U" A- r6 q
好了,这样就完成了运算过程。
3 F7 U/ n+ \1 X1 C# U0 i- ?7 N! z/ obbs.mocwww.com' r- N3 ]4 M! J8 v1 B
.text:080740C0 loc_80740C0:                         bbs.mocwww.com2 T  g( U5 J3 I
mov     eax, 0FFFFFFFFh 魔力私服,最新魔力宝贝私服技术交流4 Y& S0 U0 o4 B3 m
jmp     short locret_80740BE
  i* l( A' r% G1 Q' r; u! `  n魔力私服,最新魔力宝贝私服技术交流这一段代码就是等级超过你设置的上限之后返回-1。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! e: V1 o6 x5 l7 k" X. ^/ {, \( F
) `9 z) g* i: C7 |9 U$ B
魔力私服,最新魔力宝贝私服技术交流3 c. X* v! `0 m
下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。 9 I& p- a! k9 U8 Q, n- G
这里就要用到FlexHex了。 妖城在线论坛! O: P2 T' `" x! ~! S) x( k1 g0 P

4 y$ j  B$ G- R' j+ S6 i. f魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 f$ ?4 g9 _6 n# {3 {" I. ^- S
如下对应:
8 d( _7 h7 r5 p. j- |4 [) K" Lbbs.mocwww.comCmp              edx,0ffh                       81  FA  FF  00  00  00
' _3 Q3 x# ?- Cjg      short loc_80740C0         71  FA
+ T  A# T7 ?& ?1 jmov     ecx, 32h                      B9  32  00  00  00
/ M) u" v8 N& C9 B% |+ W! D妖城在线论坛
+ l& J2 a: K; ?' f  ]& g依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。
! o3 q6 w; C$ S" x/ k" N1 \! D! @魔力私服,最新魔力宝贝私服技术交流这个挺有乐趣可以自己慢慢享受摸索。
6 E: B; I' y# V' D+ b—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートbbs.mocwww.com$ d2 P2 \7 m2 j  w% H& q
以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。

TOP

好文章, 可以帮很多入门的来修改~

TOP

看不懂.............

TOP

学习学习魔力私服,最新魔力宝贝私服技术交流2 `1 ]5 u/ ~" h  {9 _$ s# f
谢谢楼主分享经验

TOP

感谢楼主分享,顶!

TOP

很不错~呵呵~ 继续深入,到call语句的调整和为自己的语句腾空间还有搜索无果而必须自己对着opcodes写机器码就有趣了……

TOP

发新话题