|
妖精
 
- UID
- 19808
- 精华
- 1
- 积分
- 332
- 威望
- 0 度
|
阁楼
大 中
小 发表于 2010-3-23 22:56 只看该作者
gmsv内部函数研究号召帖
一个人看gmsv看得好晕,还好gmsv内部各个函数的命名都是有规则和规范的,但是我一个人的力量毕竟很小妖城在线论坛5 N2 y8 I; j5 z9 I9 K- t
魔力私服,最新魔力宝贝私服技术交流9 _5 V r0 S: H6 F: @$ D) y7 s
在此号召各位稍微有点汇编基础或者没有汇编基础又愿意学习汇编或者愿意深入了解gmsv内部的四面八方的研究同仁
+ J4 I* p9 q% u% T2 v3 ~7 r魔力私服,最新魔力宝贝私服技术交流
9 S' i$ ^+ i0 i& z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート我们一起来研究gmsv内部的函数吧!只要了解好了gmsv内部函数的运行机制,即入口参数,出口参数等等诸多内容以后—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート9 y* W' w& s! U8 V$ B
魔力私服,最新魔力宝贝私服技术交流( U4 [- M0 \3 C$ ], B
我们就有可能修改gmsv来创造出更好的东西!大家一起研究的话我觉得进步会快很多!
( N5 G" D& ?5 U( ]: dbbs.mocwww.com
7 \3 m2 Q3 V s—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート为抛砖引玉,我从IDA里面复制出一个示范的函数分析。期待大家无私奉献!!!
! y! p# y; c; O$ p" T% Hbbs.mocwww.com
" V1 t6 ~! P7 c/ A* l—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート同时希望将此贴置顶?……
& H. c3 U0 p8 m) \0 M. Y) u" v3 t$ J妖城在线论坛
2 P K' h4 u5 T/ I& _9 a- X6 pbbs.mocwww.com注:需使用到 反汇编工具IDAbbs.mocwww.com3 d# W- Q( P$ L4 J- N: ]
( U- \, F/ D5 A$ p9 Z" u.text:08074098 ; =============== S U B R O U T I N E =======================================魔力私服,最新魔力宝贝私服技术交流 A. D8 R! t, p3 o" h
.text:08074098妖城在线论坛3 c6 Y7 i k+ a/ G: W5 ~( Z
.text:08074098 ; Attributes: bp-based frame
6 A0 w# E, V \7 k妖城在线论坛.text:08074098魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表* Q+ e& g& r2 P) @6 j
.text:08074098 public CHAR_GetLevelExp妖城在线论坛0 \4 {3 T0 q7 L' v2 V
.text:08074098 CHAR_GetLevelExp proc near ; CODE XREF: CHAR_LevelUpCheck+42p
5 a) I. e. w. W, \, u" U妖城在线论坛.text:08074098 ; CHAR_make_CP_String+517p魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 ^5 W4 z( I* E% p
.text:08074098 ; CHAR_make_KP_String+5AAp
/ m& J7 y. y& ~8 P魔力私服,最新魔力宝贝私服技术交流.text:08074098 ; PET_createPetFromCharaIndex+1BEp妖城在线论坛) g; f+ ]2 l& ]) `+ g- l1 s% s: ]
.text:08074098 ; BATTLE_AttackEnergyDrain+1E1p
$ b& G$ _' [; U妖城在线论坛.text:08074098 ;这里是交叉参考,就是引用该函数的"上级"函数,暂时可以不用管,但是可以从这上面的函数看到入口参数—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 _+ f* ^2 |/ |4 y+ f0 g8 Z
.text:08074098 arg_0 = dword ptr 8妖城在线论坛% e6 }# D. V9 Q, ~
.text:08074098
6 q# \8 p7 e- m% d, `.text:08074098 push ebp ; 函数功能:—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 i A" a9 J2 B O% |, ~% g$ r
.text:08074098 ; 取得人物或者宠物下一级的升级经验值魔力私服,最新魔力宝贝私服技术交流3 g6 ~- _% N* z/ Y/ ^. l
.text:08074098 ; 入口参数:等级值妖城在线论坛5 ~+ B+ {3 k/ e' r2 J
.text:08074098 ; 出口参数:eax即下一级的升级经验值魔力私服,最新魔力宝贝私服技术交流, s8 ?* n1 B; o& v- @( M
.text:08074099 mov ebp, esp
8 d) ^3 i0 g: \1 k. T9 b魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:0807409B mov edx, [ebp+arg_0] ; 将人物或者宠物的等级放到edx里* f; d. g- ?% m% @1 F
.text:0807409E cmp edx, 78h ; 与78h即120比较
X+ ~3 p; {, V.text:080740A1 jbe short loc_80740C0 ; 小于等于则跳转魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 v& m) w" x A( N( x" w8 R4 k+ D
.text:080740A3 cmp edx, 82h ; 与82h即130比较—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, i3 s9 ^, o. H2 j9 [
.text:080740A9 jg short loc_80740B8 ; 大于则跳转
5 o. H! _2 b9 u& t/ J.text:080740AB mov eax, edx ; 否则将等级值放入eax妖城在线论坛5 p5 [+ D: l2 N
.text:080740AD imul eax, edx ; 2次方
( E0 Q$ @% Y+ b. M2 n# g魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740B0 imul eax, edx ; 3次方
- n8 ^6 }2 x3 h9 f: Q9 U) _$ [—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B3 imul eax, edx ; 存放经验值的eax = 等级的4次方妖城在线论坛6 `7 B3 X% U+ T
.text:080740B6
7 h' B& B9 A A" N" B* N.text:080740B6 locret_80740B6: ; CODE XREF: CHAR_GetLevelExp+25j
3 S3 g: O, F' C$ U: k妖城在线论坛.text:080740B6 ; CHAR_GetLevelExp+2Fj
) {' S+ l/ ]/ r( Z—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B6 leave妖城在线论坛- y9 n% A( h9 j( [1 }! |
.text:080740B7 retn
' c: c5 [ m: Z, t) h) O妖城在线论坛.text:080740B8 ; ---------------------------------------------------------------------------bbs.mocwww.com, u% D" a4 [1 j" ~
.text:080740B8妖城在线论坛8 R& c8 b8 g! M6 O3 T: Z D/ l
.text:080740B8 loc_80740B8: ; CODE XREF: CHAR_GetLevelExp+11j妖城在线论坛 y5 x" j# B9 K9 w7 O; I6 s
.text:080740B8 mov eax, 0FFFFFFFFh ; 大于130级则下一级升级经验为 -1
3 W: M5 H( E8 ?2 {, i. D.text:080740B8 ; 游戏内看到的是一个 - 号魔力私服,最新魔力宝贝私服技术交流0 W# Y/ c0 Q3 V) D; V3 ^9 ]
.text:080740BD jmp short locret_80740B6 ; 函数结束5 \. x2 b3 i3 F+ X; _: U# t r
.text:080740BD ; ---------------------------------------------------------------------------% K" S/ H9 P6 ^% k# T
.text:080740BF align 10h魔力私服,最新魔力宝贝私服技术交流- O. U6 G. ]; J' f6 ^) T
.text:080740C0—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート x6 k# h9 Q1 m
.text:080740C0 loc_80740C0: ; CODE XREF: CHAR_GetLevelExp+9j
; [4 d' S# t) h( @+ Q; M1 u.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] ; 小于等于120级则查验经验表—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" X- m- g$ T* N3 G
.text:080740C0 ; 即LevelUpTbl
# G j. \1 B5 R' B+ w0 o% i魔力私服,最新魔力宝贝私服技术交流.text:080740C7 jmp short locret_80740B6 ; 函数结束
6 z H. R2 p! Z3 S! I8 \2 Lbbs.mocwww.com.text:080740C7 CHAR_GetLevelExp endp
/ d* Q5 Q. Z* n5 A! {1 s7 Qbbs.mocwww.com.text:080740C78 K$ |) l: F: E7 n1 D
.text:080740C7 ; ---------------------------------------------------------------------------魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( h W6 B% I2 \
妖城在线论坛4 D" L6 a' {) _+ L O
. R# e0 |3 C3 bbbs.mocwww.com魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ Y1 E9 I0 ]) P& J5 U) l
[ 本帖最后由 猪神的黄昏 于 2010-3-23 22:59 编辑 ]
|