IDA会创建注册表项HKEY_CURRENT_USER\Software\Hex-Rays\IDA
许多配置都保存在这个注册表项内,打开过的历史记录也存在了这里
Linux下是存储在一个二进制文件@HOME/.idapro/ida.cfg中
bss节由编译器创建,用于保存程序的所有未初始化的静态变量。既然没有为这些变量指定初始值,那么,就没有必要在程序的文件镜像中为它们分配空间;只需在程序的一个头文件中注明它的大小。当程序执行时,加载器会为其分配所需的空间,并将整个数据块的初始值设为0。
共享库可能会使用导出序数,以方便用户通过序数而非名称访问函数。使用序数可以加快地址查询速度,并允许程序员隐藏函数的名称。Windows DLL即使用导出序数。
栈帧(stack frame)就是这样一种低级概念。栈帧是在程序的运行时栈中分配的内存块,专门用于特定的函数调用。
调用约定
cdecl 参数从右往左入栈,由调用者平衡栈
stdcall 参数从右往左入栈,由被调用者平衡栈
另一种f开头的调用,前两个参数直接传给寄存器,后面的参数入栈,由调用者平衡栈
比如c#调用c++的库,使用cdecl的调用约定,那就是告诉编译器,你的清理工作是交给了c#的gc收集器来做了
alt+t 搜索字符串
ctrl+t 继续前一搜索字符串
alt+b 搜索二进制
ctrl+b 继续前一搜索二进制
如果你希望恢复某个变量的默认名称,打开更名对话框,在输入框中输入一个空白名称,IDA将为你生成默认的名称。