有些程序pack了一些代码,这些代码是在程序运行的时候重新组合出来的。为了更好的分析他们,最好是直接dump出来。下面就是IDC的代码,用来dump debug运行出来的代码。
此时会弹出三个窗口,第一个询问目的文件名,第二个和第三个用来输入需要dump出来的线性地址范围。
static DumpSegment(){
auto xx;
auto saddr,eaddr,dw;
xx=fopen(AskFile(1, "e:\yjzg.txt", "Dump Segment to File:"), "wb+");
saddr=AskAddr(0x401000, "Input Start Address");
eaddr=AskAddr(0x466000, "Input Stop Address");
Message("StartAddr:%d\n", saddr);
Message("Stop Addr:%d", eaddr);
for (dw=saddr;dw<eaddr;dw=dw+4){
writelong(xx, Dword(dw), 0);
};
fclose(xx);
}