欢迎来到天天文库
浏览记录
ID:8805980
大小:44.00 KB
页数:2页
时间:2018-04-08
《fc反编译的简单方法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、FC反编译的简单方法:适用范围:mapper=0,并且没有trainer如何判断适用范围呢?只要看文件头就知道了。用16进制编辑器打开ROM,查看前面的16个字节。文件头格式偏移字节数内容0-34字符串“NES^Z”用来识别.NES文件4116kBROM的数目518kBVROM的数目61D0:1=垂直镜像,0=水平镜像 D1:1=有电池记忆,SRAM地址$6000-$7FFF D2:1=在$7000-$71FF有一个512字节的trainer D3:1=4屏幕VRAM布局 D4-D7:ROMMapper的低4位71D0-D3:保留,必须是0(准备作为副Mapper号^_^)
2、 D4-D7:ROMMapper的高4位8-F8保留,必须是016-16KxMROM段升序排列,如果存在trainer,它的512字节摆在ROM段之前-EOF8KxNVROM段,升序排列要求bit7的高位(即D4-D7)为0,bit6的高位(即D4-D7)为0,则mapper=0要求bit6的D2为0,则没有trainer步骤1.找出3个重要地址nmi,start,irp2.提取程序部分3.用工具反汇编4.分析程序祥细操作1找出3个重要地址nmi,start,irq可用16进制编辑器或”No$nes”,打开ROM,并跳到FFFA,记录下由FFFA开始的连续6个字节。ROM和别的程序一
3、样,在记录地址时,总是先记录低位再记录高位的。低位高位NMIFFFAFFFBSTARTFFFCFFFDIRQFFFEFFFF这6个字节分别是nmi,start,irq的低位和高位了。Start一般是C000或者8000(16进制的)2提取程序部分先要知道mapper=0,ROM的数据结构。文件头程序填充FF3个重要地址2段字模操作是:去除ROM的文件头16个字节去除由全是FF的部分到末尾的所有内容。余下就是程序部分。另存。这个文件是ROM的一部分,我取后缀名叫part13用工具反汇编打开“反汇编器.exe”,点右面”6502”用这个“反汇编器.exe”打开这个.part1选择文件时,
4、选”ALLFILES”就可以显示了。点打开后,选中”BIN文件”,并写入start的地址(见步骤1)确定4分析程序由于程序一般中数据和程序混合的,自己要跟踪代码,分析那一段是数据,那一段是指令。一般程序是从第一行开始执行,并且不会拿数据来当指令执行。也就是说从第一行开始,只要看“跳转”就可以知道程序经过的地址,没有经过的就是数据了。
此文档下载收益归作者所有