发新话题
打印

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

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

没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
8 ^: ~" c- E$ s7 T( t使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。 妖城在线论坛8 y  S! `$ u5 b/ j& G5 w

# P7 L$ R$ m# p7 L. w5 N( v) e6 B9 C魔力私服,最新魔力宝贝私服技术交流用IDA载入gmsv,分析完成后进入Exports选项卡。
2 s' g5 E- _, g  k2 V+ q+ _魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, D3 P0 d* G  h
.text:08074098                 public CHAR_GetLevelExp
3 O4 G( K# {3 L2 k—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 CHAR_GetLevelExp:
1 W0 ~; @* t2 B! T' v7 K7 d' A6 b妖城在线论坛.text:08074098                 push    ebp
+ K* J# `3 ~: B0 G- c.text:08074099                 mov     ebp, esp " S4 _6 k% p( [
.text:0807409B                 mov     edx, [ebp+8] 妖城在线论坛9 E0 g* ]: s2 U; }/ M
.text:0807409E                 cmp     edx, 7Eh 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表  K; G4 g& j1 Y# \2 m& y7 ]/ t
.text:080740A1                 jbe     short loc_80740C0
  T: ~" @* L, K' m/ Q  u6 H( Mbbs.mocwww.com.text:080740A3                 push    ecx
0 q3 y. t1 ?& v6 C, N) C$ |魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A4                 mov     ecx, 7 6 s2 |' s  Q3 l0 p9 C0 y1 [
.text:080740A9                 push    edx 9 i0 Q4 ?* v: u3 L4 L8 o
.text:080740AA                 mov     eax, edx bbs.mocwww.com  {( p, @$ `. B" c! n
.text:080740AC                 imul    eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( n5 |1 H+ Z* W& e! s5 x
.text:080740AF                 imul    eax, edx
  ^: e  \+ I1 [; _# Q) R魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740B2                 imul    eax, ecx
! b( ]! V+ m" L- P: M8 N.text:080740B6 loc_80740B6:   
  |% M1 Y; s! c妖城在线论坛.text:080740BE                 leave
% E% D+ f. }' `7 j) |8 X' P妖城在线论坛.text:080740BF                 retn
3 P6 K+ n, \. c% u0 ybbs.mocwww.com.text:080740C0 loc_80740C0:                           魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; U' U6 ^4 \% K0 B' u. j- J2 z
.text:080740C0                 mov     eax, dword ptr LevelUpTbl[edx*4]
3 I/ o. Z6 e; H" D: W4 w/ [魔力私服,最新魔力宝贝私服技术交流.text:080740C7                 jmp     short loc_80740B6
" Z2 K# O- v7 Q0 _7 v1 ~; P/ Zbbs.mocwww.com魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ A3 W+ K$ @; g! L2 w) ~3 ^: P6 U
粗糙的解释下这段代码的意思 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 b; f8 v8 d1 n, [
bbs.mocwww.com2 Y8 [2 r# j, m. |
Push              edp
8 a! Y( R/ i( |0 b- J- v妖城在线论坛Mov        ebp,esp
: B. x0 K/ O- I" s7 A* G魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Mov        edx,[ebp+8] 8 m' @5 j6 E( Q: A: N. @9 \
获取当前等级的下一级存到edx / C9 W# E6 C3 V! h  E
' K: d) j$ i$ g7 H, k3 n" e! H$ Q- o
Cmp              edx,7eh 妖城在线论坛: ~" J; x5 e- M6 C  @2 Y3 h
将edx与7eh也就是10进制数130比较 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 g/ x) s) S  n& e

+ c) s5 q: _" {, O- V妖城在线论坛Jbe         shortloc_80740C0 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 h; r6 y# i1 y. F
如果edx小于7eh则进行跳转到80740C0 妖城在线论坛" W" z9 l- M3 \! W

- k& I, r% L/ B) h8 ]魔力私服,最新魔力宝贝私服技术交流Push       ecx 魔力私服,最新魔力宝贝私服技术交流0 x0 o8 a  {) M# }* k. z
Mov        ecx,7
3 g! F* @9 l& F  d# r1 P给ecx赋值7
6 d/ ^, ^* M- t% ?妖城在线论坛
: T* b: g6 }3 c! f& b& C魔力私服,最新魔力宝贝私服技术交流Push              edx
% X! L  N, c$ I. O  Z妖城在线论坛Mov        eax,edx
8 l7 f0 L/ O7 N* Q2 ]" D7 x9 {: n妖城在线论坛把当前等级+1的值给eax
6 j% D3 S$ F/ y魔力私服,最新魔力宝贝私服技术交流% I1 C9 G* ?# U" X5 f5 {* X
Imul              eax,edx
% d7 L, m' m8 J. N把eax与edx相乘,结果存在eax
9 }0 M/ Z3 f1 J—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートbbs.mocwww.com% w& u& Q. H( p  ~) P7 Q$ w
Imul              eax,ecx
& t' Q! I( f: ?" T' L. n魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表把eax与ecx相乘,结果存在eax
& r4 t# h/ T! l; B
' g# d* I1 o& j" j魔力私服,最新魔力宝贝私服技术交流Leave 5 t, x. c% D8 I4 c4 M* ^& u
Retn 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' E1 J- T  A: @  P; R  W
退出这个过程吧,大概
+ W# c6 M& Y5 C& b3 b1 i8 Gbbs.mocwww.com
6 P5 m4 F- L* h4 n% S4 Z4 O魔力私服,最新魔力宝贝私服技术交流Mov        eax,dwordptrLevelUPtbl[edx*4]
  E. P" ^- Z" }" g魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表这里是读取经验表的内容给eax,也就是查表读经验
# \1 o% U/ ]9 z. p7 \( s& o—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. i2 T$ R0 \8 l% q
jmp     short loc_80740B6
/ y9 Z( c' ~& p0 O* X) M& q$ `魔力私服,最新魔力宝贝私服技术交流强制跳转到80740B6 bbs.mocwww.com0 D/ J* ~$ c( s. ^& I$ ?  R8 L! d
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 L) R6 ^8 h# b
好了,这段代码就这点意思,逻辑上不难理解。
% {$ H, H, \( L- ]* |" O" L' Z/ X妖城在线论坛虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。
. b$ o6 ^! S& x- r/ pbbs.mocwww.com* v) {  V% |8 `9 W
分析完了之后开始修改了,上面的代码具体作用如下: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 w: a& ?6 [, {& |4 _
判断等级下一级是否小于7eh,是则跳转到查表。
& M. ], ^, q4 G- }' k魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表否的话也就是大于7eh时,按照下面算法运算 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# J& \8 Z; F! w
.text:080740A3                 push    ecx
  _, b3 y$ L$ C.text:080740A4                 mov     ecx, 7 3 f) ~) d9 b3 `/ i/ [
.text:080740A9                 push    edx 妖城在线论坛* g$ a0 y5 [9 h3 J4 x2 Q
.text:080740AA                 mov     eax, edx 魔力私服,最新魔力宝贝私服技术交流6 Z4 U: @# Z+ N  I2 Z8 s
.text:080740AC                 imul    eax, edx - f% a- p5 H7 ~4 |7 [. ^; g; N
.text:080740AF                 imul    eax, edx
( A1 A' B. ?' U. U' ?6 E$ q1 J—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B2                 imul    eax, ecx + x+ f7 @, S" g/ g
也就是eax的三次方乘以ecx,这里可以改成我想要的。
2 l3 |& B# u# a8 l; y妖城在线论坛
0 Y) J$ f/ ?3 s* m. _—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート我的目标是改称等级的四次方除以50,但是问题来了。 % N3 b/ S( S! g8 F' ]
怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" n/ w2 o1 V! O! {2 E

! N8 {0 K3 _' H妖城在线论坛.text:08074098                 public CHAR_GetLevelExp , j& B, ]( h! l# S/ t
.text:08074098 CHAR_GetLevelExp: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 h1 x0 \6 R- O* v9 N, l) k4 w
.text:08074098               
, k8 O8 m2 T/ ]& }! S魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098                 push    ebp bbs.mocwww.com$ G$ K; T1 B! e! R. {! N: G
.text:08074099                 mov     ebp, esp bbs.mocwww.com  j% n  y3 S6 O  \+ [$ `8 i
.text:0807409B                 mov     edx, [ebp+8]
+ }& n/ W- A- w5 C.text:0807409E                 cmp     edx, 0FFh : j, K  z& S$ G2 I; N5 Y
.text:080740A4                 jg      short loc_80740C0 魔力私服,最新魔力宝贝私服技术交流$ q* @- ]6 l, z* P3 `! P! H
.text:080740A6                 push    ecx 魔力私服,最新魔力宝贝私服技术交流# m! P; T& f- D0 C6 y; p: Q$ d3 p
.text:080740A7                 mov     ecx, 32h bbs.mocwww.com" p" W9 ?, D9 c: k9 g: F7 D# J! m7 p( |
.text:080740AC                 push    edx
# o# s2 y0 D4 j/ {—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AD                 mov     eax, edx
+ D+ R3 A3 W$ [' E/ M—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AF                 imul    eax, edx
$ r1 N% P# z! h* O' n+ X: I4 r9 P. H—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B2                 imul    eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 o" c8 y# a' L# n
.text:080740B5                 cdq bbs.mocwww.com7 m; @. A' ?$ G$ I/ B: _6 y
.text:080740B6                 idiv    ecx
" C: ^4 Z$ z$ t$ H魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740B8                 mov     edx, [ebp+8] 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 l: Q7 Z. ~" g7 U
.text:080740BB                 imul    eax, edx 妖城在线论坛5 K* V" b7 V( l; c
.text:080740BE 妖城在线论坛2 R% U* T3 m( a
.text:080740BE locret_80740BE:                     —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) p7 P) O% r, c/ y, ?( i
.text:080740BE                 leave 妖城在线论坛$ h" H* n' n" t4 s# v5 ^7 H
.text:080740BF                 retn 魔力私服,最新魔力宝贝私服技术交流9 _9 w) L) ~0 ]: m. i
.text:080740C0 loc_80740C0:                        
7 g! l6 i. _5 |+ S7 q妖城在线论坛.text:080740C0                 mov     eax, 0FFFFFFFFh
( U$ x8 p, y0 b: W—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C5                 jmp     short locret_80740BE
9 K, u( Y" q8 d! Q5 w/ V+ z) Z. T
4 h: x6 i+ w6 U) [—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート方便起见这里直接把我改好的代码贴出来,与原来不同的地方:
( I; T4 {7 s; r* GCmp              edx,0FFh
* e0 E- W! ~6 y' f# r4 G魔力私服,最新魔力宝贝私服技术交流Jg           shortloc_8074C0
# A( k8 f7 m& ~魔力私服,最新魔力宝贝私服技术交流判断等级是否大于255是的话跳转80740C0
% m# y) A2 y1 G( Y5 z4 f妖城在线论坛否的话进入我们的等级公式:
' K' D+ B6 J; _: [0 H(等级*等级*等级除以50)*等级
# a1 s: _3 z9 ^/ r8 e0 Vbbs.mocwww.com也就是等级三次方除以50再乘以等级 魔力私服,最新魔力宝贝私服技术交流3 u2 I/ N" v! f
为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。
$ m. d6 T, E# p4 O) y3 Q: L5 K) P魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 bbs.mocwww.com* h, j+ D& p3 q, x: P
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。 3 q8 S7 m0 j( c8 Z- x. T8 Q6 |
" G. Y: `4 Q* O7 w6 B2 x- b0 _
接下去做公式: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( K4 Y8 l; j1 P7 x9 }  _
Push              ecx,32h          这里是经验倍率,就是公服经验除以ecx等于你的经验
4 }# I2 m; m% z$ H妖城在线论坛Mov        eax,edx      将下一等级的值赋值给eax 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 i! Q' o& p. {- }/ B9 e
Imul              eax,edx          将eax,edx相乘,结果存到eax 妖城在线论坛+ ~  Y3 O6 ^0 T- W! V
Imul              eax,edx          同上
) E& v1 N& Y0 K9 H* W魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Cdq                             这个做除法不加就会出错,用户登录后服务器当机 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 k5 M3 c4 s2 H# U  h1 c3 C4 F
Idiv        ecx                eax除以32h算到50倍经验 妖城在线论坛& V: g3 o" w. C6 O6 a: s
Mov        edx,[ebp+8]    从新获取下一等级的值
- y' V: a" g" L8 t& ]/ hImul              eax,edx          将eax,edx相乘,结果存到eax bbs.mocwww.com8 i% M8 R% B* j% n  e/ w2 M7 f
5 M; `+ X0 o! [7 v7 U: E, B" y/ K
好了,这样就完成了运算过程。
) q* q& f. ]! d6 K5 Y, j- t' ]bbs.mocwww.combbs.mocwww.com$ M1 D5 g3 H+ e% B! }1 n6 m9 v' @
.text:080740C0 loc_80740C0:                         魔力私服,最新魔力宝贝私服技术交流  @4 n! ]  b' Z1 e# j
mov     eax, 0FFFFFFFFh . l* a0 Y6 ?5 [+ x3 r
jmp     short locret_80740BE
6 l0 r$ A& @' \) |) u7 b魔力私服,最新魔力宝贝私服技术交流这一段代码就是等级超过你设置的上限之后返回-1。
8 K0 p  q" L6 S7 T! I( Ubbs.mocwww.com, ?  P( P& N0 `, @! a( `! c* U
0 y9 B' _7 d# z2 i+ A
下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。 bbs.mocwww.com$ }! Z/ `& D2 R* p3 V& m: y
这里就要用到FlexHex了。
2 H/ f* W8 r9 c. l* ^  K( H—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
" D# R* _) F7 {) a5 Q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
- [8 ]9 j: W1 S# tbbs.mocwww.com如下对应: 8 K4 L* e! _, s4 @  w+ B/ Q1 O
Cmp              edx,0ffh                       81  FA  FF  00  00  00
9 x' o- _( V# q妖城在线论坛jg      short loc_80740C0         71  FA 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- z* Y: t0 U: E5 A0 v
mov     ecx, 32h                      B9  32  00  00  00 - N2 e& _9 I/ t

: G+ k6 f( v% U+ q- M# r( L魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。
+ V0 ^* j" Y  [5 b0 P—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート这个挺有乐趣可以自己慢慢享受摸索。
7 [4 L. O7 E' n$ n) a7 L% G  y8 n魔力私服,最新魔力宝贝私服技术交流
. @  J- Z2 p  _1 v( ], F魔力私服,最新魔力宝贝私服技术交流以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。

TOP

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

TOP

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

TOP

学习学习
0 d: g- O+ V: M; F( Z3 Q; i* B5 R—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート谢谢楼主分享经验

TOP

感谢楼主分享,顶!

TOP

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

TOP

发新话题