|
妖精
 
- UID
- 19808
- 精华
- 1
- 积分
- 332
- 威望
- 0 度
|
阁楼
大 中
小 发表于 2010-3-23 22:56 显示全部帖子
gmsv内部函数研究号召帖
一个人看gmsv看得好晕,还好gmsv内部各个函数的命名都是有规则和规范的,但是我一个人的力量毕竟很小* g8 K& U1 _# {. |% T# r5 ~
& r5 ~ d& d9 K1 r: Q7 R. ~—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート在此号召各位稍微有点汇编基础或者没有汇编基础又愿意学习汇编或者愿意深入了解gmsv内部的四面八方的研究同仁8 r* b1 ^0 \# m$ s- [' {( w% } Z0 o
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 D6 V+ }' H. p) ^3 M
我们一起来研究gmsv内部的函数吧!只要了解好了gmsv内部函数的运行机制,即入口参数,出口参数等等诸多内容以后
# A- \' }. J0 r$ z7 C7 x. @, p魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 S5 [5 K4 F% Z1 c5 z" i7 g
我们就有可能修改gmsv来创造出更好的东西!大家一起研究的话我觉得进步会快很多!
8 _, p; B0 B) ^+ b8 O; x
( C0 g: q/ D7 R. Z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート为抛砖引玉,我从IDA里面复制出一个示范的函数分析。期待大家无私奉献!!!
5 K- ` N S( h( s' u. R! F—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート妖城在线论坛4 Y; i1 m$ y4 T! d9 E# _) W* d
同时希望将此贴置顶?……
v! L+ p. r2 G2 Z9 o& E! H—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート妖城在线论坛5 J/ V, C# O8 e9 Q7 X
注:需使用到 反汇编工具IDA
. J: Q+ {2 p# X3 u# Q& I魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表bbs.mocwww.com: i( v1 V1 f/ z5 |
.text:08074098 ; =============== S U B R O U T I N E =======================================
8 \# Y f/ x8 v" j7 I) s6 S0 n/ b—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098# N( ]1 x( Y4 H W
.text:08074098 ; Attributes: bp-based frame魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ ?. q& @1 \! i* P1 ~% p
.text:08074098妖城在线论坛/ B+ j7 g4 c# N
.text:08074098 public CHAR_GetLevelExp妖城在线论坛9 J6 J) B- I, ~+ I, R( S1 W- [
.text:08074098 CHAR_GetLevelExp proc near ; CODE XREF: CHAR_LevelUpCheck+42p妖城在线论坛7 y+ ~0 u) E, S1 I: U
.text:08074098 ; CHAR_make_CP_String+517pbbs.mocwww.com2 }# B9 _* u e: S7 E& E
.text:08074098 ; CHAR_make_KP_String+5AAp妖城在线论坛2 q( X: {2 G. R7 o7 ~1 C; v
.text:08074098 ; PET_createPetFromCharaIndex+1BEp' ]1 T1 c2 A8 Y
.text:08074098 ; BATTLE_AttackEnergyDrain+1E1p5 h0 s: p. H( T% v! _& ~8 d& d
.text:08074098 ;这里是交叉参考,就是引用该函数的"上级"函数,暂时可以不用管,但是可以从这上面的函数看到入口参数—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ q# C9 W2 w5 I) u
.text:08074098 arg_0 = dword ptr 8
9 b, s2 X. k1 G. m& N0 Z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740983 Y8 C4 Z- J/ h- q3 A
.text:08074098 push ebp ; 函数功能:
( v- }( Z. S# O4 H5 X妖城在线论坛.text:08074098 ; 取得人物或者宠物下一级的升级经验值
! }6 V; l8 O& z5 k$ M9 V—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 ; 入口参数:等级值
2 }7 \7 ~1 w! j' R.text:08074098 ; 出口参数:eax即下一级的升级经验值—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 S6 W9 U# \- q
.text:08074099 mov ebp, esp
: u, B/ K+ N4 [; ]+ ^* s1 \1 o5 Gbbs.mocwww.com.text:0807409B mov edx, [ebp+arg_0] ; 将人物或者宠物的等级放到edx里7 l5 q9 ~. t( H) Q# K0 }
.text:0807409E cmp edx, 78h ; 与78h即120比较魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 F5 D: N; c2 G9 [" [$ l
.text:080740A1 jbe short loc_80740C0 ; 小于等于则跳转妖城在线论坛8 }1 V) T; {" w6 V# l$ \; P) G( R
.text:080740A3 cmp edx, 82h ; 与82h即130比较
! ~$ S/ o4 S$ G7 p! d, w6 u, Z妖城在线论坛.text:080740A9 jg short loc_80740B8 ; 大于则跳转—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! M8 a% f( D- p* T% A- K
.text:080740AB mov eax, edx ; 否则将等级值放入eax—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) A+ T. f8 |: n6 `
.text:080740AD imul eax, edx ; 2次方
- {" G/ a z/ F! G) R1 r* h" g魔力私服,最新魔力宝贝私服技术交流.text:080740B0 imul eax, edx ; 3次方
% s3 U+ Q L0 F; _+ i0 _8 w—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B3 imul eax, edx ; 存放经验值的eax = 等级的4次方' ^0 k3 Z" m5 n# z q; |
.text:080740B6
; Q# ]/ e, X; ]& u) A.text:080740B6 locret_80740B6: ; CODE XREF: CHAR_GetLevelExp+25j
, P R9 T( n, ~' s0 \5 m" ~) K7 E妖城在线论坛.text:080740B6 ; CHAR_GetLevelExp+2Fj
% [% D: }) q& L l/ Q; I魔力私服,最新魔力宝贝私服技术交流.text:080740B6 leave魔力私服,最新魔力宝贝私服技术交流( X; J; t$ C. E4 J& D0 x# n% @
.text:080740B7 retn魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! x% q( [/ i J; j% I
.text:080740B8 ; ---------------------------------------------------------------------------
[5 [$ |( j6 j魔力私服,最新魔力宝贝私服技术交流.text:080740B8
% b) q! x1 L, v' K' g) n! I8 U魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740B8 loc_80740B8: ; CODE XREF: CHAR_GetLevelExp+11j7 P i4 x8 j& }; X6 ?& g; \9 T
.text:080740B8 mov eax, 0FFFFFFFFh ; 大于130级则下一级升级经验为 -1
" c, d L* u2 _2 M8 W" dbbs.mocwww.com.text:080740B8 ; 游戏内看到的是一个 - 号
# w, M4 f6 H# U8 Z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BD jmp short locret_80740B6 ; 函数结束魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ b) E ?# v' J* F" U4 S
.text:080740BD ; ---------------------------------------------------------------------------$ n- s" P( c) \4 V
.text:080740BF align 10h—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) o( ^ ~9 R: d1 h6 C7 c8 b
.text:080740C0
$ w3 K$ U" b4 [) U$ s! J) R- n魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C0 loc_80740C0: ; CODE XREF: CHAR_GetLevelExp+9j魔力私服,最新魔力宝贝私服技术交流, }* D0 F7 a% |- q& y, c
.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] ; 小于等于120级则查验经验表
& R9 `8 E1 D! |) y. e/ f" C魔力私服,最新魔力宝贝私服技术交流.text:080740C0 ; 即LevelUpTbl
, u/ z5 {( K2 R4 g. obbs.mocwww.com.text:080740C7 jmp short locret_80740B6 ; 函数结束bbs.mocwww.com1 L. { v! S9 {- d. o: [
.text:080740C7 CHAR_GetLevelExp endp2 g* d; m5 q" P+ G& U% M, f9 B
.text:080740C7$ e* U E5 u8 q0 e* _' Q3 I* g! h0 x
.text:080740C7 ; ---------------------------------------------------------------------------
( ]# x Y6 ]0 D# m/ z% p魔力私服,最新魔力宝贝私服技术交流
" f ^' A4 m6 T
7 T* C7 @6 s' s5 E+ C8 ^魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
# ~7 |* A/ m0 A' t; }妖城在线论坛[ 本帖最后由 猪神的黄昏 于 2010-3-23 22:59 编辑 ]
|