|
妖精
 
- UID
- 19808
- 精华
- 1
- 积分
- 332
- 威望
- 0 度
|
阁楼
大 中
小 发表于 2010-3-23 22:56 显示全部帖子
gmsv内部函数研究号召帖
一个人看gmsv看得好晕,还好gmsv内部各个函数的命名都是有规则和规范的,但是我一个人的力量毕竟很小魔力私服,最新魔力宝贝私服技术交流" S3 h+ B4 \1 |
$ J6 r- h* w9 a! t( [$ s—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート在此号召各位稍微有点汇编基础或者没有汇编基础又愿意学习汇编或者愿意深入了解gmsv内部的四面八方的研究同仁妖城在线论坛% {# N$ Q7 i0 Q; }6 I; D- O ?
# P5 e! R1 ]/ @! h" _1 W妖城在线论坛我们一起来研究gmsv内部的函数吧!只要了解好了gmsv内部函数的运行机制,即入口参数,出口参数等等诸多内容以后
) h5 `* `1 S: y5 L魔力私服,最新魔力宝贝私服技术交流
- F3 h" V- I I V) ~3 q我们就有可能修改gmsv来创造出更好的东西!大家一起研究的话我觉得进步会快很多!
3 g. X s1 T; ^4 l魔力私服,最新魔力宝贝私服技术交流bbs.mocwww.com. H' Z6 g7 b( |0 n# C6 p' c
为抛砖引玉,我从IDA里面复制出一个示范的函数分析。期待大家无私奉献!!!
8 x! y l; r$ Y% o5 F—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 y. x9 P, f' V1 D) l3 i: U: ~, B
同时希望将此贴置顶?……魔力私服,最新魔力宝贝私服技术交流& F3 f/ E' V: K4 k4 b7 I- z+ J
/ J. R1 J, o# i—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート注:需使用到 反汇编工具IDA—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( C) }. f8 i' o6 d: k# r
& }) l8 O2 E! L; x- c9 \; z5 Zbbs.mocwww.com.text:08074098 ; =============== S U B R O U T I N E =======================================bbs.mocwww.com$ o6 f: B3 ?: Z8 }
.text:08074098) x* F C0 \5 E$ ~' Q
.text:08074098 ; Attributes: bp-based frame
" e' V4 Z4 W; A. A/ M: S: p' h7 z! mbbs.mocwww.com.text:08074098
& U5 M% @; q, \) ]6 _# r( [.text:08074098 public CHAR_GetLevelExp魔力私服,最新魔力宝贝私服技术交流) z% M1 p2 J; w' p$ k$ r
.text:08074098 CHAR_GetLevelExp proc near ; CODE XREF: CHAR_LevelUpCheck+42p9 L/ s5 A$ Y* b1 D
.text:08074098 ; CHAR_make_CP_String+517p—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 w6 E9 w- X, Q2 p, Z0 c
.text:08074098 ; CHAR_make_KP_String+5AAp
$ W- K! K7 [& K: f1 ~% o( Q4 Lbbs.mocwww.com.text:08074098 ; PET_createPetFromCharaIndex+1BEp
( D& K! M9 W" l$ x! o/ {% l0 U, s妖城在线论坛.text:08074098 ; BATTLE_AttackEnergyDrain+1E1p
' u, F: J. e1 G" p.text:08074098 ;这里是交叉参考,就是引用该函数的"上级"函数,暂时可以不用管,但是可以从这上面的函数看到入口参数
4 B2 T2 B5 k8 \/ R6 T! S# Lbbs.mocwww.com.text:08074098 arg_0 = dword ptr 8
$ ~& i$ b- n9 C2 y- V) t! v; ?魔力私服,最新魔力宝贝私服技术交流.text:08074098
- V5 e- ^5 A$ s- t x魔力私服,最新魔力宝贝私服技术交流.text:08074098 push ebp ; 函数功能:
4 m+ G, m C! P) E—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 ; 取得人物或者宠物下一级的升级经验值
# Q% ?8 ]* I- S" }6 A+ K X魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 ; 入口参数:等级值—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, h5 s$ t: o+ V0 ^& I; ^
.text:08074098 ; 出口参数:eax即下一级的升级经验值
/ F! e. a0 q7 }6 h& ~# {- y C魔力私服,最新魔力宝贝私服技术交流.text:08074099 mov ebp, esp魔力私服,最新魔力宝贝私服技术交流6 o/ G; E0 S& ^. {' a8 j& U
.text:0807409B mov edx, [ebp+arg_0] ; 将人物或者宠物的等级放到edx里
& ?' _& ` O8 J0 g/ ]魔力私服,最新魔力宝贝私服技术交流.text:0807409E cmp edx, 78h ; 与78h即120比较魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; L! C- d: R4 d# ] Q6 ?
.text:080740A1 jbe short loc_80740C0 ; 小于等于则跳转
$ Z% e5 j s4 p. j1 D, d i魔力私服,最新魔力宝贝私服技术交流.text:080740A3 cmp edx, 82h ; 与82h即130比较bbs.mocwww.com1 k! v1 C& q# E4 i6 u. u7 o6 V
.text:080740A9 jg short loc_80740B8 ; 大于则跳转魔力私服,最新魔力宝贝私服技术交流; c% M; O3 P; O: _
.text:080740AB mov eax, edx ; 否则将等级值放入eax魔力私服,最新魔力宝贝私服技术交流5 I) @' V% ?% h# b
.text:080740AD imul eax, edx ; 2次方
) v6 D# u' s( p* f1 y% j. `bbs.mocwww.com.text:080740B0 imul eax, edx ; 3次方bbs.mocwww.com6 W0 a, c& h5 E
.text:080740B3 imul eax, edx ; 存放经验值的eax = 等级的4次方
# u! e5 ^. r |魔力私服,最新魔力宝贝私服技术交流.text:080740B6
1 C3 h; G" m8 @1 y( e& V5 f* u3 sbbs.mocwww.com.text:080740B6 locret_80740B6: ; CODE XREF: CHAR_GetLevelExp+25j
% P3 H' @8 C1 |/ s, T2 M妖城在线论坛.text:080740B6 ; CHAR_GetLevelExp+2Fj
- f$ Q( @* D! t' k1 ^.text:080740B6 leave妖城在线论坛) R0 P: a+ q' x9 `* E. Z
.text:080740B7 retnbbs.mocwww.com' B; y5 l5 C) j# X V( F+ E. g3 Q, O
.text:080740B8 ; ---------------------------------------------------------------------------
, d) d: D1 Q# @* u4 v: z.text:080740B8: K1 S- S$ p4 h- T# {" a# |3 i/ y
.text:080740B8 loc_80740B8: ; CODE XREF: CHAR_GetLevelExp+11jbbs.mocwww.com' q5 X9 w4 E) e) Y7 E" \ } [7 `
.text:080740B8 mov eax, 0FFFFFFFFh ; 大于130级则下一级升级经验为 -1
9 V: n( j8 O6 bbbs.mocwww.com.text:080740B8 ; 游戏内看到的是一个 - 号
2 c& q" h& n2 m) H' @.text:080740BD jmp short locret_80740B6 ; 函数结束
! j- \: Q+ U$ G# ~2 B6 g0 u魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740BD ; ---------------------------------------------------------------------------
# M2 u0 K% z5 e( H% y魔力私服,最新魔力宝贝私服技术交流.text:080740BF align 10h
0 U/ m9 z$ Y: x9 u& m.text:080740C0
+ T, a1 K+ k) t5 ? ~( ~! v3 W—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 loc_80740C0: ; CODE XREF: CHAR_GetLevelExp+9j魔力私服,最新魔力宝贝私服技术交流. [5 P7 b/ u% F) j- b0 Q
.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] ; 小于等于120级则查验经验表bbs.mocwww.com4 F6 u8 G7 N: B% `
.text:080740C0 ; 即LevelUpTbl妖城在线论坛8 Z- `3 j! E: C9 V! m
.text:080740C7 jmp short locret_80740B6 ; 函数结束魔力私服,最新魔力宝贝私服技术交流+ x, ^$ i! E0 ]" h, \
.text:080740C7 CHAR_GetLevelExp endp
/ a9 w& P( K, G魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C7—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 s/ p' e: ]: r
.text:080740C7 ; ---------------------------------------------------------------------------
) B+ `# e( s Z妖城在线论坛
% m( q9 e! v: Q1 l5 d0 ?魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
" W+ C6 F3 D& G$ w) r妖城在线论坛
) r8 z0 Z, ?. o5 W2 mbbs.mocwww.com[ 本帖最后由 猪神的黄昏 于 2010-3-23 22:59 编辑 ]
|