zoukankan      html  css  js  c++  java
  • IDA | 远程动态调试的基本设置

    由于Ollydbg不能调ELF文件,所以需要下虚拟机下使用GDB这样Linux动态调试器,其实IDA也支持动态调试功能,并且可以使用远程连接,此文做IDA远程调试基本设置过程的记录。

    Step1:打开主机IDA源目录,在 "IDA_Pro_v7.0dbgsrv" 中找到 "liunux_server" 和 "linux_server64" 拷贝到虚拟机中。

    Step2:在虚拟机中找到待调试文件,使用命令 "chmod 777 filename" 赋予所有用户读写执行权限。

    Step3:在虚拟机中运行 "linux_server(64)"(没有执行权限添加一下),出现下图即成功。

    后续使用中如果遇到 "bind: Address already in use" 端口被占用的情况重启虚拟机即可。

    Step4:拷贝一份待调试的ELF文件到主机,使用对应版本的IDA打开,在菜单栏点击 "Debugger -> Select debugger"(快捷键F9)。

    打开调试器窗口,选择 "Remote Linux debugger",然后在新菜单栏点击 "Debugger -> Process options",出现下图。

    "应用程序" 和 "输入文件" 都必须写虚拟机内待调试程序的完整绝对路径;"目录" 同理,可以在虚拟机内用 pwd 命令快捷查看。

    主机名即远程对象的IP,对于虚拟机而言,可以使用 ifconfig 命令查看内网IP;端口为默认,一般无需改动。

    Step5:完成设置之后就可以开始远程调试了,F9 启动程序进程,出现下图询问点一下继续就好了。

    程序的运行情况会在虚拟机 "linux_server(64)" 程序窗口显示。

    ——————————————————————————————————
    网上的教程有一部分是使用远程附加进程的,这样不需要把可执行文件在主机上用IDA打开再连接。
    直接 "Debug -> Attach -> Remote Liunx debugger" 选择虚拟机上的进程,
    但是我的虚拟机好像不支持这样操作,如果有和我情况一样的像前面一样手动选择程序好了。

  • 相关阅读:
    什么是首字节时间(TTFB)
    什么是函数节流?
    生成不重复的随机数
    js中sort()方法的用法,参数以及排序原理
    return false;和e.preventDefault;和e.stopPropagation的区别
    实现跨域的方法
    jQuery的parent和parents和closest区别
    JS中关于clientWidth offsetWidth scrollWidth 等的区别
    grunt配置sass项目自动编译
    移动H5前端性能优化指南
  • 原文地址:https://www.cnblogs.com/zhwer/p/12484708.html
Copyright © 2011-2022 走看看