EMU618社区

 找回密码
 立即注册
搜索
查看: 81517|回复: 23

[原创HACK教程] 菜鸟NES HACK简单教程!图多杀猫!慎入!(2009.10.14修正)

 关闭 [复制链接]

签到天数: 2017 天

[LV.Master]伴坛终老

发表于 2007-4-21 05:26:54 | 显示全部楼层 |阅读模式
注意:转载请注明本人名字和文章出处!
5 x9 |7 n* G. j0 B2 T
* x5 M, E/ @- @$ ]( O菜鸟NES HACK简单教程(偶应N多人要求才做这个教程,有错误请指正:L )1 Q& g4 w4 o" L9 w" W/ g, O
0 {1 E# J, g! f' r& b; ]
NESHACK相关资料下载:http://bbs.emu618.com/forum/viewthread.php?tid=12675&extra=page%3D2
% W* X% I6 C8 F3 \4 Y- R  y
- g& x* t/ i- E: V0 D2 e6052汇编大奥秘(详细介绍FC的汇编语言,推荐下载):http://bbs.emu618.com/forum/viewthread.php?tid=20393&extra=page%3D14 x" Y/ C& m5 B2 R
) X1 b. o3 J/ X+ Z& S
开始之前先说几句废话
9 n2 v0 j0 J9 N$ Q' M0 o6 w9 ]
% \6 I! {! W# d6 N% P- ^5 ]4 H第一,HACK之前先了解一下6502汇编指令,NES相关资料里有指令集说明文档,如果你看不懂英文的话就下载《6502汇编大奥秘》,里面有指令中文说明........^_^. z3 S% T) y: ]
8 p* E2 ], ]; A7 S" j
个人建议:没必要把6502全部汇编指令硬背下来再跟踪调试,那样会很累,你可以一边调试一边查询指令说明.......6 i2 m8 w) h( R9 P' r, j

  k5 P1 s* D( X  f0 _% q第二,还需要准备一些工具:NES调试跟踪工具(VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具)、十六进制之类编辑工具(Winhex或者UltraEdit32)
! Y7 `& S  ^$ y# w+ J% n1 D" P) S2 }/ s. u% o$ g4 d
第三,了解修改步骤:
" n* Y1 e  n" {5 \1、首先要确定你要修改什么。连要修改什么都不知道,那怎能谈上修改呢。
1 t; [& m; [0 Z0 t! A6 C4 D2、获取作弊码,换句话说就是要获得要修改数据的地址。推荐使用EC,这个软件自带作弊码和跟踪修改功能。  V7 |& y, }& d, y8 E, ~. f
3、获得指令代码及其在Rom中的地址。一般通过VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具,再配合内存查看和十六进制之编辑工具确定指令以数据方式储存在Rom中的哪个地址。8 Q0 \9 L$ S8 h
4、修改相应指令或数据。一般来说要做尽量少的修改,而且不能让程序运行出错。
! X. t; Q( I( y' ?) G2 N5、测试游戏运行情况,看游戏能不能按照你修改目的正常运行。+ H. x; S9 ?# t  z4 \: @' C2 W

7 v9 M7 u. l* w; K' M第四,偶以日版《赤影战士》和VirtualNes Debugger版来为例子教大家如何HACK:7 D- Q* q' S& S# O: B
4 o$ I* ]: [3 q0 H( C
偶需要修改的数据:暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷- }+ c+ j  B, W% e$ j

5 ?" s' ~0 K" }0 q- @0 v/ _1、获取作弊码,这个好容易得到,EC这个软件附带N多作弊码,省去自已手工查找作弊码了。^_^7 ~9 f3 e$ L* N9 X2 S
[P1 生命值]6 K+ P1 d7 F1 C4 U3 x3 \7 w
ON=6F0,10
/ h) [' a4 }4 n2 ~! W7 g5 z- J3 e5 g; M' x- {
[P1 暗器数量]& t6 }2 b9 T6 T- C. Z2 |9 `) w
ON=662,FF
2 [- f7 E% j" e# X% @6 V
' B( g0 R/ Y* [0 Z[P1 武器种类]
+ E( b6 w' K6 e7 O4 s2 r; @; z刀=6B2,0
2 F; D8 m; s7 e) I0 |ON=6B2,3' E& r# p% M8 l& }% U6 I
5 C* o5 V% N1 r6 O" D7 e0 d
[P1 武器威力]
; ~8 V8 C7 g! l: NON=680,FF% R4 \# r, z2 [! o( K! x8 Q, {
0 L) m/ ], ?+ A) c2 p, B
[P1 暗器种类]4 \. W- w5 p, A& y: `* J( t% z0 e
标=671,0! f8 Y6 p' m1 {- V
雷=671,1' f4 v( @$ a2 W4 j/ I) p' L

4 J8 e4 u# s0 p2 A+ B% P[P1 隐身]
# s; G7 t$ |' T6 k2 g9 w, Y+ @OFF=0000,0
' \+ D+ A3 a$ K! {" f! `* t4 }ON=601,4C) i0 b+ [6 C( a- I& h
" j- q0 d" K% r; E; B: F5 t" _) P
[P2 生命值], l+ |4 M; O# i
ON=6F4,10
% E: {7 n! a, `0 l3 o
9 S! G4 T2 |! e' d, N[P2 暗器数量]* A9 z, |4 W9 _5 D' H
ON=666,FF+ }2 O7 }& ^. g: v
3 Y: L" }' a1 k" `# x  `
[P2 武器种类]
$ [9 o) Y, p6 `' y4 L刀=6B6,0
' z+ t7 _# W, |( N4 Z6 EON=6B6,3
' a" v: ^- P: e+ j8 z/ l- I0 ^5 B* f7 y) j( K' S( a4 n
[P2 武器威力]; |$ J% H5 c; `$ j1 x$ @
ON=684,FF
4 t) Q6 k$ p! F- L- B( S0 C  ?) A# f/ a* J+ L
[P2 暗器种类]. t3 Y# A0 p. E+ b; V. J, q6 t
标=675,02 B* l# \$ E9 d9 X1 L8 p
雷=675,1
* H. b4 O. c. ^1 K( _- E1 n2 j' \2 i1 i% ^! R
[P2 隐身]  u, D! o- E3 W8 {8 g& D
OFF=0000,02 z; M0 e" A; U7 V( o8 u
ON=605,4C
& H  R5 W4 a6 b6 P+ R- U0 n8 m6 e! ^
[GameInfo]4 N( V; Y) l9 H/ M
Name=Shadow of the Ninja (FC/NES)! C$ C) l% L0 T: Y* z7 O, A; |" T
System=FC1 v$ l( ?# ~. ?0 ^/ S9 e
Text=赤影战士(水上魂斗罗),双人、动作游戏,由大胖子提供!
( S5 B, h/ w) `0 d3 T
* @# m3 D- K& B- X4 b[ 本帖最后由 疾风之狼 于 2009-10-14 15:09 编辑 ]

评分

1

查看全部评分

签到天数: 2017 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:27:43 | 显示全部楼层
2、通过调试跟踪获取指令代码及其在Rom中的地址,并用16进制编辑工具修改ROM其中数据- h0 J% Z  \5 v4 [: {  F. _5 J
偶按照暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷顺序来教大家如何跟踪调试修改:6 X* W, J7 q9 E8 K* h5 ]( l

$ X  S6 \. }- P4 G# }(1)暗器不减:% R2 q" ?3 j4 T8 X5 K! _' W4 B+ ?

+ E' I' Z7 H5 `7 v. x1 [+ `首先打开VirtualNes Debugger并加载赤影战士日版ROM,如图1:
) |3 w! z7 x5 l* D& {  Y$ H, I1 \+ O! e
接下来游戏进行到获到暗器飞镖20个,如图2:
# D8 ], H+ K, Y3 K0 ^4 ~
/ A' U8 I  N1 Y( g0 t( n& R接下来开始跟踪飞镖数量,先打开RAM,再打开DEBUG,先打开DEBUG的话,不然RAM就用不来:如图3、图4:+ d3 }. y3 Y9 E0 F, I+ D- q. [: N
# D9 M& [: A3 L) Q% `) n
先点暂停,根据如下面作弊码提供的暗器数量地址,如暗器数量地址是662,就在注释内出现后面方框中输入[0662](注:可以用这东东当条件断点),再点右边确定让游戏继续运行,如图5:
. E. ]# u9 |/ f; q8 V. L  m" F& h  c7 k: F- {
[P1 暗器数量]
8 i  N. s0 r7 k% ^7 b* RON=662,FF1 C( o* p  K: c0 e5 d. K; b3 e8 C

( J" C2 ?4 g7 X4 p0 Z. M使用一次飞镖,程序会发生中断停在B840这一行,如图6:' D: z5 i  D# L: @2 i

" G0 l2 ?2 a  w3 qB840 : DE 6206 DEC $0662,X;[0662]-- =0x13
# o+ D  v" w# E/ D+ V
6 h9 I" r. A* @& v  k: B查指令表得知B840这个地址DEC $0662,X指令作用是将0662+(X)=真正暗器地址的数值减1;既然这样,只要把这条DEC $0662,X指令改为LDA $0662,X就可以让暗器数量不减了。LDA $0662,X作用是把0662+(X)=真正暗器地址的数值读入寄存器A。(X)是寄存器X的数值。
" @, m+ ^0 i; s4 x( S, g, W5 i举个例子:假设X寄存器数值是6,指令是“LDA $1234,X” 这条指令看上是将$1234地址数值读入寄存器A,但实际上$1234不是真正数值存放地址,1234必须加上寄存器X的数值才是真正数值存放的地址。1234+(X=6)=123A,LDA $1234,X指令应该是这样解释:将1234+(X=6)=123A地址读入寄存器A。5 A  W) a; a: @. A
LDA xxxx,Y和LDA xxxx,X一样,不过寄存器X变成寄存器Y。
" X8 I, S6 ?7 C4 _# p0 h. I7 J0 N+ w& k" d* y3 r6 s6 i8 [
查指令机器码得知DE是DEC - Absolute,X,BD是LDA - Absolute,X,注意寻区方式要一样....把DE修改为BD就可以不减暗器数量了。
# c: K/ o$ z3 q% C2 m# l' Z
9 ]( f: j3 ?; `( x+ L注意:别把BD修改成其他LDA指令,这样会死机的,因为指令寻区方式不一样。( f* ]; U' C% R8 r1 X3 p3 L* S
, n1 l2 n5 v. w8 F" }
另外,有一些其他游戏是这样的:改为LDA $XXXX,X 那么就会破坏了寄存器A原来的数据了,后面的程序如果要直接用寄存器A的数值的话,那么就会造成游戏出错,如果后面的程序在用寄存器A的数值之前对寄存器A赋于新值就没事了。
+ a5 [4 J3 e; B. k( c& w  X' `# q  `2 E+ p+ a) j1 H+ o% c
接下来在RAM中找到B840:DE 62 06,如图7:
9 }% M; ?# |  v1 I4 F: L8 N$ p8 |7 ^0 @% ]
用笔纸抄下红框中数据,以便在查找,接得在RAM中把DE修改BD,如图8:
, n; }5 Y  C! C: S/ x
& b% ^+ y# Q* }, `2 q/ Q关闭DEBUG和RAM,回到游戏中测试吓暗器数量是否不减,暗器不减了,说明指令修改成功。如图9:
# h( c& z+ _& Q3 _: u3 B* g$ ~4 J- ?! r
关闭模拟器,接下来用十六进制修改工具(如UltraEdit32)修改ROM,还记得之前用纸笔抄下的数据么?. W' q# b/ s2 R/ f3 i9 M9 b
9 X0 g) r( U; |% P" s0 I& m
打开UltraEdit32,载入赤影战士ROM,编辑之前按一下Insert把插入方式设为覆盖方式,如图10:+ A; L, u/ C( k
2 A4 K! S% F) e! z. M
点击UltraEdit32“搜索”>“查找”,在弹出查找框中查找内容(N)后面方框中输入你用纸笔抄下的数据,再点“查找下一个”就能找到这个数据,如图11:
7 Y" l1 t4 b0 h& ?' W% O
. W4 y* E9 l* Y% F' j) B如图12,结果出来,UltraEdit32高亮度显示你就是要找的数据,把DE修改为BD,再点“文件”>“保存”保存你修改结果。如图13:
/ a  R( @* V3 y; }& T" G. Y! O$ F3 }% p1 k7 k- W2 K9 i/ D8 d1 T9 Q4 t
关闭UltraEdit32打开模拟器载入修改后的ROM测试暗器数量是否不减,不减的话说明修改成功了,如图14:
& F) n# @/ Z; Q' z; N; T
' R! `8 Q7 [, i: z  w' Q暗器雷数量不减修改方法和暗器飞镖数量不减修改方法一样。就不再说了,留给大家练习一下。
* r% k9 A8 k& W/ x3 Q7 L+ V2 E' R7 |  Y9 f2 v; A4 C- ^
[ 本帖最后由 疾风之狼 于 2009-10-14 15:08 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

2

查看全部评分

签到天数: 2017 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:28:36 | 显示全部楼层
(2)放雷电必杀不扣体力
' Z/ h0 K1 ]* ?. d打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏,打开RAM和DEBUG,查询EC作弊码得知体力地址是6F0," O! n9 W3 B' P) M7 }) N
- r$ s2 u, J1 H! s1 z! Q. z
估计大家看暗器不减HACK教学后就知如何设置断点跟踪,我就不再说了,设置好断点后,回到游戏,按紧B键不放使出雷电必杀,
2 c5 W' u1 S0 Q- _1 [) B2 [9 _( G) n" q5 w, i3 _
当雷电必杀发出时,程序中断,程序停在B6FC:9D F006 STA$06F0,X这行,如图15:注意B6F6:E9 08 SBC#$08这条指令,这条指令作用是把/ [6 z7 c  A3 X3 r

: H: G: ]  x: U8 ?# ?地址06F0减去8,大家都知道赤影战士放雷电必杀后会扣去8点体力,而这个08正好是放雷电必杀所需要扣的体力,只要把08修改成00的话就不会扣体力。(当然你也可以修改成01,发必杀只扣1格体力啦^_^)0 L8 X% j, y; v+ _' ]* `# G
4 n& Y) I1 Z% W$ z9 V5 A$ b
转到RAM,找到B6F6:E9 08,把图中红色方框数据抄下,以便查找。如图16:把08修改为00就不扣体力了,如图17:关闭RAM和DEBUG,再重启游戏,再发动必杀,不扣体力的话说明修改成功了。' t' l: U- v' I) Z
( q4 a& v6 L( ]
如图18:关闭模拟器,打开UltraEdit32,载入ROM,编辑之前按一下Insert把插入方式设为覆盖方式,点击“搜索”>“查找”,查找之前抄下的数据,找到如图19的数据:把08修改成00,再保存退出,如图20:
( P+ U. l+ [3 l% S
2 V7 U0 N: @7 {. X2 V# N再进模拟器打开修改后的ROM测试发必杀是否不减体力,不减体力的话说明修改成功。% W0 r' h+ _) }$ B4 t' Q8 }
8 _# q4 d, ~- s! P2 ^1 z
PS:跌落损伤修改方法和发雷电必杀修改方法一样,我不再说了,留给大家练习,方法设置好断点,再找个地方跳楼自杀(-_-),就能跟踪找到地址了......
& ~* c# l' n& @- R. _. b3 S; [  b
/ W5 V) ^. a; w* y6 A5 l偶找个时间再继续发如何HACK受攻击不减血和一开始拥有99个雷吧.......

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

签到天数: 2017 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:27:29 | 显示全部楼层
(3)受攻击不减血: H) r) W6 G( @
打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏后,打开RAM和DEBUG,同样用体力EC作弊码6F0来设置断点,设置好断点后,
& K+ s% b/ K/ Y
+ T- j( s0 Q( ?# `  p" V6 p回到游戏被敌人打一下,当敌人攻击主角时,程序中断,程序停在AC69:9D F006 STA $06F0,X这一行,如图21: $ x' Y7 \4 g/ E% [

8 ^* g; F5 }! B: J; C# t. y0 \注意AC69地址前面的AC63:E5 9D SBC$9D,这条指令作用将06F0,X地址数值减去009D地址数值。单单只将SBC指令修改LDA指令会有问题,偶考虑只有通过无条件转移指令(4C)再添加指令来达到不减血.....
4 y" x7 i& X* e. \$ V+ c, q' a2 I/ m& r8 Z
首先抄下如图22的数据,方便查找:之后在RAM中查找寻找连续储存的0xFF,可以在前面也可以在后面,也可以寻找连续储存的0x00,注意的是00是中断指令,有时候修改了游戏会出错。看情况吧。一般选择在连续储存的00中段开始加入修改数据。) P7 H% Z5 X9 |% i7 U. M/ L

  _" A% c" |) X" w4 y偶在RAM后面FFC3~FFDF找到一些连续储存的FF,如图23红框中连续储存的FF,把FF前面的数据抄下,方便查找,接着测试吓这些FF是否能使用.....8 @7 q$ Q3 x# _; }2 c

+ E- k0 e; p2 W5 H/ P% S方法如下:
- Y' V  ^0 Z( }2 ^9 ~
( t& z2 L3 e# ]9 D2 P  u在RAM中把AC69的9D F0 06修改为4C C4 FF,指令说明:4C C4 FF作用是跳转到地址FFC4继续执行,4C是无条件跳转,如图24、25:# K2 c- A0 k6 x# j/ l* i- U: B
# Z% c$ A; ~* C* t2 z
为安全得想,偶跳过第一个的FF,而在第二个FF开始输入9D F0 06 4C 6C AC,指令说明:9D F0 06是以X为偏移量,把寄存器A内容送入06F0,X地址中,4C 6C AC是跳转到AC6C继续执行,如图26:4 ?) H! Z0 ~% Y1 P6 l7 ^
. l/ p! q  u1 J/ f
接下来关闭DEBUG和RAM,回到游戏看吓游戏是否正常游戏,能正常游戏说明地址能够跳转使用。如图27:
' U$ P0 \, `$ O* y$ H% v7 V6 i  [
4 d1 Q7 S( B% {接下来打开RAM,在FFC4地址把9D F0 06 4C 6C AC FF FF FF FF FF修改为9D F0 06 A9 10 9D F0 06 4C 6C AC,如图28:
7 @) Y' p. a% b+ @3 b- u4 H+ G! s- o& ~% t3 [2 I
指令说明:A9 10是把数值10读入寄存器A中,9D F0 06是以X为偏移量,把寄存器A数值10送入06F0,X地址中,4C 6C AC是跳回AC6C继续执行/ D$ }" Z  G( m. A: F4 h! L
: s1 r+ ^# Q. i; V; ~4 r" f
关闭RAM,看看游戏是否减血了,不减血说明修改成功,如图29:* }/ `6 G  V# z9 c, J
2 y0 z  j4 b& ]- }, W" }( d  P3 C
接下来,打开UltraEdit32,载入ROM,查找上图22的数据,如图30:' t% Q5 f! S* V8 V( K! w/ N

6 h5 s, j# B+ s5 ]8 B) d找到把图中的9D F0 06修改为4C C4 FF,如图31、32:* [1 v: t1 K0 C. s4 W
: W7 @3 [; @8 `4 l0 S& k# h
接着,查找上图23连续储存的FF前面的数据,比如上图23的连续储存的FF前面是20 86 A0 4C 22 EC,找到后,在20 86 A0 4C 22 EC后面的就是你要添加指令的连续储存FF,如图33:
$ {) s2 b# X" N- b+ p9 r9 D7 u8 _3 W/ a6 v1 X1 r8 m6 @
同样跳过第一个FF,而在第二个FF开始添加指令,如图34:+ u  x8 p8 U! T7 `
(如果你真要在第一个FF开始添加指令的话也不是不可以;假设你是在第一个FF开始添加指令的话,那图32的4C C4 FF应该修改为4C C3 FF)
) @0 W) K2 y7 W: ~! P0 j0 I$ l0 t/ X5 _7 f5 a4 y8 S; v
保存ROM,退出UltraEdit32,再进模拟器测试是否不减血,不减血说明成功了.....,如图35:7 X& [+ A  S/ t0 S
! h( R1 Z# v. X0 j
[ 本帖最后由 疾风之狼 于 2008-12-1 12:24 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

签到天数: 2017 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:29:31 | 显示全部楼层
(4)一开始拥有99个暗器雷
% `, ]: ]0 J0 O. |( [首先要找到体力初始值,大家知道在赤影战士中体力初始值什么时候开始读取并放到06F0、06F4地址中?答案是在选择人物后。(注:06F0是对应1P体力值地址,06F4是对应2P体力值地址)- D, I* i& o" W' G

9 C! J9 F/ W& G+ n) q+ g; Q要想在游戏开始后立即就有99暗器雷,必须在数据初始化后面加入暗器雷和暗器数量指令代码,如何添加指令代码?方法是上面的受攻击血不减方法一样,同样用无条件跳转指令4C再添加指令。( B2 p- X, f$ x" k
! r$ t  S5 f. g4 U: K
偶决定来教大家如何双人游戏时两人一开始拥有99暗器雷,打开VirtualNes Debugger并加载赤影战士日版ROM,选择双人游戏进入到选择人物后,打开RAM和DEBUG,用2P体力值EC码06F4地址来作为断点.....
+ M+ O: v! V% f# M: E* f; P9 {1 r$ {2 R6 d4 e) L4 }1 @- {
设置好断点后,回到游戏中,按START选择好人物后,程序发生中断停在A2FC:8D F406 STA$06F4 :[06F4]=A=0x10这一行,如图36:,注意前面A2F7:A9 10 LDA#$10 :A=0x10这一行,这个指令说明是把数值10读入寄存器A,而A2F9:8D F006 STA$06F0 :[06F0]=A=0x10和A2FC:8D F406 STA$06F4 :[06F4]=A=0x10分别是把寄存器A数值读入06F0、06F4两个地址中(注:06F0是对应1P体力值地址,06F4是对应2P体力值地址)) v0 {$ o8 i! a) {4 t

* x, V' m" t! D$ l. ]A2F7:A9 10   LDA#$10  :A=0x10          -->把数值10读入寄存器A# {( @4 x8 c0 y. o! y7 f, J, v
A2F9:8D F006 STA$06F0 :[06F0]=A=0x10   -->把寄存器A的数值送入06F0地址0 ]6 |$ y) O* x, G
A2FC:8D F406 STA$06F4 :[06F4]=A=0x10   -->把寄存器A的数值送入06F4地址* ~) A( G) p( N$ g

+ Y% \( |! W0 x5 h在RAM中找到A2F7~A2FC地址,如图37:把图37中红框的数据用笔纸抄下来,抄多点,顺便把红框后边的A9 10 85 27 85 37 85 23 A9 90 85 29 A9 30 85 2D A9 19也一并抄下,目的提高查找准确率,接下来在RAM中查找一些连续储存的FF,偶懒得找了,还是用图23找到那个连续储存的FF来添加指令吧....
3 z4 U0 _8 v: b5 {
/ C  @/ G, n, M* V接下来在RAM把A2FC的8D F4 06修改为4C C4 FF,如图38、39:' Z9 O- A, `' Q9 C+ h* y# u5 `
/ M0 W1 w) [* K- X+ A; ?
接下来拉到滚动条来到FFC3地址,偶还是跳过第一个FF,而在第二个FF(FFC4)开始添加指令:8D F4 06 A9 01 8D 71 06 8D 75 06 A9 63 8D 62 06 8D 66 06 4C FF A2,如图40:
" K, c) T9 @0 V2 z
0 d4 }+ Z/ {) A/ k! \6 H' K指令说明:A9 01是把数值01读入寄存器A,8D 71 06是把寄存器A数值送入0671地址(1P暗器种类地址),8D 75 06是把寄存器A数值送入0675地址(2P暗器种类地址),A9 63是把数值63读入寄存器A,8D 62 06是把寄存器A数值送入0626地址(1P暗器数量地址),8D 66 06是把寄存器A数值送入0666地址(2P暗器数量地址),4C FF A2是跳回A2FF地址继续执行% H! A: B/ t" x+ y$ F: V( e' c
, `  t; v9 K5 a) D& X2 ]( F. M
接下来关闭RAM和DEBUG,重启游戏,进入游戏后暗器数是99,按一下攻击,如果放的是暗器雷说明修改成功!如图41:: G) b- @  \0 b/ k  i; d9 P1 V  z1 q
/ k& A, v( |4 |" P# N$ K5 ]3 L
接下来关闭模拟器,打开UltraEdit32,载入ROM,查找你刚才用笔纸抄下的数据,找到后把8D F4 06修改为4C C4 FF,如图42、43:2 x1 k, ]4 w4 ]) |4 u  D

; A; p7 i; C; v0 n接下来在找到上图33的连续储存的FF地方,偶还是跳过第一个FF,而在第二个FF开始添加指令,如图44:7 P: |& L8 C7 k1 ~! h* y7 D+ g0 c

- U2 s( G8 Y! r( A# X保存ROM,关闭UltraEdit32,打开模拟器载入修改好的ROM测试,如图45:如没什么意外发生的话说明修改成功!
1 H  b+ x( Q6 |; U" ~' b5 {6 E: @, Y9 V2 O
菜鸟HACK教程到此完成!以偶目前HACK水平来说还算是一只HACK菜鸟,没有和尚HACK技术那么厉害!:L

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
头像被屏蔽

签到天数: 5 天

[LV.2]偶尔看看I

发表于 2007-4-21 10:10:17 | 显示全部楼层
基本上已经看懂,正在HACK尝试中.............

该用户从未签到

发表于 2007-4-21 10:27:49 | 显示全部楼层
- ]* a2 l: t! l8 g+ U1 h
适合新手学习修改的教材

该用户从未签到

发表于 2007-4-21 10:53:42 | 显示全部楼层
好东西!谢谢楼主了!:chongbai: 辛苦辛苦!努力学习中!:lol

该用户从未签到

发表于 2007-4-21 11:11:37 | 显示全部楼层
最近还真打算想学一下hack游戏,真是感谢了 。:)
头像被屏蔽

该用户从未签到

发表于 2007-4-21 21:06:08 | 显示全部楼层
为了Hack事业,顶一个~:handshake

该用户从未签到

发表于 2007-4-22 11:17:10 | 显示全部楼层
疾风之狼大哥更新了:loveliness:
3 s1 {, z' f8 Z( f4 m, e# {" C$ E不减血的教材

签到天数: 2017 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-22 11:43:36 | 显示全部楼层
这个不减血教程用到无条件转移指令4C再添加指令,与前面只单单修改指令有所不同.....

签到天数: 110 天

[LV.6]常住居民II

发表于 2007-4-22 12:48:49 | 显示全部楼层
适合菜鸟的吗?:lol 疾风之狼加油:)

该用户从未签到

发表于 2007-4-25 12:30:19 | 显示全部楼层
呵呵 完成了,得好好学习
" ~, }7 t) P5 V. b, g$ w  i  Cxiaofa兄弟也在这啊

签到天数: 7 天

[LV.3]偶尔看看II

发表于 2007-11-3 09:46:39 | 显示全部楼层
教程在这里呢,支持一下老狼,加油:L

签到天数: 26 天

[LV.4]偶尔看看III

发表于 2007-11-5 21:46:57 | 显示全部楼层
终于可以自己去HACK简单的游戏了:loveliness:
& W% u/ |- O! q# Z6 F激动啊;P

该用户从未签到

发表于 2007-11-14 11:55:27 | 显示全部楼层
值得新手学习,此贴太好了,以后要是修改游戏先从此文入手。

该用户从未签到

发表于 2007-11-14 13:11:48 | 显示全部楼层
NES调试跟踪工具VirtualNes Debugger版哪里有得下载的啊:L  找不到啊,:Q 闷死:(

签到天数: 1 天

[LV.1]初来乍到

发表于 2007-11-18 13:42:36 | 显示全部楼层
随便看了一下,一头的雾水:yumen: 看来还要花点时间来学习

该用户从未签到

发表于 2007-11-19 20:44:56 | 显示全部楼层
好说的太好了
8 f; `2 Z: ^# ~! M我会了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2025-7-23 15:04 , Processed in 1.100586 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表