手动为IDA生成所需的导入符号映射表

IDA Pro 5.2自带了Symbian的导入符号映射表,但Emulator Build部分只含有Symbian 9系列的.ids文件。没有较早版本适用的,因为懒得去找旧版本IDA,所以自己写了下面这个批处理,可以快速的从.lib生成.ids,即IDA所需的导入符号映射表。

以.lib文件做参数时生成对应的.ids;不带参数则处理当前文件夹下全部的.lib文件。

@echo off
if %1. == . goto all
echo Process %1 ...
dumpbin /exports %1 | sed --text "/         [ ]*[0-9]*    /!d;s/^[ \t]*//;s/)$//;s/    / Name=/;s/ (/ Comment=/" > %1.idt
zipids %1.idt
goto end
:all
for %%f in (*.lib) do call %0 %%f
:end

注1:调用到的三个工具,dumpbin是VC6中包含的,sed可以用UnxUtils中得到,zipids是IDA官方提供的附加工具包。
注2:只适用于Emulator Build,Target Build暂时还没有需求,因为IDA已经为Symbian提供了大部分.ids文件。

Linux下可以替换运行中的程序么?

今天被朋友问及“Linux下可以替换运行中的程序么?”,以前依稀记得Linux下是可以的(而Windows就不让),于是随口答道“OK”。结果朋友发来一个执行结果:(test正在运行中)

# cp test2 test
cp: cannot create regular file `test': Text file busy

看起来是程序被占用,无法覆盖。于是自己又再做了几个实验:

(1)先rm删除正在运行的test,然后cp test2 test就没有错误了。
(2)先mv改名正在运行的test,然后cp test2 test也没有问题。

继续阅读Linux下可以替换运行中的程序么?