|
妖精
 
- UID
- 19808
- 精华
- 1
- 积分
- 332
- 威望
- 0 度
|
阁楼
大 中
小 发表于 2010-3-23 22:56 只看该作者
gmsv内部函数研究号召帖
一个人看gmsv看得好晕,还好gmsv内部各个函数的命名都是有规则和规范的,但是我一个人的力量毕竟很小
, u- a3 _ h$ F) M; }' f—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
: n* t% \# f6 u. r( G" ^bbs.mocwww.com在此号召各位稍微有点汇编基础或者没有汇编基础又愿意学习汇编或者愿意深入了解gmsv内部的四面八方的研究同仁
. M5 U) v) h( R魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' n* K) L/ e. U1 h
我们一起来研究gmsv内部的函数吧!只要了解好了gmsv内部函数的运行机制,即入口参数,出口参数等等诸多内容以后妖城在线论坛/ @7 t$ x$ l6 w
妖城在线论坛) V8 i k }& s. [) k2 [
我们就有可能修改gmsv来创造出更好的东西!大家一起研究的话我觉得进步会快很多!% R$ }3 B9 U1 Q9 S) X
魔力私服,最新魔力宝贝私服技术交流# ?% ?7 I7 N; \$ p
为抛砖引玉,我从IDA里面复制出一个示范的函数分析。期待大家无私奉献!!!魔力私服,最新魔力宝贝私服技术交流" V# ~' ?) g, a7 ^4 {/ N+ b
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ v$ u" V+ q7 n$ U5 |
同时希望将此贴置顶?……—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* @( c+ z0 D' T0 Q" x1 u1 M
! r# n8 c c' {% K- @- s, a魔力私服,最新魔力宝贝私服技术交流注:需使用到 反汇编工具IDA8 X( v3 K& o1 Q7 m9 I
! Z. w1 G1 L) C$ G$ i$ V—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート.text:08074098 ; =============== S U B R O U T I N E =======================================魔力私服,最新魔力宝贝私服技术交流5 z: Q/ H. b0 M4 p+ E
.text:08074098& G2 N' T+ }/ Z% E U1 H1 I4 |& B
.text:08074098 ; Attributes: bp-based frame
. R# ?5 G8 G+ nbbs.mocwww.com.text:08074098
. c; a: u c$ Q1 f7 x) u妖城在线论坛.text:08074098 public CHAR_GetLevelExp
1 s+ i$ R" h$ p/ m" w {魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 CHAR_GetLevelExp proc near ; CODE XREF: CHAR_LevelUpCheck+42p—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート- T. G2 }, _6 P5 l. \# t
.text:08074098 ; CHAR_make_CP_String+517pbbs.mocwww.com* }' O/ g" n2 u% h+ K
.text:08074098 ; CHAR_make_KP_String+5AAp妖城在线论坛# h* p0 B% W; k
.text:08074098 ; PET_createPetFromCharaIndex+1BEpbbs.mocwww.com$ o7 M1 {5 t, M# I- K6 C- G
.text:08074098 ; BATTLE_AttackEnergyDrain+1E1p魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 J4 p/ L$ c; T0 |
.text:08074098 ;这里是交叉参考,就是引用该函数的"上级"函数,暂时可以不用管,但是可以从这上面的函数看到入口参数
5 p& M$ U8 T. Z& z! X魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:08074098 arg_0 = dword ptr 8
! R+ }4 D9 X! N* F妖城在线论坛.text:08074098
$ d# k7 d# ?7 e魔力私服,最新魔力宝贝私服技术交流.text:08074098 push ebp ; 函数功能:
0 f: h$ ?- X- |妖城在线论坛.text:08074098 ; 取得人物或者宠物下一级的升级经验值bbs.mocwww.com3 q( X& h; Z2 w, y4 @) I
.text:08074098 ; 入口参数:等级值
2 l3 c: U0 x5 k' S, q.text:08074098 ; 出口参数:eax即下一级的升级经验值—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) g6 R6 y9 m# Q9 v( ]& c: h
.text:08074099 mov ebp, esp
6 e9 z( i9 r! K4 [" ^: p& h. ^6 `.text:0807409B mov edx, [ebp+arg_0] ; 将人物或者宠物的等级放到edx里
! u) R- m* O. U( b8 q( m2 |bbs.mocwww.com.text:0807409E cmp edx, 78h ; 与78h即120比较妖城在线论坛& Y& L. X+ b- g" {5 m
.text:080740A1 jbe short loc_80740C0 ; 小于等于则跳转魔力私服,最新魔力宝贝私服技术交流- H- Y- |4 @% D7 y
.text:080740A3 cmp edx, 82h ; 与82h即130比较4 l5 p, D) J7 r3 u" ` A1 B4 J( M
.text:080740A9 jg short loc_80740B8 ; 大于则跳转
$ W# Q! f/ |% {3 B1 A( [- ^3 g+ Q.text:080740AB mov eax, edx ; 否则将等级值放入eax6 i( F- r+ J3 b
.text:080740AD imul eax, edx ; 2次方bbs.mocwww.com1 J" U! q! P2 B0 |: ?
.text:080740B0 imul eax, edx ; 3次方
! e6 f/ e7 Q% a O0 _& k.text:080740B3 imul eax, edx ; 存放经验值的eax = 等级的4次方
6 L6 N$ V- x. j J9 {.text:080740B6
: B/ W: a3 q- Q% {3 Q.text:080740B6 locret_80740B6: ; CODE XREF: CHAR_GetLevelExp+25j
: ^6 l* ^& `8 I# [1 j# H9 N" x/ D.text:080740B6 ; CHAR_GetLevelExp+2Fj
, V4 @7 H7 w# Z, t5 a6 ].text:080740B6 leave
. q$ R2 c4 d+ l# j( N妖城在线论坛.text:080740B7 retn
3 i0 P" E4 H& r6 d% f( O2 fbbs.mocwww.com.text:080740B8 ; ---------------------------------------------------------------------------bbs.mocwww.com* e3 T- r# v0 K' E; A; \* ~
.text:080740B8
! \) h8 c( ?& Q$ m+ k, c$ B, ?* ebbs.mocwww.com.text:080740B8 loc_80740B8: ; CODE XREF: CHAR_GetLevelExp+11j
5 h f T$ _! t2 y8 i, H. n. J: L% r妖城在线论坛.text:080740B8 mov eax, 0FFFFFFFFh ; 大于130级则下一级升级经验为 -1魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表5 V2 ^. L0 u( `8 K7 D5 V# _2 C8 ?
.text:080740B8 ; 游戏内看到的是一个 - 号7 \/ W8 {; `8 S
.text:080740BD jmp short locret_80740B6 ; 函数结束
5 `+ \6 |# Z# u: i3 W& P妖城在线论坛.text:080740BD ; ---------------------------------------------------------------------------bbs.mocwww.com1 Y2 D6 a' T9 Q
.text:080740BF align 10h—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 M6 x' r: W' {' W1 t
.text:080740C0魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 L6 h4 J5 m0 f B% f1 j3 l
.text:080740C0 loc_80740C0: ; CODE XREF: CHAR_GetLevelExp+9j魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, c& b. |: W2 Q( }
.text:080740C0 mov eax, dword ptr LevelUpTbl[edx*4] ; 小于等于120级则查验经验表魔力私服,最新魔力宝贝私服技术交流* C' z1 z ~ v7 L4 S- S
.text:080740C0 ; 即LevelUpTbl妖城在线论坛* Y) Y" N% V: u* i* L
.text:080740C7 jmp short locret_80740B6 ; 函数结束魔力私服,最新魔力宝贝私服技术交流; g% y7 n* _% k# o: S1 x: k
.text:080740C7 CHAR_GetLevelExp endp
, D4 \( Z2 v4 @' | K7 j4 D* l魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C7
6 [/ ]! T* y' N' o+ Y: X8 g魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表.text:080740C7 ; ---------------------------------------------------------------------------
! u4 }% O( v/ a8 m& ~3 v, P3 [ D& bbbs.mocwww.com
) N# e1 G1 }. q/ F2 h% @bbs.mocwww.com
1 |4 n$ v% n) k/ [) Q妖城在线论坛
; E; p% U3 Z0 ?' G9 X6 t8 _9 y妖城在线论坛[ 本帖最后由 猪神的黄昏 于 2010-3-23 22:59 编辑 ]
|