|
妖精
 
- UID
- 19808
- 精华
- 1
- 积分
- 332
- 威望
- 0 度
|
阁楼
大 中
小 发表于 2010-3-23 22:56 只看该作者
gmsv内部函数研究号召帖
一个人看gmsv看得好晕,还好gmsv内部各个函数的命名都是有规则和规范的,但是我一个人的力量毕竟很小妖城在线论坛' G3 J1 ~6 K7 V& O( K7 ~
魔力私服,最新魔力宝贝私服技术交流- d5 f# c/ i2 r. h0 o2 @
在此号召各位稍微有点汇编基础或者没有汇编基础又愿意学习汇编或者愿意深入了解gmsv内部的四面八方的研究同仁
0 F1 |- k& f9 k( h8 i! ]# U: G—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート妖城在线论坛! q9 K, J4 }1 H) n7 K4 D
我们一起来研究gmsv内部的函数吧!只要了解好了gmsv内部函数的运行机制,即入口参数,出口参数等等诸多内容以后—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ J4 n% P& N+ {! p ~, p* V: p5 g
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, U2 e. @2 q3 I8 K7 U
我们就有可能修改gmsv来创造出更好的东西!大家一起研究的话我觉得进步会快很多!. j) X6 E! J! Z) M X5 V
4 ]5 C1 k8 q: _4 a4 ^+ |
为抛砖引玉,我从IDA里面复制出一个示范的函数分析。期待大家无私奉献!!!
% H, H" G8 F% o9 h$ ^3 b2 J) g) J( j魔力私服,最新魔力宝贝私服技术交流
+ d0 ~! Q2 a, j) H- v# n—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート同时希望将此贴置顶?……妖城在线论坛4 _4 u N2 B+ C) ?
% V" r8 ~& j6 J+ i5 z魔力私服,最新魔力宝贝私服技术交流注:需使用到 反汇编工具IDA妖城在线论坛# w1 Q- S) X, ]- v2 N
bbs.mocwww.com* c6 H; e; H9 l. r
.text:08074098 ; =============== S U B R O U T I N E =======================================—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: e6 P. u( w& m3 j$ s- r
.text:08074098bbs.mocwww.com: g& o2 n; s* f9 }% b, z/ j6 f
.text:08074098 ; Attributes: bp-based frame
$ ~3 j7 s# x3 F$ f; y$ s9 q! @bbs.mocwww.com.text:08074098魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ Y- l8 b% A0 g) x- G0 p
.text:08074098 public CHAR_GetLevelExp魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. r2 y+ B! V6 j5 B& x! n
.text:08074098 CHAR_GetLevelExp proc near ; CODE XREF: CHAR_LevelUpCheck+42p
* L' N: X: v( t* k8 n魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 ; CHAR_make_CP_String+517p
8 A% H i4 f7 Y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 ; CHAR_make_KP_String+5AAp
, _" F4 \, ~* M( v% E. v.text:08074098 ; PET_createPetFromCharaIndex+1BEp
* T. L8 r {: X: b* j- K; _魔力私服,最新魔力宝贝私服技术交流.text:08074098 ; BATTLE_AttackEnergyDrain+1E1p
: l3 T* v9 R, [, y* s8 z) H1 X妖城在线论坛.text:08074098 ;这里是交叉参考,就是引用该函数的"上级"函数,暂时可以不用管,但是可以从这上面的函数看到入口参数魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" d2 `/ K: J" f1 e
.text:08074098 arg_0 = dword ptr 8魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. m n% z5 o9 g8 z" t1 _: w- z
.text:08074098
2 {& w: p+ H4 v% O# @* b.text:08074098 push ebp ; 函数功能:
( d( S! i* V( i$ j妖城在线论坛.text:08074098 ; 取得人物或者宠物下一级的升级经验值
& v$ b$ B) F7 t$ I% F3 |( M魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 ; 入口参数:等级值8 [* p) M) c9 ~" |
.text:08074098 ; 出口参数:eax即下一级的升级经验值
& W ` l6 g5 C4 \/ e g) |: }& J" I.text:08074099 mov ebp, esp
, ^; e' ` l. J" c魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:0807409B mov edx, [ebp+arg_0] ; 将人物或者宠物的等级放到edx里
6 ^1 @' B) V/ p0 a8 ^4 p0 R& _妖城在线论坛.text:0807409E cmp edx, 78h ; 与78h即120比较魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 x/ j2 Q# P- Q8 O1 w1 `5 c
.text:080740A1 jbe short loc_80740C0 ; 小于等于则跳转—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ `! g5 x5 I D( b8 ]
.text:080740A3 cmp edx, 82h ; 与82h即130比较
1 L+ f8 @$ @( S+ Z" N魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740A9 jg short loc_80740B8 ; 大于则跳转
! K5 _3 k" S" }7 T$ q! T( c妖城在线论坛.text:080740AB mov eax, edx ; 否则将等级值放入eax—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* H- y! R0 O0 |& `8 { {
.text:080740AD imul eax, edx ; 2次方
7 \2 x2 B* O7 M; v) r.text:080740B0 imul eax, edx ; 3次方
( a* C" `! u$ H% W% V妖城在线论坛.text:080740B3 imul eax, edx ; 存放经验值的eax = 等级的4次方
6 ~: x6 O( V5 P4 r( t( E.text:080740B6
) Z3 _" p, I6 i0 F魔力私服,最新魔力宝贝私服技术交流.text:080740B6 locret_80740B6: ; CODE XREF: CHAR_GetLevelExp+25j妖城在线论坛- A, n+ a# @' n. M& @5 g
.text:080740B6 ; CHAR_GetLevelExp+2Fj魔力私服,最新魔力宝贝私服技术交流3 P! I$ `' {) W* j
.text:080740B6 leave妖城在线论坛3 Y0 n) g& S, U7 R7 Y4 `4 }
.text:080740B7 retn
( c! L a7 X' f8 q% [& r( z魔力私服,最新魔力宝贝私服技术交流.text:080740B8 ; ---------------------------------------------------------------------------
4 {. I( O; S7 L" Z, L$ v$ V( mbbs.mocwww.com.text:080740B8魔力私服,最新魔力宝贝私服技术交流* b1 W8 J+ `/ x. M1 W0 _
.text:080740B8 loc_80740B8: ; CODE XREF: CHAR_GetLevelExp+11j
" @, t7 h5 F, R: [3 |7 V妖城在线论坛.text:080740B8 mov eax, 0FFFFFFFFh ; 大于130级则下一级升级经验为 -1魔力私服,最新魔力宝贝私服技术交流' [- O& A1 b' W5 U, t" a
.text:080740B8 ; 游戏内看到的是一个 - 号—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 C4 w+ e$ m: j. q) A1 o
.text:080740BD jmp short locret_80740B6 ; 函数结束
$ e' ], f% A7 C: ^# s4 K1 Y.text:080740BD ; ---------------------------------------------------------------------------bbs.mocwww.com4 ~- p" V$ }; Y/ y Z& X9 W
.text:080740BF align 10h8 }; \* v: f2 }& M
.text:080740C07 F' n @2 M3 b" G s; [
.text:080740C0 loc_80740C0: ; CODE XREF: CHAR_GetLevelExp+9j
( J6 ~8 A7 h, \% c$ \- F—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] ; 小于等于120级则查验经验表bbs.mocwww.com5 c1 R) z! Q, a5 A. J, V; P2 Q
.text:080740C0 ; 即LevelUpTbl魔力私服,最新魔力宝贝私服技术交流; |5 j2 L6 k, }
.text:080740C7 jmp short locret_80740B6 ; 函数结束bbs.mocwww.com' a |( p: _+ H; n2 a! O; m9 q
.text:080740C7 CHAR_GetLevelExp endp
+ B# C8 y5 H5 V8 s! d2 g7 ^魔力私服,最新魔力宝贝私服技术交流.text:080740C7
/ e- |0 f9 k7 G—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C7 ; ---------------------------------------------------------------------------bbs.mocwww.com3 a5 n7 }9 _% N8 ^. N( w
2 S; \' q- T. b9 k- Bbbs.mocwww.com
8 _' P" [, p! f- R8 M, n( v& I8 M. M
[ 本帖最后由 猪神的黄昏 于 2010-3-23 22:59 编辑 ]
|