给我一些使用ida pro反汇编程序的技巧。
发布于 2010-11-22 03:55:40
程序的虚拟开始地址记录在可执行文件的头中。任何理解这些结构的头查看程序都可以很容易地显示它们,例如HT (http://hte.sf.net/)--仅举一个例子。IDAPro可能也有类似的地方。
发布于 2015-10-06 17:14:09
对任何dll或exe文件的调用和ret如何工作
这实际上取决于它是一个DLL还是一个有问题的EXE。
当Windows的模块加载器完成加载DLL时,它使用DLL_PROCESS_ATTACH参数调用DLL的开始地址(称为‘DllMain文档’)。如果DllMain返回1,则加载程序继续运行。
但是,当启动EXE时,系统会生成一个新进程,并将ntdll.dll映射到该进程的地址空间,然后生成从NTDLL的起始地址运行的主线程。然后,该线程执行更多的初始化,加载EXE文件(加上它的导入表中列出的任何DLL),并调用EXE的开始地址所标识的函数。当该函数返回时,NTDLL将调用NtTerminateProcess,它将杀死所有正在运行的线程并关闭进程。
使用用户模式调试器可能很难观察到这个EXE启动过程;有些调试器很难在进程初始化的早期阶段中断。
https://stackoverflow.com/questions/4242118
复制相似问题