|
妖精
 
- UID
- 19808
- 精华
- 1
- 积分
- 332
- 威望
- 0 度
|
阁楼
大 中
小 发表于 2010-3-23 22:56 只看该作者
gmsv内部函数研究号召帖
一个人看gmsv看得好晕,还好gmsv内部各个函数的命名都是有规则和规范的,但是我一个人的力量毕竟很小
5 J- z4 w+ [6 z" c4 B& }! \+ t妖城在线论坛bbs.mocwww.com5 {! {) k- m/ _) m3 Z' k
在此号召各位稍微有点汇编基础或者没有汇编基础又愿意学习汇编或者愿意深入了解gmsv内部的四面八方的研究同仁
$ x1 q! c1 i5 r, Y% O Fbbs.mocwww.com
# }' r: y& X" ^! |1 p3 U# I9 d我们一起来研究gmsv内部的函数吧!只要了解好了gmsv内部函数的运行机制,即入口参数,出口参数等等诸多内容以后
& A; P w( _5 D& K% V% D妖城在线论坛& q4 H+ [! G/ l( U1 v
我们就有可能修改gmsv来创造出更好的东西!大家一起研究的话我觉得进步会快很多!
0 A' R5 a" R1 w5 y+ n2 o! O; w魔力私服,最新魔力宝贝私服技术交流, N/ h- T8 J4 T! y* B
为抛砖引玉,我从IDA里面复制出一个示范的函数分析。期待大家无私奉献!!!魔力私服,最新魔力宝贝私服技术交流3 W, C$ j. O! J- o
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: z- E/ b0 \- a0 B$ h: a3 Y
同时希望将此贴置顶?……
5 a) ?3 g* r. d
: f$ s% x; t Q2 l" P/ q8 D" _; gbbs.mocwww.com注:需使用到 反汇编工具IDA
7 r8 d# T) F4 w( [1 O—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
* h3 d( V0 }$ {$ t; N- o5 D魔力私服,最新魔力宝贝私服技术交流.text:08074098 ; =============== S U B R O U T I N E =======================================
( f2 o1 |+ y7 J& B' V; Y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ i# X( V: ~! v
.text:08074098 ; Attributes: bp-based frame
& ~# {" y7 v, v5 q妖城在线论坛.text:08074098魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( x8 y9 Z3 N; X
.text:08074098 public CHAR_GetLevelExp妖城在线论坛7 @, i- t( E2 _0 }# l
.text:08074098 CHAR_GetLevelExp proc near ; CODE XREF: CHAR_LevelUpCheck+42p
) H: ^, M0 S# a: G8 _—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 ; CHAR_make_CP_String+517p
2 Z+ L7 h( @% |3 K1 f) J妖城在线论坛.text:08074098 ; CHAR_make_KP_String+5AAp
3 H; q; H! R8 |( l—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 ; PET_createPetFromCharaIndex+1BEp% u- p9 r8 d ]$ d0 Z
.text:08074098 ; BATTLE_AttackEnergyDrain+1E1p
& [$ P3 F# i- _) w# e/ d—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 ;这里是交叉参考,就是引用该函数的"上级"函数,暂时可以不用管,但是可以从这上面的函数看到入口参数—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! q2 @+ ]. K) W V7 ?8 _# |" R6 h) ~
.text:08074098 arg_0 = dword ptr 8魔力私服,最新魔力宝贝私服技术交流' ]; u" V! C ]- c$ B2 \! o' F! Z
.text:08074098
p% B. x* I8 g: M9 X0 q. Hbbs.mocwww.com.text:08074098 push ebp ; 函数功能:魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 y! B: u8 b' C/ i* K
.text:08074098 ; 取得人物或者宠物下一级的升级经验值妖城在线论坛6 {3 J T+ r+ A& H
.text:08074098 ; 入口参数:等级值
: e: Y& y1 W5 l6 n; K1 R# ~0 V6 z2 }魔力私服,最新魔力宝贝私服技术交流.text:08074098 ; 出口参数:eax即下一级的升级经验值魔力私服,最新魔力宝贝私服技术交流: n: D7 I$ h2 \, X
.text:08074099 mov ebp, esp
& v' }$ z! ` u) ?1 u% `7 L' v- ^bbs.mocwww.com.text:0807409B mov edx, [ebp+arg_0] ; 将人物或者宠物的等级放到edx里魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; O+ p( F+ l: Q# u
.text:0807409E cmp edx, 78h ; 与78h即120比较
4 m7 M4 K9 o) V( z' Y7 x5 A. q/ ].text:080740A1 jbe short loc_80740C0 ; 小于等于则跳转
2 F( z4 b2 K' @# b% lbbs.mocwww.com.text:080740A3 cmp edx, 82h ; 与82h即130比较
4 F7 I/ X$ Q3 O: @妖城在线论坛.text:080740A9 jg short loc_80740B8 ; 大于则跳转
; c- ]) v/ i- E1 r( ^& y- m妖城在线论坛.text:080740AB mov eax, edx ; 否则将等级值放入eaxbbs.mocwww.com2 n7 p) G$ M7 c! \2 r* T
.text:080740AD imul eax, edx ; 2次方魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( A$ U( \6 |; W( w3 C3 [# s8 C
.text:080740B0 imul eax, edx ; 3次方% o. \# @, o) E1 h A* k
.text:080740B3 imul eax, edx ; 存放经验值的eax = 等级的4次方bbs.mocwww.com& M' ]9 V! P& g0 H: a3 y
.text:080740B6bbs.mocwww.com Q8 x8 _! Z4 ^/ y& j- \5 y
.text:080740B6 locret_80740B6: ; CODE XREF: CHAR_GetLevelExp+25j
: O8 V& {' X/ ], u2 }* Y @魔力私服,最新魔力宝贝私服技术交流.text:080740B6 ; CHAR_GetLevelExp+2Fj
# w+ E j1 v$ _& P; I& J e妖城在线论坛.text:080740B6 leave妖城在线论坛" b; u! [- }1 I
.text:080740B7 retn
7 k" a+ W* U ?.text:080740B8 ; ---------------------------------------------------------------------------
- B/ l" A9 y5 O1 F$ x—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740B8妖城在线论坛/ S. c2 c4 V: D7 x: Q) q8 g- u
.text:080740B8 loc_80740B8: ; CODE XREF: CHAR_GetLevelExp+11j魔力私服,最新魔力宝贝私服技术交流7 v, g8 ]% }3 f! W" \; B' I! a+ t
.text:080740B8 mov eax, 0FFFFFFFFh ; 大于130级则下一级升级经验为 -1妖城在线论坛9 q; O+ p) E" z |+ P
.text:080740B8 ; 游戏内看到的是一个 - 号
& D+ x9 _4 b( J! O/ H! gbbs.mocwww.com.text:080740BD jmp short locret_80740B6 ; 函数结束—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ y1 \* }1 g0 j: g# z V0 O) F
.text:080740BD ; ---------------------------------------------------------------------------bbs.mocwww.com% f& F6 ~7 _- |
.text:080740BF align 10h—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% o1 J6 D6 |4 q# Q
.text:080740C0魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ o. o# j2 s4 O1 B4 c' G
.text:080740C0 loc_80740C0: ; CODE XREF: CHAR_GetLevelExp+9j
6 I# b1 {4 p* y) T: |- t2 u妖城在线论坛.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] ; 小于等于120级则查验经验表—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート7 O" y/ Q$ ?. ^+ r
.text:080740C0 ; 即LevelUpTbl妖城在线论坛$ U8 q+ W% o v$ L9 f
.text:080740C7 jmp short locret_80740B6 ; 函数结束
; m/ _- V' ~+ C# _" a0 E8 [ C) b妖城在线论坛.text:080740C7 CHAR_GetLevelExp endp
) f+ C; L7 H0 W( ^妖城在线论坛.text:080740C7bbs.mocwww.com* \& x Q8 i: H( i% V) }
.text:080740C7 ; ---------------------------------------------------------------------------
f! I$ d' x# s/ L7 d魔力私服,最新魔力宝贝私服技术交流
! R8 ^8 z) {# ], x妖城在线论坛—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート/ ]6 y- r( l5 X! s: d" V: `* i
8 [6 F4 S J7 Y. H! b妖城在线论坛[ 本帖最后由 猪神的黄昏 于 2010-3-23 22:59 编辑 ]
|