|
[讨论]如何在 "IDA Pro反汇编出的代码" 中计算缓冲区的长度?
谢谢回复。 另外还有一点疑问: 你所说的“需要人工分析代码(运行时分配的变量数组,如栈上)或数据(编译时分配的数组,如常量)。”中, 运行时分配的变量数组(malloc、new)应该在堆(heap)中吧? 对“人工分析代码(运行时分配的变量数组,如栈上)或数据(编译时分配的数组,如常量)”能不能再具体一点,最好能举个简单的例子,谢谢! |
|
|
|
|
|
[求助]IDA插件编程的问题:动态得到堆栈中各个变量的地址及长度
恩 谢谢你 函数堆栈的结构在funcs.hpp, frame.hpp, struct.hpp中都有描述。所以,通过这三个头文件里的接口可以获取堆栈的信息以及堆栈中定义的局部变量、参数、返回地址等信息。 我原来的想法是行不通的。 |
|
[求助]在本站下的IDA5.2在调试exe时常常会出错,各位有没有遇到过这样的情况?
ida 5.1及相应的Debugger应该可以在网上找得到 |
|
[求助]在本站下的IDA5.2在调试exe时常常会出错,各位有没有遇到过这样的情况?
你可以双击 IDA安装目录下的 unins000.exe(并不是要卸载,而是可以看到IDA 以及调试器版本的信息) 至于看雪提供的IDA5.2为什么内置WinCE 5.0 Debugger ,我也不知道为什么 我这里有IDA 5.1以及相应的Debugger 我的理解:调试器是一个插件,所以可以只要将相应的插件拷贝到plugin目录下就可以了。不过这只是猜测,你可以试一试,看将5.1的调试器插件拷贝到5.2中能否工作 |
|
[求助]在本站下的IDA5.2在调试exe时常常会出错,各位有没有遇到过这样的情况?
这是调试器版本的问题 看雪上提供的IDA5.2内置的是WinCE 5.0 Debugger (当然这也可能是WinCE 5.0 Debugger 自身的问题) 你可以下载IDA 5.1,其附带的调试器版本为WinCE 5.1 Debugger,不会出现以上问题。 |
|
|
|
|
|
|
|
[求助]ida调试老是出问题
IDA调试器的问题已经解决了: 是IDA 调试器版本的问题,你用的调试器应该是winCE5.0 Debugger, 虽然你的IDA版本是5.2。 之所以调试程序时总出现“Access violation at address xxxxxxxx in module 'idag.exe'”的错误,是winCE5.0 Debugger自身的bug. (我是从看雪上下载的IDA5.2,但不知为什么却和winCE5.0 Debugger绑在一起发布。 ) 你下载一个和winCE5.1 Debugger绑在一起的IDA版本,一切问题都消失了。 |
|
[求助]ida调试老是出问题
我遇到过类似的问题 下面是问题的描述: 如果一个程序(win32程序)中有从控制台(console)中输入数据(用scanf()或者cin)的语句,当用IDA 对它进行调试时,调试器刚刚启动就会弹出windows的错误提示框:Access violation at address xxxxxxxx in module 'idag.exe'. Read of address xxxxxxxx。而且每当一移动"IDA Pro debugging xxx.exe"窗口,就会弹出类似的windows的错误提示框。 同样的程序,如果删除从控制台(console)中输入数据(用scanf()或者cin)的语句,编译连接后生成的.exe程序可以被IDA调试成功,且不弹出任何windows的错误提示框。 (我的IDA Pro版本是 5.2,测试的程序是用win32 汇编程序 和在VC2005下生成的控制台程序) |
|
[翻译]翻译的几篇IDA小教程
谢谢楼主的分享 恩 ida的教程太少了 而且很多资料都是国外的 希望论坛上的人也能把自己的心得、经验公布出来供大家交流 |
|
关于在IDA插件中调用windows API 以及 实现消息循环机制
在IDA插件中可以实现和普通windows应用程序(Application)一样的消息循环机制。具体需要注意的我已经在上一个帖子中描述了。 |
|
关于在IDA插件中调用windows API 以及 实现消息循环机制
谢谢terren的热心回复。这个问题我几经解决了,并且测试成功。 实际上,IDA Plug-in本身就是一个DLL, 只不过要用到IDA SDK提供的头文件和.lib库。所以在IDA Plug-in中完全可以像其他的DLL一样调用windows的DLL、实现windows消息循环。 你的回复中提到了一点:#include <windows.h>这条语句必须放在最前面。这点非常重要,否则,编译会报许多头文件的错误(我是用VS2005编译的)。具体是什么原因,我想这可能与windows.h里定义的宏有关,需要将这些宏放在最前面。 还有一点需要注意的,在插件中实现消息循环不同于普通的VC/VC++程序,因为在普通的VC/VC++程序(非MFC)实现消息循环,要定义WinMain()函数,而WinMain()函数是由操作系统调用的,就像C程序中的main()函数一样; 而在插件中,需要在IDA Plug-in的IDAP_run()中自己编写程序调用。 解决的方法是自己编写类似于WinMain()的函数,然后在IDAP_run()种调用,如下: ...... HINSTANCE hInstance; //全局变量,用来存放该进程模块的句柄 ...... void IDAP_run(int arg) { ...... HINSTANCE hInstance = LoadLibrary(NULL); MyWinMain(hInstance, NULL, 1); ...... } ...... int WINAPI MyWinMain(HINSTANCE hInstance, LPSTR lpCmdLine, int nShowCmd) { //实现普通的VC/VC++程序中WinMain()实现的功能 } ...... 然后在自己编写的类似于WinMain()的函数中实现消息循环。 ~~以上我的经验,欢迎分享~~ ~~再次感谢楼上的热心回复!~~ |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值