|
妖精
 
- UID
- 19808
- 精华
- 1
- 积分
- 332
- 威望
- 0 度
|
阁楼
大 中
小 发表于 2010-3-23 22:56 只看该作者
gmsv内部函数研究号召帖
一个人看gmsv看得好晕,还好gmsv内部各个函数的命名都是有规则和规范的,但是我一个人的力量毕竟很小
! C: t9 Y0 a6 y4 g$ [2 I魔力私服,最新魔力宝贝私服技术交流魔力私服,最新魔力宝贝私服技术交流7 }+ t Y6 u7 t5 I
在此号召各位稍微有点汇编基础或者没有汇编基础又愿意学习汇编或者愿意深入了解gmsv内部的四面八方的研究同仁妖城在线论坛4 p4 _0 K, O0 J
9 K$ I! v+ X2 q+ ?1 ibbs.mocwww.com我们一起来研究gmsv内部的函数吧!只要了解好了gmsv内部函数的运行机制,即入口参数,出口参数等等诸多内容以后) `& Y* A$ }; I J* J0 V1 r
! I5 u( u# p _9 e. T; \6 g妖城在线论坛我们就有可能修改gmsv来创造出更好的东西!大家一起研究的话我觉得进步会快很多!—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ e( E5 ^6 n! z6 k
, s8 j+ P; r0 Q# {魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表为抛砖引玉,我从IDA里面复制出一个示范的函数分析。期待大家无私奉献!!!
, B& N5 ?- J. W& {1 W2 G—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 s1 D& E8 ~( S' i0 B
同时希望将此贴置顶?……
2 _& \0 M% B# k妖城在线论坛魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 c4 g* t8 @' Y0 i% }
注:需使用到 反汇编工具IDA
% q) p& ~0 Z8 F/ P9 c; E8 [1 Q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
+ r3 V- q; Y" s# H# C+ j魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 ; =============== S U B R O U T I N E =======================================
. B; C, W# I# M* I0 B) H: nbbs.mocwww.com.text:08074098
5 A# z @- g' `6 Q; v2 B A—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 ; Attributes: bp-based frame魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ d# K+ F: W8 k1 i p- |/ j' \
.text:08074098妖城在线论坛* s$ ]% U9 u4 a
.text:08074098 public CHAR_GetLevelExp
# c/ _8 U0 l1 ]* N* h- Y0 l魔力私服,最新魔力宝贝私服技术交流.text:08074098 CHAR_GetLevelExp proc near ; CODE XREF: CHAR_LevelUpCheck+42p
7 i0 h$ W) `% p5 ^* g( x魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 ; CHAR_make_CP_String+517p
. \! n' y" Y- L6 `& U( ]—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 ; CHAR_make_KP_String+5AAp
6 s3 E$ N+ o" X( `' f: `妖城在线论坛.text:08074098 ; PET_createPetFromCharaIndex+1BEp
# m- i- @( k6 V# b7 N' kbbs.mocwww.com.text:08074098 ; BATTLE_AttackEnergyDrain+1E1p
$ W* a5 e9 p7 B* b' I妖城在线论坛.text:08074098 ;这里是交叉参考,就是引用该函数的"上级"函数,暂时可以不用管,但是可以从这上面的函数看到入口参数
( L- }* w4 |" v9 A. E/ u5 o( [魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 arg_0 = dword ptr 8
0 h1 k( Q/ k, `) ^, d9 K: T) x—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098
$ {8 ]4 ~) W$ R9 ]魔力私服,最新魔力宝贝私服技术交流.text:08074098 push ebp ; 函数功能:& u- F8 p' g( z
.text:08074098 ; 取得人物或者宠物下一级的升级经验值魔力私服,最新魔力宝贝私服技术交流* @& ]8 a0 [8 I7 n @7 v
.text:08074098 ; 入口参数:等级值
* p2 R5 Y8 _4 ^7 h妖城在线论坛.text:08074098 ; 出口参数:eax即下一级的升级经验值魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; i6 w+ \" e* w( V( l
.text:08074099 mov ebp, esp6 l$ }8 R9 E. q F' @) F6 K: f- v
.text:0807409B mov edx, [ebp+arg_0] ; 将人物或者宠物的等级放到edx里
7 v; D! `2 r8 T; f.text:0807409E cmp edx, 78h ; 与78h即120比较
0 O0 Q5 ]' v& ?. B魔力私服,最新魔力宝贝私服技术交流.text:080740A1 jbe short loc_80740C0 ; 小于等于则跳转妖城在线论坛5 N4 C, g# F: e/ s! }: [
.text:080740A3 cmp edx, 82h ; 与82h即130比较妖城在线论坛$ t6 v3 J3 ?9 q0 _
.text:080740A9 jg short loc_80740B8 ; 大于则跳转
- f4 |4 i2 Y$ d" l.text:080740AB mov eax, edx ; 否则将等级值放入eax魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 \9 i( O# q; d7 H0 Y' l
.text:080740AD imul eax, edx ; 2次方
: i: R+ F5 O3 d7 @.text:080740B0 imul eax, edx ; 3次方
, S( l; \" @* M, j. ^+ E妖城在线论坛.text:080740B3 imul eax, edx ; 存放经验值的eax = 等级的4次方
) P: [9 K+ h; ^, O5 i" q6 f.text:080740B6
. e! ?5 o4 c, w—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B6 locret_80740B6: ; CODE XREF: CHAR_GetLevelExp+25j妖城在线论坛$ k/ s7 y3 ?& k+ p5 t+ T3 @
.text:080740B6 ; CHAR_GetLevelExp+2Fj—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% ?) o4 t6 |. I* d
.text:080740B6 leave
3 c* _* e, d# I# ]* p魔力私服,最新魔力宝贝私服技术交流.text:080740B7 retn魔力私服,最新魔力宝贝私服技术交流% P, B% ^; W3 L3 i% P
.text:080740B8 ; ---------------------------------------------------------------------------
" E# Z9 c" c4 i( X—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B8
2 O2 Z( t" [0 A9 e5 ]魔力私服,最新魔力宝贝私服技术交流.text:080740B8 loc_80740B8: ; CODE XREF: CHAR_GetLevelExp+11j妖城在线论坛" x5 Q% x" s6 F) ?1 q( N
.text:080740B8 mov eax, 0FFFFFFFFh ; 大于130级则下一级升级经验为 -1
) L- b* V0 U% i+ Q& ~& b妖城在线论坛.text:080740B8 ; 游戏内看到的是一个 - 号
* @$ B0 Q/ X2 x& n7 {- G% q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BD jmp short locret_80740B6 ; 函数结束
9 @& X! H; e6 |0 }4 O2 Q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740BD ; ---------------------------------------------------------------------------魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表' J8 R' f. P4 f& l
.text:080740BF align 10h魔力私服,最新魔力宝贝私服技术交流6 }( F* \* L) O0 S# R/ I
.text:080740C0魔力私服,最新魔力宝贝私服技术交流& y/ ?/ c9 L+ o' n; H3 a
.text:080740C0 loc_80740C0: ; CODE XREF: CHAR_GetLevelExp+9j
4 ^- l. d$ ~. [ n—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] ; 小于等于120级则查验经验表妖城在线论坛( M2 d9 Q4 _; h' K" n# o
.text:080740C0 ; 即LevelUpTbl
% s+ A1 b( u/ kbbs.mocwww.com.text:080740C7 jmp short locret_80740B6 ; 函数结束魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 v* n9 o. f2 u! c, c' D& f, N, ]
.text:080740C7 CHAR_GetLevelExp endp
1 d N$ c) ?( B魔力私服,最新魔力宝贝私服技术交流.text:080740C7
$ O: {2 d; S6 r/ D$ O- \.text:080740C7 ; ---------------------------------------------------------------------------—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 Z* A6 W; W+ a: Y r4 f
妖城在线论坛9 L, h- r" t4 D$ Z
# h, J3 p# {+ F1 _0 _4 u—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートbbs.mocwww.com0 P5 I/ x$ g2 \; v0 e" O v
[ 本帖最后由 猪神的黄昏 于 2010-3-23 22:59 编辑 ]
|