EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2070 天

[LV.Master]伴坛终老

发表于 2007-4-21 05:26:54 | 显示全部楼层 |阅读模式
注意:转载请注明本人名字和文章出处!
! k; t7 m- K$ N/ u0 ]& i) y4 y# x: x& t6 X/ y4 ~6 Y
菜鸟NES HACK简单教程(偶应N多人要求才做这个教程,有错误请指正:L )* _! a% {' d& k) C
: p7 _8 L# H: p5 N# E5 \. f
NESHACK相关资料下载:http://bbs.emu618.com/forum/viewthread.php?tid=12675&extra=page%3D2
, D) ~9 t4 t% W$ g
& v8 v, p$ k$ d/ t6052汇编大奥秘(详细介绍FC的汇编语言,推荐下载):http://bbs.emu618.com/forum/viewthread.php?tid=20393&extra=page%3D1
" V, G4 w- ^" g9 c" d2 Q# I$ v/ i% M6 Z" ]0 n; N" \. s: w
开始之前先说几句废话
% |' G9 K2 ^0 y  \: _
7 L, x3 ^# K. W# p# ?4 o+ w第一,HACK之前先了解一下6502汇编指令,NES相关资料里有指令集说明文档,如果你看不懂英文的话就下载《6502汇编大奥秘》,里面有指令中文说明........^_^
: d1 ?( [5 E  ^4 T5 M
7 D* e% M) w4 E/ \5 d- h( |个人建议:没必要把6502全部汇编指令硬背下来再跟踪调试,那样会很累,你可以一边调试一边查询指令说明.......
0 A8 J! |  G# ]! b3 i  H3 c4 r4 a2 ^  H# x
第二,还需要准备一些工具:NES调试跟踪工具(VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具)、十六进制之类编辑工具(Winhex或者UltraEdit32)
7 S2 |/ {0 \' c$ c4 g" y  D/ o/ ~5 L
第三,了解修改步骤:
/ ^0 ?/ k7 K! ?! v1、首先要确定你要修改什么。连要修改什么都不知道,那怎能谈上修改呢。! n* X9 f. _6 I1 L
2、获取作弊码,换句话说就是要获得要修改数据的地址。推荐使用EC,这个软件自带作弊码和跟踪修改功能。) h' @2 J( z; Z7 j8 z$ u
3、获得指令代码及其在Rom中的地址。一般通过VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具,再配合内存查看和十六进制之编辑工具确定指令以数据方式储存在Rom中的哪个地址。: c7 t* y3 Q9 T/ g+ s0 ?
4、修改相应指令或数据。一般来说要做尽量少的修改,而且不能让程序运行出错。
* d, l8 O& `9 W; k4 Q5、测试游戏运行情况,看游戏能不能按照你修改目的正常运行。3 h- ^+ i  J2 N
% {: C$ k0 K: k- `' e4 p
第四,偶以日版《赤影战士》和VirtualNes Debugger版来为例子教大家如何HACK:
8 I! e# g8 |$ ^! o, ], _( p
% E. P) G$ D' c3 D7 a偶需要修改的数据:暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷$ {/ r3 U8 u% ]' G3 {% O
& t1 q# d! G% o8 Z
1、获取作弊码,这个好容易得到,EC这个软件附带N多作弊码,省去自已手工查找作弊码了。^_^
6 S% l8 s' ], {[P1 生命值]: ^: ?# G4 ^) }' v5 D6 L' L
ON=6F0,10
* a1 \5 x8 B1 V$ l8 k( |9 N
1 l, `! {. H! C2 M' v[P1 暗器数量]
% B. A* N/ Q1 _$ _9 TON=662,FF. q+ b$ N* x& a: u) C7 c

+ _. {" }8 d- n! B+ w- @. Y[P1 武器种类]
: P1 M; O% t' @) E- f8 b刀=6B2,0# x* J0 T$ t0 X% I8 V  G
ON=6B2,3
3 n) Q0 K' z8 N7 G/ \& v6 U6 C7 t) f7 M4 X9 j, P  k
[P1 武器威力]
, p: Q2 M% V* E1 o7 bON=680,FF* w0 D& e# ?: c" o

6 c+ X3 C  O/ Z3 }[P1 暗器种类]
! |% `7 ~6 C0 I% i$ }1 [/ p标=671,0. f- S; O7 m; c; R( Y3 ^( u. n3 T
雷=671,1
- n5 z) r# A7 V- D5 w* `/ b. D. U( Z( l" h$ w9 |0 Y  P. D
[P1 隐身]
! E* v# I0 u7 b- Y. C; KOFF=0000,0
7 L( W" i3 B& @! P' QON=601,4C) u$ n; O4 Z$ \% U- X; P

9 A8 e) p) `. `4 I[P2 生命值]1 Z5 t7 A& Q1 S6 w! w8 ~1 T8 N
ON=6F4,10
$ w, }" d* C, d3 L( k/ b/ M
8 o& u; ^+ A4 |" b8 T[P2 暗器数量]
; T4 z/ d8 t) P) x9 y! \1 `9 }ON=666,FF( o! o2 m3 P5 {: O

5 m/ H2 V* x8 N! K  x3 c( o[P2 武器种类]
1 s5 S6 [% j* n/ E0 ~2 Y刀=6B6,0, ]" x: X* h, T
ON=6B6,3: H  H0 d; K# \. A$ V2 e
: d5 v# f3 M) p1 Q5 L
[P2 武器威力]  F" G/ ]2 D# Z& S: P2 w
ON=684,FF3 b8 }4 z7 F" G5 i' _/ R/ ^! ~3 M" O
+ f4 A% g' P0 n% A: u2 ^9 x9 r
[P2 暗器种类]
. E8 [& y. @; j  \. M/ m标=675,0
$ q* }0 {/ }  a8 q$ `5 n( O雷=675,1
4 X, C8 N5 P: s& ?' P
8 \+ y" \% e  X4 u& t[P2 隐身]; b( J( ], }' N" y/ f6 l
OFF=0000,0
+ B6 A8 f  ~" b0 l% }ON=605,4C
* C( w+ `& @- Q" M8 `* X. a  q7 B5 Z1 w# L1 I
[GameInfo]! W+ L( _/ b4 W& M" S# M
Name=Shadow of the Ninja (FC/NES)( p1 d9 w- `$ j* F
System=FC; p5 S2 Y/ X( h, T' c7 y) k
Text=赤影战士(水上魂斗罗),双人、动作游戏,由大胖子提供!
- V$ n' C& U6 @+ \7 f3 G$ _+ H; E2 z$ ?# Z2 C- L# V( r
[ 本帖最后由 疾风之狼 于 2009-10-14 15:09 编辑 ]

评分

1

查看全部评分

签到天数: 2070 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:27:43 | 显示全部楼层
2、通过调试跟踪获取指令代码及其在Rom中的地址,并用16进制编辑工具修改ROM其中数据
- m( ^) A+ k! Z$ ^- C3 X偶按照暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷顺序来教大家如何跟踪调试修改:. n* ?$ f$ X- {

4 n5 O: B8 P# f, j6 W$ M(1)暗器不减:1 v8 e0 k7 i6 \

! w! u: B& Y5 f首先打开VirtualNes Debugger并加载赤影战士日版ROM,如图1:
) Z" R" G1 V1 ?1 ?
- M+ E) y, u# F接下来游戏进行到获到暗器飞镖20个,如图2:/ Q8 e, T( c1 [7 T% b
# r& R' O6 `6 ?' A. D# o5 U2 v
接下来开始跟踪飞镖数量,先打开RAM,再打开DEBUG,先打开DEBUG的话,不然RAM就用不来:如图3、图4:3 ], \0 P# F7 d# Q

& ?9 P8 p5 @4 M* ?. r$ r* R% F* R先点暂停,根据如下面作弊码提供的暗器数量地址,如暗器数量地址是662,就在注释内出现后面方框中输入[0662](注:可以用这东东当条件断点),再点右边确定让游戏继续运行,如图5:% u# h5 }, n2 z

# S0 b7 t5 w& N[P1 暗器数量]$ E8 u0 q- B- Y
ON=662,FF! p; i+ `/ E1 n6 p( Z
7 ~9 N1 z; v0 `9 c! X% e& f( ]9 M+ l
使用一次飞镖,程序会发生中断停在B840这一行,如图6:7 k1 C& ~+ Z; H, P2 w
) }* A2 g% r( [8 f
B840 : DE 6206 DEC $0662,X;[0662]-- =0x13
" `4 k, Z1 U6 {- K( Z
1 Z' f2 p* I" B: {, {! ^/ X7 d/ {6 e; R查指令表得知B840这个地址DEC $0662,X指令作用是将0662+(X)=真正暗器地址的数值减1;既然这样,只要把这条DEC $0662,X指令改为LDA $0662,X就可以让暗器数量不减了。LDA $0662,X作用是把0662+(X)=真正暗器地址的数值读入寄存器A。(X)是寄存器X的数值。
( L$ t& }( u! ?3 W& L+ x1 v# w  R举个例子:假设X寄存器数值是6,指令是“LDA $1234,X” 这条指令看上是将$1234地址数值读入寄存器A,但实际上$1234不是真正数值存放地址,1234必须加上寄存器X的数值才是真正数值存放的地址。1234+(X=6)=123A,LDA $1234,X指令应该是这样解释:将1234+(X=6)=123A地址读入寄存器A。
5 Z' c$ G9 T9 Q0 wLDA xxxx,Y和LDA xxxx,X一样,不过寄存器X变成寄存器Y。
, P1 i0 Y8 N$ Q: v0 j# c# [3 D* M6 W: E: g
查指令机器码得知DE是DEC - Absolute,X,BD是LDA - Absolute,X,注意寻区方式要一样....把DE修改为BD就可以不减暗器数量了。
6 Y9 _  C5 v/ C9 I, |" c% o+ ^; {5 }( ]
注意:别把BD修改成其他LDA指令,这样会死机的,因为指令寻区方式不一样。
/ U8 L( A: c9 q, D( J
9 a3 a. x) D" f: v另外,有一些其他游戏是这样的:改为LDA $XXXX,X 那么就会破坏了寄存器A原来的数据了,后面的程序如果要直接用寄存器A的数值的话,那么就会造成游戏出错,如果后面的程序在用寄存器A的数值之前对寄存器A赋于新值就没事了。
. ?3 l, A" @1 g" z* \) X0 A1 D: M6 Q: w* t
接下来在RAM中找到B840:DE 62 06,如图7:
) d8 `6 \$ w5 S) O9 q% y* ]8 t) C" ^8 y4 h% S
用笔纸抄下红框中数据,以便在查找,接得在RAM中把DE修改BD,如图8:/ g# x0 T+ s* Z7 J- G
2 A4 U) x7 P9 R$ e7 v- s) L# }' M8 T
关闭DEBUG和RAM,回到游戏中测试吓暗器数量是否不减,暗器不减了,说明指令修改成功。如图9:) P+ k" q- M1 }0 y, ?6 Y

3 i& D: D& M( {  w2 r. b% A& D( @关闭模拟器,接下来用十六进制修改工具(如UltraEdit32)修改ROM,还记得之前用纸笔抄下的数据么?) A5 {1 w  H$ J9 K7 u' S8 Z5 {

& V) l/ |- H3 I" I6 R- z) F打开UltraEdit32,载入赤影战士ROM,编辑之前按一下Insert把插入方式设为覆盖方式,如图10:
! A! C  e8 W+ d; w% A3 V3 N. c( U) L/ l
点击UltraEdit32“搜索”>“查找”,在弹出查找框中查找内容(N)后面方框中输入你用纸笔抄下的数据,再点“查找下一个”就能找到这个数据,如图11:
6 m, x6 b5 i4 \& E
8 U' U" A, o( U% V如图12,结果出来,UltraEdit32高亮度显示你就是要找的数据,把DE修改为BD,再点“文件”>“保存”保存你修改结果。如图13:- ~7 q; ^2 s2 N& n' o

+ U8 V" k2 `# q+ K. ?0 E" f关闭UltraEdit32打开模拟器载入修改后的ROM测试暗器数量是否不减,不减的话说明修改成功了,如图14:) ^7 b% c* {, H5 |0 L2 B/ i1 v: [

1 j% U" f# o" O& J, `暗器雷数量不减修改方法和暗器飞镖数量不减修改方法一样。就不再说了,留给大家练习一下。- X% t/ D3 a) v, c+ ^& [' e
* y8 V' g5 [- E4 a% e! j! `* a
[ 本帖最后由 疾风之狼 于 2009-10-14 15:08 编辑 ]

本帖子中包含更多资源

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

x

评分

2

查看全部评分

签到天数: 2070 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:28:36 | 显示全部楼层
(2)放雷电必杀不扣体力% _' x' L/ d/ K. M. b) S
打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏,打开RAM和DEBUG,查询EC作弊码得知体力地址是6F0,8 t/ ^# u5 e  w8 N

8 I% L/ b0 M* B; J5 B2 B) l8 }( j" M* J; [估计大家看暗器不减HACK教学后就知如何设置断点跟踪,我就不再说了,设置好断点后,回到游戏,按紧B键不放使出雷电必杀,. d, |2 L7 r0 d, v8 L
+ L, q5 \6 l# U. K
当雷电必杀发出时,程序中断,程序停在B6FC:9D F006 STA$06F0,X这行,如图15:注意B6F6:E9 08 SBC#$08这条指令,这条指令作用是把
) {2 e4 R% |7 u3 d7 b* F/ }
2 h6 x2 U5 u! l  E! ^+ n3 ~地址06F0减去8,大家都知道赤影战士放雷电必杀后会扣去8点体力,而这个08正好是放雷电必杀所需要扣的体力,只要把08修改成00的话就不会扣体力。(当然你也可以修改成01,发必杀只扣1格体力啦^_^)
' I7 c, \) r  @6 z9 u
* b. T4 T' s. B; u转到RAM,找到B6F6:E9 08,把图中红色方框数据抄下,以便查找。如图16:把08修改为00就不扣体力了,如图17:关闭RAM和DEBUG,再重启游戏,再发动必杀,不扣体力的话说明修改成功了。, x2 M8 a" Q* L/ `4 ?- d' |

/ h7 V! P9 U4 I0 U! P' {如图18:关闭模拟器,打开UltraEdit32,载入ROM,编辑之前按一下Insert把插入方式设为覆盖方式,点击“搜索”>“查找”,查找之前抄下的数据,找到如图19的数据:把08修改成00,再保存退出,如图20:
: z6 R2 n, T/ P2 l/ e6 _8 a) x" z
, V" E. Z9 I+ ~再进模拟器打开修改后的ROM测试发必杀是否不减体力,不减体力的话说明修改成功。
; v9 `8 V0 t$ G2 A  P8 ^; L7 Q* |: ^9 U  v+ P. e8 A
PS:跌落损伤修改方法和发雷电必杀修改方法一样,我不再说了,留给大家练习,方法设置好断点,再找个地方跳楼自杀(-_-),就能跟踪找到地址了......
# O% H6 u/ g) [# U3 I
0 \) L0 ?  {4 y$ T偶找个时间再继续发如何HACK受攻击不减血和一开始拥有99个雷吧.......

本帖子中包含更多资源

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

x

签到天数: 2070 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:27:29 | 显示全部楼层
(3)受攻击不减血5 r5 ~& G" [1 s( @  f
打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏后,打开RAM和DEBUG,同样用体力EC作弊码6F0来设置断点,设置好断点后,
* ~2 y# v: ]6 s. ]" h0 A9 c& {  y" t$ ~8 ^3 [, b0 \+ z: q" t
回到游戏被敌人打一下,当敌人攻击主角时,程序中断,程序停在AC69:9D F006 STA $06F0,X这一行,如图21: , {7 @! p, u( t, S

) v" @. K( U6 v$ j  v( x% ?; M$ ~注意AC69地址前面的AC63:E5 9D SBC$9D,这条指令作用将06F0,X地址数值减去009D地址数值。单单只将SBC指令修改LDA指令会有问题,偶考虑只有通过无条件转移指令(4C)再添加指令来达到不减血.....  H2 M9 U: \' e- {

9 l: V! J6 n  h# j首先抄下如图22的数据,方便查找:之后在RAM中查找寻找连续储存的0xFF,可以在前面也可以在后面,也可以寻找连续储存的0x00,注意的是00是中断指令,有时候修改了游戏会出错。看情况吧。一般选择在连续储存的00中段开始加入修改数据。
- \- X7 y0 \; f# `! R8 x
: n; M! i5 o' x偶在RAM后面FFC3~FFDF找到一些连续储存的FF,如图23红框中连续储存的FF,把FF前面的数据抄下,方便查找,接着测试吓这些FF是否能使用.....- h) w5 s; r  H0 G  B

/ m- D3 C7 n% J: ^  y+ q* W方法如下:' Q8 o8 O5 r% m3 i! ]  v2 V

- l; h3 Y7 g; Y$ v5 M' h1 Z在RAM中把AC69的9D F0 06修改为4C C4 FF,指令说明:4C C4 FF作用是跳转到地址FFC4继续执行,4C是无条件跳转,如图24、25:. e" H7 C5 v; M* W; a
" p( e8 B$ r+ |5 x1 D: h7 R0 R2 G
为安全得想,偶跳过第一个的FF,而在第二个FF开始输入9D F0 06 4C 6C AC,指令说明:9D F0 06是以X为偏移量,把寄存器A内容送入06F0,X地址中,4C 6C AC是跳转到AC6C继续执行,如图26:7 c) Z' u9 y, U

) T- W7 _  t2 {$ [接下来关闭DEBUG和RAM,回到游戏看吓游戏是否正常游戏,能正常游戏说明地址能够跳转使用。如图27:
' Y: u# ]/ i  k4 {# Z6 F2 E
) ?# c2 ^- i( D, {% u1 q接下来打开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:
+ `3 J  B5 H& r. l1 w) j
5 U, E* \8 \& ]指令说明:A9 10是把数值10读入寄存器A中,9D F0 06是以X为偏移量,把寄存器A数值10送入06F0,X地址中,4C 6C AC是跳回AC6C继续执行4 o, A; q/ \% `# ?1 x

' E  O- A: o& ?4 V# @' X关闭RAM,看看游戏是否减血了,不减血说明修改成功,如图29:+ i6 l& D1 o' P7 k% g' D, i1 x+ S

. a, c! Y3 J5 i) W1 x  l接下来,打开UltraEdit32,载入ROM,查找上图22的数据,如图30:
+ ^5 E& K4 _- a, h: r$ T9 B0 y
) @6 Y& @: H& \7 m1 l1 p找到把图中的9D F0 06修改为4C C4 FF,如图31、32:
/ B4 s) P- [$ X4 a. q7 c
: A; {2 V3 s9 h2 H1 w接着,查找上图23连续储存的FF前面的数据,比如上图23的连续储存的FF前面是20 86 A0 4C 22 EC,找到后,在20 86 A0 4C 22 EC后面的就是你要添加指令的连续储存FF,如图33:
* @  y' X* W: e; }. w$ P+ z6 R
3 X! u4 L6 ?, s& j7 \0 r. a同样跳过第一个FF,而在第二个FF开始添加指令,如图34:
! F$ D& n1 c( c! C(如果你真要在第一个FF开始添加指令的话也不是不可以;假设你是在第一个FF开始添加指令的话,那图32的4C C4 FF应该修改为4C C3 FF)/ g, g/ P" k) Y! B
" S0 [6 V- W# G3 G; i
保存ROM,退出UltraEdit32,再进模拟器测试是否不减血,不减血说明成功了.....,如图35:
+ R+ \, }/ P, i2 n
7 r" v! c  L7 T4 D1 S; ^+ p- d9 G[ 本帖最后由 疾风之狼 于 2008-12-1 12:24 编辑 ]

本帖子中包含更多资源

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

x

签到天数: 2070 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:29:31 | 显示全部楼层
(4)一开始拥有99个暗器雷
( @3 V; x4 V. ]8 ]- J+ h* v首先要找到体力初始值,大家知道在赤影战士中体力初始值什么时候开始读取并放到06F0、06F4地址中?答案是在选择人物后。(注:06F0是对应1P体力值地址,06F4是对应2P体力值地址)
, q% f( T7 v$ [- @. x: G% }$ E; q8 \
+ t! L; [% V9 L7 q8 w) H) d要想在游戏开始后立即就有99暗器雷,必须在数据初始化后面加入暗器雷和暗器数量指令代码,如何添加指令代码?方法是上面的受攻击血不减方法一样,同样用无条件跳转指令4C再添加指令。
+ G) ?* ]0 m3 _& p" h, t
1 p  V; N4 v/ ?' p# p, w偶决定来教大家如何双人游戏时两人一开始拥有99暗器雷,打开VirtualNes Debugger并加载赤影战士日版ROM,选择双人游戏进入到选择人物后,打开RAM和DEBUG,用2P体力值EC码06F4地址来作为断点.....
- F0 @" n; B# r0 c7 h) N& O$ |! o! ~$ ^- v
设置好断点后,回到游戏中,按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体力值地址)
; S7 o5 K/ a, S0 V: d9 \7 J, ^8 |2 m1 H! @# j! q
A2F7:A9 10   LDA#$10  :A=0x10          -->把数值10读入寄存器A
* j2 x+ Y- `2 [& {" h2 [A2F9:8D F006 STA$06F0 :[06F0]=A=0x10   -->把寄存器A的数值送入06F0地址2 n' I6 Q; D$ ]) b# K
A2FC:8D F406 STA$06F4 :[06F4]=A=0x10   -->把寄存器A的数值送入06F4地址
, U9 T# P* S& H& O. g
) y' m: v3 E/ ~5 N3 d" T* s; w8 S在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来添加指令吧..... v; W, e; A7 d: X0 P
6 Q2 P. y" `8 A! J9 c# i4 U8 B
接下来在RAM把A2FC的8D F4 06修改为4C C4 FF,如图38、39:
5 L) j2 l; z$ g: e! \9 m. j
% E1 [+ o! O! e1 P接下来拉到滚动条来到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:9 S' I7 V% Y2 d* b) t7 F8 l

$ L: u0 m) a) n! M7 Z; e% ]指令说明: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地址继续执行. T7 F; L# f0 t! R; M7 ^1 L: t9 D
5 c- ]3 V# r  i) Q9 ]
接下来关闭RAM和DEBUG,重启游戏,进入游戏后暗器数是99,按一下攻击,如果放的是暗器雷说明修改成功!如图41:; V* b) i7 D% ]; l

1 O$ O8 O) O. E接下来关闭模拟器,打开UltraEdit32,载入ROM,查找你刚才用笔纸抄下的数据,找到后把8D F4 06修改为4C C4 FF,如图42、43:% X6 n' P! N9 E# e
7 p3 p8 L5 {+ b. @) }. D
接下来在找到上图33的连续储存的FF地方,偶还是跳过第一个FF,而在第二个FF开始添加指令,如图44:# @4 S0 S5 {1 q' j. m' d

# A3 V, v0 U2 x# Y4 c保存ROM,关闭UltraEdit32,打开模拟器载入修改好的ROM测试,如图45:如没什么意外发生的话说明修改成功!
" M+ p$ a9 C4 M6 h( A% n' l; v5 h+ O! _; v& n
菜鸟HACK教程到此完成!以偶目前HACK水平来说还算是一只HACK菜鸟,没有和尚HACK技术那么厉害!:L

本帖子中包含更多资源

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

x
头像被屏蔽

签到天数: 5 天

[LV.2]偶尔看看I

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

该用户从未签到

发表于 2007-4-21 10:27:49 | 显示全部楼层

; R+ ?. d  y7 d& |/ c8 n; B. j适合新手学习修改的教材

该用户从未签到

发表于 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: + W$ K" z- W# S7 [! b  Q
不减血的教材

签到天数: 2070 天

[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 | 显示全部楼层
呵呵 完成了,得好好学习
$ ^9 S' @. J1 w! _4 Axiaofa兄弟也在这啊

签到天数: 7 天

[LV.3]偶尔看看II

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

签到天数: 26 天

[LV.4]偶尔看看III

发表于 2007-11-5 21:46:57 | 显示全部楼层
终于可以自己去HACK简单的游戏了:loveliness:
4 ]+ l" W! b7 V/ M0 v激动啊;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 | 显示全部楼层
好说的太好了 6 `) S4 W8 x+ a! y
我会了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-14 23:36 , Processed in 1.161133 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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