发新话题
打印

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

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

没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
' j- H! t+ I0 T使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。
1 E. A: i7 j! F4 G5 ~( u8 z+ J
+ U. t8 V, f  S& h  C2 T! {0 {& r魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表用IDA载入gmsv,分析完成后进入Exports选项卡。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) k. s7 D: E% ?  j" f  v  |1 I
搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。 妖城在线论坛# i9 p0 N1 O5 O
.text:08074098                 public CHAR_GetLevelExp
7 y, f9 H5 j/ r+ k  e魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 CHAR_GetLevelExp:
9 M. o4 k" e% ?' @! X9 {9 g" [魔力私服,最新魔力宝贝私服技术交流.text:08074098                 push    ebp bbs.mocwww.com6 D; ?$ d* N9 i$ r* S
.text:08074099                 mov     ebp, esp
8 c$ c" W7 }, d- u, h$ g+ L.text:0807409B                 mov     edx, [ebp+8]
" Z$ N% I( }$ q% _, N( ~.text:0807409E                 cmp     edx, 7Eh . n4 f% ^0 R$ l8 h' z
.text:080740A1                 jbe     short loc_80740C0
$ ]/ i$ a' {9 S. `: mbbs.mocwww.com.text:080740A3                 push    ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 c5 t5 z7 g3 `& c& V$ C
.text:080740A4                 mov     ecx, 7
; S' B) R0 r, m" G( {妖城在线论坛.text:080740A9                 push    edx * I7 _  |! k+ Q0 L9 i# V; ?+ y
.text:080740AA                 mov     eax, edx 魔力私服,最新魔力宝贝私服技术交流: g! m$ n. ?; h  g
.text:080740AC                 imul    eax, edx
0 R; n/ `8 x( h- O, W5 Q. S' ?.text:080740AF                 imul    eax, edx ! c3 `% w- L5 B* H# s
.text:080740B2                 imul    eax, ecx
  e/ _) Y1 I; e$ `" U0 H6 K.text:080740B6 loc_80740B6:   9 M7 _- h& \" R* Q% a
.text:080740BE                 leave —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ c+ E* ?0 v( \4 _
.text:080740BF                 retn
  V5 B5 O% y1 S+ r魔力私服,最新魔力宝贝私服技术交流.text:080740C0 loc_80740C0:                           bbs.mocwww.com% O5 y& l! Z9 h1 S! j0 ?
.text:080740C0                 mov     eax, dword ptr LevelUpTbl[edx*4] 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; R7 o! H5 `8 ~
.text:080740C7                 jmp     short loc_80740B6
, D4 M* h: K9 A9 U1 |—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
" L' x+ l" K3 }) v: Fbbs.mocwww.com粗糙的解释下这段代码的意思 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: n- G- }: p8 z1 R4 c( f

& _) ]. m) L+ Y7 v$ fbbs.mocwww.comPush              edp
$ O0 g: d3 ]5 k8 Y) w—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov        ebp,esp
' A& M: `* D2 R6 L4 }. h  A—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートMov        edx,[ebp+8]
- [+ H, W- N% P% P1 V—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート获取当前等级的下一级存到edx 魔力私服,最新魔力宝贝私服技术交流/ x. K/ K+ g3 v* H* w+ @& |
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# G  K% c, M$ ], ]: }) I
Cmp              edx,7eh
3 g6 n" R% O* |" }, r* E% E—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート将edx与7eh也就是10进制数130比较 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: g) Y& Y2 h, e& F

8 [' a. P0 c/ g5 D- T: LJbe         shortloc_80740C0 5 T" P6 E' e3 Y$ G$ Z7 f6 l; W
如果edx小于7eh则进行跳转到80740C0 魔力私服,最新魔力宝贝私服技术交流* k( j3 G9 z2 H6 x" Z
) ~+ {/ f8 h# m* K5 J" [. E
Push       ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( h7 i; w5 j+ ]7 X, Q
Mov        ecx,7
3 Y8 g; N( _% _3 f. \4 \6 ]妖城在线论坛给ecx赋值7 妖城在线论坛7 a" v; h5 x( [- n

/ T' y$ V& m- \# Q) S魔力私服,最新魔力宝贝私服技术交流Push              edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ o5 V; w( g" o8 ]
Mov        eax,edx 妖城在线论坛1 O5 M) w+ \# a$ M* ?! a
把当前等级+1的值给eax
+ o+ u  C+ i  Q+ ~% C5 G& {1 O3 a妖城在线论坛—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ A$ F, d! P- p* E  K' G8 P; Y6 S
Imul              eax,edx
) o7 Q1 M8 X+ e' l—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート把eax与edx相乘,结果存在eax
5 d. K! E$ E) W+ D" l/ D妖城在线论坛魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% B: h# i' A2 n
Imul              eax,ecx
+ W, g' n  H$ V2 [9 r$ i妖城在线论坛把eax与ecx相乘,结果存在eax / k3 y9 h" p, O% d7 g8 z+ M$ s  f
! x7 L6 k7 n/ ~$ J! }
Leave 魔力私服,最新魔力宝贝私服技术交流9 l/ t5 W1 K/ I1 L
Retn bbs.mocwww.com  |: }  \/ \4 Z5 N' |, L! ^
退出这个过程吧,大概 bbs.mocwww.com5 g4 f' G: ]9 X$ ]& W. H
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 n- p. p' K' k( {
Mov        eax,dwordptrLevelUPtbl[edx*4] 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' }7 Y/ R9 G* g- x
这里是读取经验表的内容给eax,也就是查表读经验 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート; S- X* q  t) k$ W% e9 v. f- e+ Q! o

, O: U3 H: D  D) y1 e! \( O妖城在线论坛jmp     short loc_80740B6 妖城在线论坛) v- ?; \, g6 n. ]% Q
强制跳转到80740B6 妖城在线论坛6 L( ^1 {7 O  K3 s
* w4 ?. C1 L, W) I
好了,这段代码就这点意思,逻辑上不难理解。
+ L  q  Z8 P3 i7 |, x! M( |4 R" F& Xbbs.mocwww.com虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。 妖城在线论坛6 g- x: v' w2 E. w1 ~' R& ~
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* A) A3 t3 m. W/ ?
分析完了之后开始修改了,上面的代码具体作用如下:
+ {' J: S% I8 H0 X0 z魔力私服,最新魔力宝贝私服技术交流判断等级下一级是否小于7eh,是则跳转到查表。 4 _+ |7 F* r, {% I
否的话也就是大于7eh时,按照下面算法运算
/ x! p7 F6 W8 r. n  S( @魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A3                 push    ecx
* J: i. M6 d# [9 q% D7 u妖城在线论坛.text:080740A4                 mov     ecx, 7
% f7 Q& ~6 \0 m& [: ?  F6 G# Bbbs.mocwww.com.text:080740A9                 push    edx
) R, M4 N9 c, l8 p: L- \) o—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AA                 mov     eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ G0 E! @! D; S
.text:080740AC                 imul    eax, edx
" @' J2 i& q8 H7 a8 C* }; L! \妖城在线论坛.text:080740AF                 imul    eax, edx
  Z# U  Q! r2 a( d.text:080740B2                 imul    eax, ecx bbs.mocwww.com2 X1 X- G! ]! a% X( h! w
也就是eax的三次方乘以ecx,这里可以改成我想要的。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) c4 a0 ~, N  k+ P* t
. T- d1 ^; p2 ?! _$ X8 k2 e
我的目标是改称等级的四次方除以50,但是问题来了。
* |  a! W) {3 Q7 K& ~8 Q怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。
: P2 G' d. Y8 r5 ^" V魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
( n5 x# q/ M; Q% p& r魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098                 public CHAR_GetLevelExp
; z1 b4 g9 m4 B/ x- D  J/ F& J# _' x魔力私服,最新魔力宝贝私服技术交流.text:08074098 CHAR_GetLevelExp:
4 Y0 _! o1 H. ^" d3 a/ G% B.text:08074098               妖城在线论坛: V# m2 C2 n# v1 Q3 N8 I4 s
.text:08074098                 push    ebp
  w+ X% s1 M1 o.text:08074099                 mov     ebp, esp 魔力私服,最新魔力宝贝私服技术交流7 e* l' @6 N) D/ y
.text:0807409B                 mov     edx, [ebp+8]
. f' V7 G" M: |' S妖城在线论坛.text:0807409E                 cmp     edx, 0FFh
: u4 J/ n5 E1 P; X, s—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A4                 jg      short loc_80740C0
# a' b. Y9 D+ v- H2 t% z: J6 P' Tbbs.mocwww.com.text:080740A6                 push    ecx : c4 g, q/ F' y: n+ m
.text:080740A7                 mov     ecx, 32h
; K( a4 I- o/ P魔力私服,最新魔力宝贝私服技术交流.text:080740AC                 push    edx   W* i7 w. }5 ~4 r
.text:080740AD                 mov     eax, edx
0 r# g+ _5 h$ X.text:080740AF                 imul    eax, edx
8 a! \0 h3 c# |4 V7 a$ R+ @bbs.mocwww.com.text:080740B2                 imul    eax, edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; U/ O) R* m! Q% [0 u5 A( y( R: {" ^
.text:080740B5                 cdq
9 L9 B/ k( u6 ^6 C0 N# S.text:080740B6                 idiv    ecx
5 S5 p& o# @' w—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B8                 mov     edx, [ebp+8]
  a2 ]9 ^* [. m+ W) s妖城在线论坛.text:080740BB                 imul    eax, edx 妖城在线论坛5 N6 ?, U- q8 Q  F7 g
.text:080740BE . u/ |  N' o4 ^5 Y) W0 x
.text:080740BE locret_80740BE:                     魔力私服,最新魔力宝贝私服技术交流1 {! {% v: i  O" B2 ]* o% a% L
.text:080740BE                 leave
/ X. P/ G2 `* H  u魔力私服,最新魔力宝贝私服技术交流.text:080740BF                 retn bbs.mocwww.com7 s8 G$ u! W* T* q$ Q8 D
.text:080740C0 loc_80740C0:                        
9 f* R2 I5 r' u妖城在线论坛.text:080740C0                 mov     eax, 0FFFFFFFFh
; V# N' r, j' i) T+ Wbbs.mocwww.com.text:080740C5                 jmp     short locret_80740BE
' M! N, }8 T9 [# `, W魔力私服,最新魔力宝贝私服技术交流魔力私服,最新魔力宝贝私服技术交流* ?# W6 [! {5 q0 [8 B! I% O" e
方便起见这里直接把我改好的代码贴出来,与原来不同的地方: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ k3 ~7 B( b3 f( A! ]3 Z1 P# O! U
Cmp              edx,0FFh 魔力私服,最新魔力宝贝私服技术交流6 k$ z4 ^+ Q6 A
Jg           shortloc_8074C0
% e$ M; j- a0 {2 q. ^& |* R魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表判断等级是否大于255是的话跳转80740C0 5 q  {# w* M3 Q* b4 `% _
否的话进入我们的等级公式: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ g3 ]! n3 J5 ]! L' F
(等级*等级*等级除以50)*等级
4 I" j3 w0 F" z也就是等级三次方除以50再乘以等级 9 _0 ^' P9 n( X& l# P. x
为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。 妖城在线论坛3 r* Y8 P% a$ A& l' n) b. }
216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ q- ]; z+ [, T4 U; I  ?" E
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。
, u4 w+ X& W8 W8 E& O0 |魔力私服,最新魔力宝贝私服技术交流bbs.mocwww.com/ L! p! V; E0 e2 \$ H" F3 f- q% O
接下去做公式:
+ c. ~- p3 G; |1 z/ H/ O—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートPush              ecx,32h          这里是经验倍率,就是公服经验除以ecx等于你的经验
+ z# n2 j$ H5 M# C; v( m魔力私服,最新魔力宝贝私服技术交流Mov        eax,edx      将下一等级的值赋值给eax ) n" s' j" v$ F2 Y
Imul              eax,edx          将eax,edx相乘,结果存到eax 1 X" L6 q9 e2 B
Imul              eax,edx          同上
# F4 ?% n1 ?" Xbbs.mocwww.comCdq                             这个做除法不加就会出错,用户登录后服务器当机 妖城在线论坛; s/ v) p" d) {$ l
Idiv        ecx                eax除以32h算到50倍经验 魔力私服,最新魔力宝贝私服技术交流$ S+ t  u- U% B3 U7 N6 f6 V
Mov        edx,[ebp+8]    从新获取下一等级的值
+ p" K2 h5 m) n8 f! Tbbs.mocwww.comImul              eax,edx          将eax,edx相乘,结果存到eax 妖城在线论坛- z5 V! C5 v( ^8 K, Y9 H# @
bbs.mocwww.com5 v$ Q! R% K& z1 ?8 J9 ~
好了,这样就完成了运算过程。
: }7 f3 x, U& [) J# S妖城在线论坛魔力私服,最新魔力宝贝私服技术交流$ ?( ^  V% t8 h/ ~$ m! b6 A) N
.text:080740C0 loc_80740C0:                         bbs.mocwww.com7 x, T7 b& U+ K  U! o( S
mov     eax, 0FFFFFFFFh
0 K% ]. N( i5 V3 w! |; N; g3 ]魔力私服,最新魔力宝贝私服技术交流jmp     short locret_80740BE
' V/ w7 U0 `" I4 D4 A魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表这一段代码就是等级超过你设置的上限之后返回-1。
- Y. H9 s+ ]9 ~魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表妖城在线论坛9 y& e/ T; M8 u: |

8 v$ l1 g) Z; y0 x% Q# q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ w* e. ]7 _: M  Q& y
这里就要用到FlexHex了。 bbs.mocwww.com  X7 ?! z# z+ l# ^2 d, |

& K' Z: x- E( r' g魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。 bbs.mocwww.com& S# Z2 n7 B4 }: I
如下对应: 妖城在线论坛! b' M4 k. {. N" C2 Z* ~' c
Cmp              edx,0ffh                       81  FA  FF  00  00  00
! i6 i! I% d& u5 Q; |; V/ wjg      short loc_80740C0         71  FA
/ C' X" s1 v- i3 [5 b魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表mov     ecx, 32h                      B9  32  00  00  00 bbs.mocwww.com7 T- j  i5 r( j3 t; r

" H- O" |% h) V2 B: }- ?魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 O' v2 M, p" l3 w7 J
这个挺有乐趣可以自己慢慢享受摸索。
+ t/ x# c# I5 U2 T" D魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
: O/ U/ Z! \' q1 O以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。

TOP

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

TOP

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

TOP

学习学习魔力私服,最新魔力宝贝私服技术交流5 _. F+ A- C; ]" y
谢谢楼主分享经验

TOP

感谢楼主分享,顶!

TOP

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

TOP

发新话题