发新话题
打印

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

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

没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。 8 j! S7 \; v5 L& a$ \9 a
使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。
9 y! O' h( }% ~$ ]$ Sbbs.mocwww.com9 j5 ~' ~; s1 d4 m; ]$ V& v# @
用IDA载入gmsv,分析完成后进入Exports选项卡。 1 R0 x: Q6 j' F( N$ f
搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。
4 ~3 ~7 i$ g1 O% x% J% G魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098                 public CHAR_GetLevelExp
7 D, g# T3 M" N  R—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 CHAR_GetLevelExp: 9 V+ X1 G& ?8 H' m. R: d; _
.text:08074098                 push    ebp
/ h+ v9 r7 v3 o2 T( U.text:08074099                 mov     ebp, esp
( i6 f# X, \" d0 h—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:0807409B                 mov     edx, [ebp+8] bbs.mocwww.com0 n2 W( w* u* Z
.text:0807409E                 cmp     edx, 7Eh
- t. c- {& J1 x$ f3 M! c妖城在线论坛.text:080740A1                 jbe     short loc_80740C0 魔力私服,最新魔力宝贝私服技术交流" e; f. Y1 ?$ ]/ z1 M. U
.text:080740A3                 push    ecx
) o3 c% h' s5 j0 E/ m. `$ `魔力私服,最新魔力宝贝私服技术交流.text:080740A4                 mov     ecx, 7
; [& L$ V# r6 U; z/ B.text:080740A9                 push    edx
0 \/ M) g# E& X8 [" o魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AA                 mov     eax, edx bbs.mocwww.com7 f7 a! s# A* k/ j0 K8 Q
.text:080740AC                 imul    eax, edx 魔力私服,最新魔力宝贝私服技术交流7 y+ c0 a/ B  Q3 }
.text:080740AF                 imul    eax, edx
+ @& c! l4 \7 k. l魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740B2                 imul    eax, ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! I" ?; q0 c. I0 {' L0 z+ n% T
.text:080740B6 loc_80740B6:   
" G  J4 i# a- L1 E+ e* G1 |.text:080740BE                 leave
/ q% D) U# C2 s$ }9 ybbs.mocwww.com.text:080740BF                 retn 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. ~( H  u: _4 W% o' I9 K; a' B
.text:080740C0 loc_80740C0:                           
( _2 y3 B+ q0 U; N3 V6 `bbs.mocwww.com.text:080740C0                 mov     eax, dword ptr LevelUpTbl[edx*4]
7 H" D( ?" \. o2 r; d$ ]' |, @$ N—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C7                 jmp     short loc_80740B6
( e; [7 ~9 J) ~4 j, ]妖城在线论坛
, f: b  O) x  F3 s; P5 h妖城在线论坛粗糙的解释下这段代码的意思 bbs.mocwww.com& g$ V* U; q# o( _
魔力私服,最新魔力宝贝私服技术交流9 y/ Q# g  r8 V4 r, s8 o
Push              edp —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 H3 L1 h6 T4 v; w' Y- q
Mov        ebp,esp
# A7 m9 ?: \% eMov        edx,[ebp+8] 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ l: s" R4 S) M2 k" Z6 d
获取当前等级的下一级存到edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* z: }5 ]* b  p2 N) v! F

, U3 ^9 ]8 t  C  _5 gCmp              edx,7eh bbs.mocwww.com; p; ^6 S( Q- c/ m
将edx与7eh也就是10进制数130比较 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! `( c+ L' k" [" v

2 o& `' Y9 Q1 ~- c4 x) ?bbs.mocwww.comJbe         shortloc_80740C0 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* p. o* ^& I8 X. y" y1 U) f- x
如果edx小于7eh则进行跳转到80740C0
( C1 S( M7 V6 T1 D, ?% Z魔力私服,最新魔力宝贝私服技术交流—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート- M# O3 x3 t; E; h) [
Push       ecx
) O. s7 L9 V6 z5 \8 {' O3 I' dMov        ecx,7
4 X4 r. x5 n5 k; W魔力私服,最新魔力宝贝私服技术交流给ecx赋值7 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート; _1 }: z9 p5 j! J) N

) H  j( w, s! O0 ]魔力私服,最新魔力宝贝私服技术交流Push              edx
6 C2 y  o+ n7 c  u. p% s" a妖城在线论坛Mov        eax,edx bbs.mocwww.com+ q+ `" O* Y8 a4 T" u
把当前等级+1的值给eax
! _: p+ D) B) G# s, @) ^( c5 l魔力私服,最新魔力宝贝私服技术交流bbs.mocwww.com+ Q) t" K' \9 U' @
Imul              eax,edx 妖城在线论坛* A* w% ~+ R! i% r5 H. c
把eax与edx相乘,结果存在eax
  ~# P2 N4 T5 i: h魔力私服,最新魔力宝贝私服技术交流
( s% y5 P( y, D7 V- |2 [1 L( w9 Abbs.mocwww.comImul              eax,ecx
/ E$ r+ Z' `6 [# k. g' w5 h% H" H, {: ~0 l—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート把eax与ecx相乘,结果存在eax 妖城在线论坛. X, J, n+ T+ {$ B4 V

5 O% D4 O, a0 P! B8 j魔力私服,最新魔力宝贝私服技术交流Leave
7 B: _3 A# W$ {1 e- u魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Retn 妖城在线论坛& v' V) j0 h' D
退出这个过程吧,大概 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- C# c7 Z; _' A/ ]! m

% F# E  ]/ u' _1 K5 g+ p7 W: Jbbs.mocwww.comMov        eax,dwordptrLevelUPtbl[edx*4]
! u# H* ^! ?5 r5 w魔力私服,最新魔力宝贝私服技术交流这里是读取经验表的内容给eax,也就是查表读经验 4 ]0 E; U! w5 c3 B& t# b* G/ R

6 P9 p; e. ~" d6 jjmp     short loc_80740B6 bbs.mocwww.com3 f3 x, a7 r9 o
强制跳转到80740B6 + B+ U7 R' d, m" Z
bbs.mocwww.com0 y+ @  J7 r2 R. [. X
好了,这段代码就这点意思,逻辑上不难理解。 2 _9 y% ~1 t& y% R# z5 q
虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。 ; S& d5 E' X% C, `# t* a3 T
1 j' I  a' {5 d5 a- U9 o4 J$ i  x, e
分析完了之后开始修改了,上面的代码具体作用如下: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# F3 i" k4 B3 w7 a3 e
判断等级下一级是否小于7eh,是则跳转到查表。 妖城在线论坛% U( W6 c" _$ F& a  U
否的话也就是大于7eh时,按照下面算法运算 ! P& @5 _4 S* Q+ m7 P/ k* M
.text:080740A3                 push    ecx
- J6 S4 f7 g' T妖城在线论坛.text:080740A4                 mov     ecx, 7
+ Q3 C5 }, w( Z4 {5 N妖城在线论坛.text:080740A9                 push    edx
0 ]1 B" E0 W$ ^. F" j.text:080740AA                 mov     eax, edx
- S  {: J& z5 C- A5 G3 ?: t: F魔力私服,最新魔力宝贝私服技术交流.text:080740AC                 imul    eax, edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' W! D" B. X" {- J
.text:080740AF                 imul    eax, edx bbs.mocwww.com: ~4 m& W- R# G# i. e+ [' n4 S3 L" c
.text:080740B2                 imul    eax, ecx
  p& @# H/ I3 z  i+ t' ~—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート也就是eax的三次方乘以ecx,这里可以改成我想要的。 妖城在线论坛3 {- D8 _* S& v& i

# W+ L0 t6 B( \魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表我的目标是改称等级的四次方除以50,但是问题来了。
* S8 x7 F6 b' `( K: q: g魔力私服,最新魔力宝贝私服技术交流怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。
: v  ~, d0 J2 V8 b! u魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
+ _. G/ [/ r, E/ K' c8 `/ l3 R$ K0 R魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098                 public CHAR_GetLevelExp 魔力私服,最新魔力宝贝私服技术交流: W, y( t/ U1 j! C" q
.text:08074098 CHAR_GetLevelExp:
1 {' |& g" t% N9 C9 E, Q1 L0 c  A, E魔力私服,最新魔力宝贝私服技术交流.text:08074098               
) |, |' y/ k) F3 w/ [.text:08074098                 push    ebp
* `" U$ b4 t) k, S.text:08074099                 mov     ebp, esp
7 J( _  Y: b% w—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:0807409B                 mov     edx, [ebp+8] 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 F/ s5 r9 F! P
.text:0807409E                 cmp     edx, 0FFh
" V% L2 O. Q' _$ m( i- e& Z/ r.text:080740A4                 jg      short loc_80740C0
$ E% r+ U* F* n: @. o妖城在线论坛.text:080740A6                 push    ecx
, [3 H( u, _0 \.text:080740A7                 mov     ecx, 32h 魔力私服,最新魔力宝贝私服技术交流# l& M( \2 U/ L$ C' b
.text:080740AC                 push    edx
0 `) d# `) W, d- f6 ?魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AD                 mov     eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: F9 Y4 d: i2 M; q/ }. e. z
.text:080740AF                 imul    eax, edx
/ z- g# l7 I& R  c2 K+ {1 v—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B2                 imul    eax, edx 7 Z- T) B( S7 ^
.text:080740B5                 cdq
$ W# H' G) e$ _. N8 j" l—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B6                 idiv    ecx
* k9 x7 D; s/ Z: C% H—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B8                 mov     edx, [ebp+8] 8 Q$ w0 `4 N5 N- [0 i  A2 X  M
.text:080740BB                 imul    eax, edx 妖城在线论坛3 ^+ n& y% b8 R, N. Y3 D
.text:080740BE
/ h# V: I' z. Q8 U+ B* `魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BE locret_80740BE:                     bbs.mocwww.com5 [0 ~# O7 J4 p: E
.text:080740BE                 leave
) k, L4 e' s+ `- _/ \" w9 R—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BF                 retn
7 @  T6 c. i( S/ h- h魔力私服,最新魔力宝贝私服技术交流.text:080740C0 loc_80740C0:                         —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ b, l" E  S; y) o+ p4 |- U- ?
.text:080740C0                 mov     eax, 0FFFFFFFFh —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 i$ A* V) P+ _  w2 V
.text:080740C5                 jmp     short locret_80740BE bbs.mocwww.com5 v/ J4 o9 N% \. d+ O
魔力私服,最新魔力宝贝私服技术交流) t" _) n5 D/ U5 {" \
方便起见这里直接把我改好的代码贴出来,与原来不同的地方: ' b8 @/ s, g4 T* l
Cmp              edx,0FFh
, |4 T6 r1 A- h* {1 \# E—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートJg           shortloc_8074C0
. E1 `6 p$ [; ]! p5 h—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート判断等级是否大于255是的话跳转80740C0
/ C' w: C: R+ x8 |- l" n# ^; L! o魔力私服,最新魔力宝贝私服技术交流否的话进入我们的等级公式:
5 m, m5 J  H3 O6 U* dbbs.mocwww.com(等级*等级*等级除以50)*等级
5 x. A/ F4 C* w; x% z也就是等级三次方除以50再乘以等级
2 A/ I; k" c$ _  _魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 C& G+ Q3 f  z* X1 b. t% B
216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 妖城在线论坛0 k3 k% P) }/ W* z
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. X8 X, l6 N% {0 p* N: _2 p

) k: a; r0 Z& Jbbs.mocwww.com接下去做公式:
0 N2 q7 W5 L5 n: _7 Q7 o% b; p8 z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートPush              ecx,32h          这里是经验倍率,就是公服经验除以ecx等于你的经验
& P1 Q2 {6 d; @5 r* S, Sbbs.mocwww.comMov        eax,edx      将下一等级的值赋值给eax bbs.mocwww.com7 s: [. X$ S1 p+ k
Imul              eax,edx          将eax,edx相乘,结果存到eax 妖城在线论坛# c& u3 F3 @4 @, a3 Y0 |' _- e
Imul              eax,edx          同上 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- r- f, E) h7 h7 j/ j3 v, G' P
Cdq                             这个做除法不加就会出错,用户登录后服务器当机
" b! h. q5 B* e' _5 Z7 H魔力私服,最新魔力宝贝私服技术交流Idiv        ecx                eax除以32h算到50倍经验
/ X4 i" X  w- {2 ?; p5 t$ ebbs.mocwww.comMov        edx,[ebp+8]    从新获取下一等级的值 魔力私服,最新魔力宝贝私服技术交流0 Y6 l: [* y/ a5 Q0 U) z* ]
Imul              eax,edx          将eax,edx相乘,结果存到eax
* k. u, X2 J5 X6 P5 m3 z魔力私服,最新魔力宝贝私服技术交流( K% H; h. F6 c7 U6 R$ {
好了,这样就完成了运算过程。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, a% J/ o" n# Z3 F& D% j
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 i; S; X& L$ B
.text:080740C0 loc_80740C0:                         —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ r2 ?3 p* i- J! c0 [; j, F. P1 m
mov     eax, 0FFFFFFFFh 魔力私服,最新魔力宝贝私服技术交流  z( f, O6 Q3 P) e" J0 w3 V
jmp     short locret_80740BE
6 F7 B0 g  ~; @% E1 C( T—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这一段代码就是等级超过你设置的上限之后返回-1。 , N2 U( o# N! _6 Y. c
妖城在线论坛' w6 ]- H$ y. q# D4 U0 K

, Y9 E4 \  Z- \: }8 \# G6 P  p妖城在线论坛下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
  S6 J: c% M2 P; z* o0 s8 fbbs.mocwww.com这里就要用到FlexHex了。
0 U: D1 Q% l6 F) P$ e妖城在线论坛
4 x! k7 {* t7 j# T1 |; h; ]; o魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
# P, N& M. o4 b$ a( ]—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如下对应:
4 U# S; i: h9 k& `5 V0 l# |—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートCmp              edx,0ffh                       81  FA  FF  00  00  00
& q; E" ]! m. k妖城在线论坛jg      short loc_80740C0         71  FA 妖城在线论坛1 u2 c. w; P' l$ C9 z* c4 J- {
mov     ecx, 32h                      B9  32  00  00  00
. H+ A: M2 e, s% ]/ D" `4 ^, l, S) K0 _5 R
依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 + Q# {0 V# n: i4 h7 y$ U. q
这个挺有乐趣可以自己慢慢享受摸索。
- f+ j6 V; k$ I- n0 f! U; T' V0 T/ rbbs.mocwww.com
) y$ V$ l' H8 S% c( J% [bbs.mocwww.com以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。

TOP

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

TOP

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

TOP

学习学习魔力私服,最新魔力宝贝私服技术交流2 [1 J+ J! t) w3 y
谢谢楼主分享经验

TOP

感谢楼主分享,顶!

TOP

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

TOP

发新话题