妖精
 
- UID
- 19808
- 精华
- 1
- 积分
- 332
- 威望
- 0 度
|
阁楼
大 中
小 发表于 2010-3-23 22:56 只看该作者
gmsv内部函数研究号召帖
一个人看gmsv看得好晕,还好gmsv内部各个函数的命名都是有规则和规范的,但是我一个人的力量毕竟很小
' @$ F" I0 r8 H, B4 t/ ^* y魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
6 B3 K/ E" i: J& P. _bbs.mocwww.com在此号召各位稍微有点汇编基础或者没有汇编基础又愿意学习汇编或者愿意深入了解gmsv内部的四面八方的研究同仁
: L5 s& @, A2 g, i' S魔力私服,最新魔力宝贝私服技术交流魔力私服,最新魔力宝贝私服技术交流" x9 `6 s/ q/ J' J
我们一起来研究gmsv内部的函数吧!只要了解好了gmsv内部函数的运行机制,即入口参数,出口参数等等诸多内容以后魔力私服,最新魔力宝贝私服技术交流1 h" Q0 L8 O8 W; A$ s
, z, {0 d9 p/ R妖城在线论坛我们就有可能修改gmsv来创造出更好的东西!大家一起研究的话我觉得进步会快很多!
; d, @1 m8 _, x$ a1 F- R, _0 `bbs.mocwww.com0 I r7 S; w2 C1 V: t8 T
为抛砖引玉,我从IDA里面复制出一个示范的函数分析。期待大家无私奉献!!!2 E- `4 k; b0 V. B7 B; p! A
. ^# o u9 |& L {" k8 e* m# ~同时希望将此贴置顶?……魔力私服,最新魔力宝贝私服技术交流+ {) v, X) I" v5 V0 m; C9 ]" G2 ?
魔力私服,最新魔力宝贝私服技术交流" o4 ~8 x8 p% m1 [( `* x; K" ^
注:需使用到 反汇编工具IDA—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 ~4 u2 I5 g/ e) f
—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: ?- L2 C% k6 s# t* K" L0 \
.text:08074098 ; =============== S U B R O U T I N E =======================================魔力私服,最新魔力宝贝私服技术交流! z; r7 b+ u. d% L
.text:08074098魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 J: ], G; @2 p; R2 Z9 I
.text:08074098 ; Attributes: bp-based frame
! s; {/ o+ t% j7 S' B9 N( q.text:08074098
$ r, a4 r8 i/ b2 ?魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 public CHAR_GetLevelExp—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ ~1 q( j- x# p4 q2 r% o+ b
.text:08074098 CHAR_GetLevelExp proc near ; CODE XREF: CHAR_LevelUpCheck+42p
+ n& d* p# b {" o—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 ; CHAR_make_CP_String+517p
! c' ?$ ]+ X% L. G—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 ; CHAR_make_KP_String+5AAp2 x" t5 Z Y' G2 \
.text:08074098 ; PET_createPetFromCharaIndex+1BEp妖城在线论坛, a, x" `7 p+ F" \0 W. C( W
.text:08074098 ; BATTLE_AttackEnergyDrain+1E1p妖城在线论坛7 f2 T. o% b1 V! H5 `: U
.text:08074098 ;这里是交叉参考,就是引用该函数的"上级"函数,暂时可以不用管,但是可以从这上面的函数看到入口参数
3 {, [) R# a0 S. }2 f4 L.text:08074098 arg_0 = dword ptr 86 e8 o. O5 S2 Q
.text:08074098魔力私服,最新魔力宝贝私服技术交流/ P: i& b# G: g* y [; J4 m
.text:08074098 push ebp ; 函数功能:
# h" g; R/ m! \+ Y D2 u U.text:08074098 ; 取得人物或者宠物下一级的升级经验值魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- w& {9 w' l/ k r" Y# A, B
.text:08074098 ; 入口参数:等级值
! N+ K5 [. P" O8 o: @.text:08074098 ; 出口参数:eax即下一级的升级经验值—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 b# V' T! h. l9 K
.text:08074099 mov ebp, esp2 P% h) @% z7 K8 Z
.text:0807409B mov edx, [ebp+arg_0] ; 将人物或者宠物的等级放到edx里bbs.mocwww.com8 W2 U& {% e& H' P7 K8 t
.text:0807409E cmp edx, 78h ; 与78h即120比较魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) j1 u/ i% h4 a: k$ h: K
.text:080740A1 jbe short loc_80740C0 ; 小于等于则跳转
( C& `5 a- ^! [# i: `* ~—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740A3 cmp edx, 82h ; 与82h即130比较—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート5 @: [0 H& y, a/ z2 {
.text:080740A9 jg short loc_80740B8 ; 大于则跳转bbs.mocwww.com+ N" ^9 c; j; ]1 E: k4 _
.text:080740AB mov eax, edx ; 否则将等级值放入eax
3 D+ ~7 H9 D0 P( A魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740AD imul eax, edx ; 2次方
- i, [) q0 W& C# A3 |1 L; Y" T妖城在线论坛.text:080740B0 imul eax, edx ; 3次方
" M+ B3 s5 U7 M$ J9 Z& h4 S.text:080740B3 imul eax, edx ; 存放经验值的eax = 等级的4次方
& H% q! `8 R2 C' T.text:080740B6
0 V4 q* P4 `# x# `1 Z; {( Y' Y1 ~.text:080740B6 locret_80740B6: ; CODE XREF: CHAR_GetLevelExp+25j
9 k4 i4 m( ^# a1 E: J) e! w魔力私服,最新魔力宝贝私服技术交流.text:080740B6 ; CHAR_GetLevelExp+2Fj
^! @2 r6 A" i$ C7 B9 j' _.text:080740B6 leave
% `- |4 b0 ?9 n8 o# N& P f2 C妖城在线论坛.text:080740B7 retn5 N- L9 m& \. p. s( y8 P T6 B
.text:080740B8 ; ---------------------------------------------------------------------------
t: m! G, ]8 {6 u' |.text:080740B8魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ @7 M7 U8 @2 q- Y2 p+ _
.text:080740B8 loc_80740B8: ; CODE XREF: CHAR_GetLevelExp+11j
+ r; |2 {: R& {; c妖城在线论坛.text:080740B8 mov eax, 0FFFFFFFFh ; 大于130级则下一级升级经验为 -1
2 m6 s/ Q" x* R/ {+ q" u; u- d7 K妖城在线论坛.text:080740B8 ; 游戏内看到的是一个 - 号5 k7 @* V- [# `1 }) O: f! Z3 T% @
.text:080740BD jmp short locret_80740B6 ; 函数结束
; W- F( ?1 |9 G& u/ B' W1 X* x妖城在线论坛.text:080740BD ; ---------------------------------------------------------------------------妖城在线论坛. ?/ h2 q& {; y( N, a* c7 |0 N5 v
.text:080740BF align 10h魔力私服,最新魔力宝贝私服技术交流! L- s" K+ r; C
.text:080740C0
) V% s8 g3 t T魔力私服,最新魔力宝贝私服技术交流.text:080740C0 loc_80740C0: ; CODE XREF: CHAR_GetLevelExp+9j
8 A- r3 e& ]& k4 ]0 e) r—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] ; 小于等于120级则查验经验表魔力私服,最新魔力宝贝私服技术交流' O1 a0 z5 Q a) M/ g
.text:080740C0 ; 即LevelUpTblbbs.mocwww.com- ^* E% h/ I- o; m" H
.text:080740C7 jmp short locret_80740B6 ; 函数结束魔力私服,最新魔力宝贝私服技术交流 f, Z/ u3 z1 ~2 y* w
.text:080740C7 CHAR_GetLevelExp endp: B$ R* D$ ]+ t& Q3 E, H6 a. `
.text:080740C7
" v! ^* t0 I$ I: V( g—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:080740C7 ; ---------------------------------------------------------------------------—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート5 h# g# v% Y5 p' n
' ^7 d9 r% @ a( f6 \) l—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
4 W+ v! r1 ?$ h- ~! u—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート魔力私服,最新魔力宝贝私服技术交流/ ^% b5 ^4 B+ Z: J) w. X" L" K
[ 本帖最后由 猪神的黄昏 于 2010-3-23 22:59 编辑 ]
|