没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。
没有汇编语言基础,参照网上无数教程和相关资料,修改GMSV文件的一些心得体会。 魔力私服,最新魔力宝贝私服技术交流/ _. V1 ^, O+ r5 v( d8 I
使用软件IDA,FlexHEX。参考工具AsmFun(汇编指令查询器)Fun_1.2,asm2Shellcode等。
/ o" [' o$ f9 e4 h& @魔力私服,最新魔力宝贝私服技术交流/ K/ R8 J6 ~9 s% j
用IDA载入gmsv,分析完成后进入Exports选项卡。
4 d# H; l" O' B0 n/ Pbbs.mocwww.com搜索levelexp找到一个名为CHAR_GetLevelExp的子程序。
# `) i. c# f5 V妖城在线论坛.text:08074098 public CHAR_GetLevelExp —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% x8 m& I( x4 A& o* I
.text:08074098 CHAR_GetLevelExp:
3 m' v; n* K! e" b0 W; `! Vbbs.mocwww.com.text:08074098 push ebp
0 C; t5 @" p* d8 S! k' B妖城在线论坛.text:08074099 mov ebp, esp
# t3 {# ^, R5 o# ~& R8 Z: bbbs.mocwww.com.text:0807409B mov edx, [ebp+8]
% o( j& u9 |+ U6 v4 N0 h& s! t魔力私服,最新魔力宝贝私服技术交流.text:0807409E cmp edx, 7Eh ( k- x _% [" h, ^$ M8 e/ J
.text:080740A1 jbe short loc_80740C0
( a3 e0 C; B- d, Q; w; O& C魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A3 push ecx 2 L% O4 z5 P3 L: Z& o! X# X
.text:080740A4 mov ecx, 7
T1 y- _# }6 B, C妖城在线论坛.text:080740A9 push edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* m* x1 p* L, Q1 s& b% f& v
.text:080740AA mov eax, edx - i) z' h; g. v9 _
.text:080740AC imul eax, edx
`2 q S9 x1 _$ |bbs.mocwww.com.text:080740AF imul eax, edx
: s& a7 B [8 [5 h$ I0 Y; ~8 F—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B2 imul eax, ecx 1 K, R4 `9 y/ [! d) z
.text:080740B6 loc_80740B6:
6 K6 {# ~/ F- i; {魔力私服,最新魔力宝贝私服技术交流.text:080740BE leave —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 R. k% S# K: @3 d7 ]$ w$ c/ P' O
.text:080740BF retn
z, i( u9 S5 c- wbbs.mocwww.com.text:080740C0 loc_80740C0: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 W3 D; H* @. M
.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4]
% w5 s& Y% g( n& @$ u妖城在线论坛.text:080740C7 jmp short loc_80740B6 妖城在线论坛6 F" m( N4 M' Q3 [' s
魔力私服,最新魔力宝贝私服技术交流0 C6 q8 j2 E0 R3 T8 ~3 b- |
粗糙的解释下这段代码的意思
@/ f, m4 {1 G0 u- ]! a4 ?) x妖城在线论坛
P! o" p1 v5 y2 Q7 v6 s8 |Push edp
5 i% y$ ]1 y% E7 Ibbs.mocwww.comMov ebp,esp
! [# J9 i6 L2 nbbs.mocwww.comMov edx,[ebp+8] 5 t2 w4 l" X' f+ Y3 e6 Y
获取当前等级的下一级存到edx bbs.mocwww.com8 b+ {9 k/ e, H+ K' i5 P& G2 I
, k8 s$ }! b }( Z. H魔力私服,最新魔力宝贝私服技术交流Cmp edx,7eh " `3 J& F* d$ n {* K s
将edx与7eh也就是10进制数130比较 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. J: M% C7 z% N; B# l3 i7 W
5 z! h; g% N5 L, L. r, p! S9 k
Jbe shortloc_80740C0
, ^+ T/ P2 C' v: Y4 [0 T( [) k# @" y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如果edx小于7eh则进行跳转到80740C0
- `" d+ E2 A# n+ A% }妖城在线论坛
( J9 F6 w( Z* a# S3 a妖城在线论坛Push ecx
& ~* c; f) X# x, x9 F% pMov ecx,7
; b5 ~2 y! {1 P* Gbbs.mocwww.com给ecx赋值7 8 k6 i' ]6 c( `! |$ A, B% E" x4 [
$ N' `/ b) L- O7 w7 q) [0 j6 F- `2 C
Push edx
' K1 D- R7 H% k6 E& R# M6 C2 uMov eax,edx —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート9 h/ _ l6 g0 f7 g8 |2 f* r
把当前等级+1的值给eax 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 W$ a# x* s) w1 k
bbs.mocwww.com" R5 w' |* T+ M( w9 Z0 Q
Imul eax,edx
) h) s* j9 G7 i, R5 N6 K8 l% v* Q' Q& t—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート把eax与edx相乘,结果存在eax
* a9 H: _2 M( D0 J1 Y7 N魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 }7 W$ r0 W+ `0 s8 r
Imul eax,ecx
+ B2 f+ N- `6 h# v- v# U1 g7 A5 o' y魔力私服,最新魔力宝贝私服技术交流把eax与ecx相乘,结果存在eax
! S" m" Z8 S7 Z0 g" Z8 Z
9 [* { Z; n, C% |$ ?+ l4 o0 K% dLeave 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! a D$ Z2 R9 o4 l: _: L
Retn
2 G2 L' V# H! m魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表退出这个过程吧,大概 bbs.mocwww.com6 \5 I* M2 I' E& R# R9 d
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# a+ ^! |/ J7 }$ U, e
Mov eax,dwordptrLevelUPtbl[edx*4]
, \. y" M0 i/ j! Z: B$ |8 H! _妖城在线论坛这里是读取经验表的内容给eax,也就是查表读经验 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 H% [2 Y- [: y$ m, s
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* c" w& r+ ?% u
jmp short loc_80740B6
! P: V3 O. [6 H6 E7 }bbs.mocwww.com强制跳转到80740B6 妖城在线论坛% t% k# O7 ~* E# W) I* N$ G9 f$ M
妖城在线论坛7 M! r! ^( m1 A$ J4 T
好了,这段代码就这点意思,逻辑上不难理解。 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート5 I+ E/ B) ~* e5 e( n) y
虽然刚开始的时候我也是一头雾水,但是不要紧,随着一步步地摸索自然就会理解了。 - v+ w+ M/ K, D. i/ G
/ `4 y+ G3 E+ S1 s7 \魔力私服,最新魔力宝贝私服技术交流分析完了之后开始修改了,上面的代码具体作用如下: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 ~# h6 }# [; v% P
判断等级下一级是否小于7eh,是则跳转到查表。 " g1 r. ?2 s7 O2 {0 z. m
否的话也就是大于7eh时,按照下面算法运算 —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 m8 d7 W) z0 [& B
.text:080740A3 push ecx
2 f* C1 Z' I/ I9 m5 i7 v.text:080740A4 mov ecx, 7 魔力私服,最新魔力宝贝私服技术交流& P5 [; q) I/ y+ |
.text:080740A9 push edx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# y V1 I6 J+ J9 k( |3 u: q
.text:080740AA mov eax, edx 妖城在线论坛. n$ B9 x2 T* B5 u. Y
.text:080740AC imul eax, edx
& a: T' L# c3 r8 Z& ^2 l" Z7 S: Z妖城在线论坛.text:080740AF imul eax, edx 4 A1 N1 B+ B" F2 J
.text:080740B2 imul eax, ecx bbs.mocwww.com' V5 g5 o: r7 O! r
也就是eax的三次方乘以ecx,这里可以改成我想要的。 妖城在线论坛' h/ w$ G x# L- y
' M5 h% x% v8 A0 F9 o% \5 d6 \bbs.mocwww.com我的目标是改称等级的四次方除以50,但是问题来了。 魔力私服,最新魔力宝贝私服技术交流, K- Q4 `7 I9 K: A
怎么做除法,怎么写代码到反汇编里,一步步来,先列出想要的代码。 魔力私服,最新魔力宝贝私服技术交流1 m+ T0 L% ~& q7 r0 V2 \" j2 r) w
) k s: u2 |, d* |; c—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 public CHAR_GetLevelExp 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! _6 H$ x7 F& C
.text:08074098 CHAR_GetLevelExp: 魔力私服,最新魔力宝贝私服技术交流! J% K9 U' f2 L- o9 C
.text:08074098 - d. S, e6 U, Z2 p$ N" G3 u
.text:08074098 push ebp bbs.mocwww.com$ v5 u0 Y% |0 N: a% h- |/ p p" {
.text:08074099 mov ebp, esp bbs.mocwww.com6 X& b8 D' C# h/ V5 J5 w- ~" N& q
.text:0807409B mov edx, [ebp+8]
2 U& l+ O1 P9 _6 A. U1 s% E' ~9 g—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:0807409E cmp edx, 0FFh
5 d0 N2 y3 ]% D T; I7 x. l3 o魔力私服,最新魔力宝贝私服技术交流.text:080740A4 jg short loc_80740C0
9 t6 V; j3 e' \6 q/ v. Y5 T魔力私服,最新魔力宝贝私服技术交流.text:080740A6 push ecx 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 t/ S( q" x5 _5 H2 K
.text:080740A7 mov ecx, 32h
) e! |( P C) x—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740AC push edx
7 b. D/ ^9 X L% G6 R4 r5 y.text:080740AD mov eax, edx
' M: V# _" B* w+ O# ^2 b R$ W7 m0 u妖城在线论坛.text:080740AF imul eax, edx 魔力私服,最新魔力宝贝私服技术交流+ D0 I1 W3 _+ K O: c& `5 V/ l
.text:080740B2 imul eax, edx
7 `8 R& @; U8 m9 u. f7 T( `8 r+ T$ t魔力私服,最新魔力宝贝私服技术交流.text:080740B5 cdq bbs.mocwww.com1 G1 e2 u8 x# b# I4 k2 W$ X4 C3 G
.text:080740B6 idiv ecx bbs.mocwww.com8 ~- s5 T' X6 Y, L
.text:080740B8 mov edx, [ebp+8] 妖城在线论坛" m; {8 P+ a( H! ]. b* z& I; N( n
.text:080740BB imul eax, edx bbs.mocwww.com( L* E; B5 J" p$ T0 ]' n3 r5 w
.text:080740BE
! W$ T$ F0 K# d. m* S, V6 i魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BE locret_80740BE: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# C9 `1 O! q7 ~ F& T: C R5 i0 G/ S
.text:080740BE leave 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: l4 p0 _9 p# V$ U6 w9 ^1 z
.text:080740BF retn
& ?, Z0 b7 G+ h& Q' E魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C0 loc_80740C0:
8 ]! c3 k/ V- r1 z/ B2 G' h Kbbs.mocwww.com.text:080740C0 mov eax, 0FFFFFFFFh 妖城在线论坛& T! ?. A, l( W, K* k- Z, U" x; R
.text:080740C5 jmp short locret_80740BE 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 V7 W& O J+ `8 q/ J3 `# x
7 j, n" \7 o" F& ~2 O% v' V妖城在线论坛方便起见这里直接把我改好的代码贴出来,与原来不同的地方:
6 y l; S+ \3 l2 Z& }bbs.mocwww.comCmp edx,0FFh
& U& L/ o' j+ \* N* q6 h+ E( Nbbs.mocwww.comJg shortloc_8074C0
* o+ J1 w+ B/ C. E魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表判断等级是否大于255是的话跳转80740C0
4 B; s5 d$ a0 a" }6 T P0 c# ?否的话进入我们的等级公式:
; n0 D% }) h7 T! a- F I, q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表(等级*等级*等级除以50)*等级 0 N" j0 b: N% u; p% ?4 [ m
也就是等级三次方除以50再乘以等级
& Q2 u) ?8 N4 `6 p魔力私服,最新魔力宝贝私服技术交流为什么要这么做而不是直接四次方乘以50是因为防止溢出数据。 魔力私服,最新魔力宝贝私服技术交流- M# m/ w3 k9 V" h1 W
216的四次方是2176782336,这个数字正好可以让下级经验变负,呵呵。 妖城在线论坛. T% {, Q! {+ x3 n. U- H
所以先除50再乘到第四次方的时候就不会变负了,这是我摸索了很久突然领悟的真理。 bbs.mocwww.com7 c k/ f0 O+ J) u4 p! N; g @
0 x! P" x( P7 d5 F& n接下去做公式: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 k" j+ Y1 V- K5 F& K
Push ecx,32h 这里是经验倍率,就是公服经验除以ecx等于你的经验 妖城在线论坛8 `# p, P# l6 L5 M2 T; i+ ~
Mov eax,edx 将下一等级的值赋值给eax
7 u& f+ h+ ]' o$ x+ p魔力私服,最新魔力宝贝私服技术交流Imul eax,edx 将eax,edx相乘,结果存到eax
0 v; q" l0 a/ g- V) l# @魔力私服,最新魔力宝贝私服技术交流Imul eax,edx 同上 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 S- r* |+ \* ~2 R. e
Cdq 这个做除法不加就会出错,用户登录后服务器当机
* @# W7 G# s t `) {1 H; Tbbs.mocwww.comIdiv ecx eax除以32h算到50倍经验 魔力私服,最新魔力宝贝私服技术交流9 W. O, F6 R5 c! n+ v
Mov edx,[ebp+8] 从新获取下一等级的值
" F: k1 i) \; Y, l8 v—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートImul eax,edx 将eax,edx相乘,结果存到eax 7 W6 N# d( X% h! ]+ W" o1 `
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表# {1 N ]$ W# n/ J# A$ r1 B" H
好了,这样就完成了运算过程。
: Q6 M" g& [0 k8 S+ p& D3 ]) ?—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ d. a, l7 k# ^
.text:080740C0 loc_80740C0: —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% T2 W5 _+ X Q5 C7 J
mov eax, 0FFFFFFFFh bbs.mocwww.com t6 L% |( m% Z' g+ l1 p. a
jmp short locret_80740BE
( ]' W0 i9 j6 P: S; l) l这一段代码就是等级超过你设置的上限之后返回-1。
$ C$ ~6 O5 _" ^* U4 l/ y: Y* b妖城在线论坛
+ v9 E* y5 H8 D8 _" |1 {9 b—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# b& S m+ s+ ]7 W) J$ n' B
下面有个很严重的问题,新手比较难适应的就是如何写入你的代码。
, h' G) e0 j# b, Y魔力私服,最新魔力宝贝私服技术交流这里就要用到FlexHex了。
' E: |0 N3 p) k7 v; o# |妖城在线论坛
+ M+ C! W6 E3 V6 E9 ]7 k% Bbbs.mocwww.com首先将我们的汇编代码转成机器码,这一步需要非常的耐心细致。
: }1 p% H: E% F g—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如下对应: 魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; |* s0 p8 a2 S# s, G. y
Cmp edx,0ffh 81 FA FF 00 00 00 bbs.mocwww.com* b) ~1 d0 k0 Q8 r- n! E
jg short loc_80740C0 71 FA 2 ^' |. y4 j% b8 g3 S9 h# W: ~3 E: ^
mov ecx, 32h B9 32 00 00 00 妖城在线论坛9 L% b# f( F; b. F) p; ~* j
" b Y/ X) b7 g4 S* L7 Q0 L8 m魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表依次类推,都可以在IDA中搜索到你要的代码然后做相应修改。 bbs.mocwww.com; J6 u+ o! q- M4 y5 Y/ v# P' }& ]4 {/ H5 A5 b
这个挺有乐趣可以自己慢慢享受摸索。
' |! L' J- X( S1 X6 \, G$ Rbbs.mocwww.com
) x4 ]8 W3 @) a0 L: ebbs.mocwww.com以上是我通宵玩了20多小时的个人心得体会,谢谢网上一些老人们的教程给了我很多指引和启示。