我正在使用以下 IDC 函数将 RAM 数据和代码部分从打包的二进制文件复制到我的富士通 FR 系统的正确运行时位置:
static idc_memcpy(source, dest, count, desc)
{
auto i, val;
SetCharPrm(INF_GENFLAGS, INFFL_LOADIDC|GetCharPrm(INF_GENFLAGS));
Message("Copy %a: Start\n", dest);
for(i = 0; i < count; i = i + 2 )
{
val = Word(source + i);
PatchWord(dest + i, val);
}
SetCharPrm(INF_GENFLAGS, ~INFFL_LOADIDC&GetCharPrm(INF_GENFLAGS));
MakeUnknown(source,count,DOUNK_EXPAND+DOUNK_DELNAMES);
HideArea(source, source+count-1, desc, "", "", -1);
SetHiddenArea(source, 1 );
Message("Copy %a: End\n", dest);
}
但是当我转到源地址时,我看到:
ROM:00447E8C ; [0000C878 BYTES: BEGIN OF AREA RAM Data2 Source. PRESS KEYPAD "-" TO COLLAPSE]
ROM:00447E8C unk_447E8C: .byte 0xFF ; DATA XREF: Tsk32+176o
ROM:00447E8D .byte 0xFF
ROM:00447E8E .byte 0xFF
ROM:00447E8F .byte 0xFF
ROM:00447E90 .byte 0
ROM:00447E91 .byte 0x30 ; 0
ROM:00447E92 .byte 0
ROM:00447E93 .byte 0
我希望/期望隐藏该区域,我做错了什么。如果我按键盘,-我会收到错误消息:
IDA 无法以图形模式显示程序。只有属于函数的指令才能以图形模式显示。