记录IDA远程调试 + FunCap脚本

目的

  1. 记录一下IDA远程调试
  2. 记录一下FunCap插件的配置使用 (一个简单记录运行环境的插件)
  3. 记录一下VMware的Host-Only模式配置

VMware的Host配置

虚拟机网络配置

  VMware(以下简称VM)的作用不用说, 很多人也都使用过, 在当前文档中的作用, 也是跟大众的很多诉求一样, 为了实现一个虚拟的环境, 来运行一个未知或已知的程序.
  关于VM的资料, 搜索引擎都能搜到, 故在此不再多言, 说一下为什么要配置VM的HostOnly模式, 在此模式下, 虚拟机环境 非主机共享 无法上网(相关VM网络模式请自行搜索), 所以在分析程序(尤其是恶意样本)时, 可以提供一个完整的环境, 却不担心程序会释放出一些信息出去.
  配置HOST: 打开VM主界面的”编辑“菜单, 然后选择虚拟网络适配器
,
然后再设置虚拟网络,

如果已有”VMent1” 项, 且类型为 “仅主机“, 则记住这个子网地址”SubIP”即可, 如果没有, 则可以自行添加网络.添加完成之后 下方无需设置.

虚拟机属性设置

  打开虚拟机属性设置, 进行网路设置为仅主机模式

  打开虚拟机以后(WIN7_X86为例), WIN+R 运行 CMD进程, 然后输入ipconfig 查看当前机器IP(在SubIP网段的IP), 笔者当前虚拟机的IP为192.168.135.129(记为VMIP), 主机Ping一下 VMIP

!!!记得一定要关闭虚拟机的防火墙!!!


配置FunCap脚本

  从Github上下载脚本[deresz/funcap], 保存任意位置(IDA运行脚本能找到位置即可),

配置IDA 远程调试器

调试准备

  正常运行IDA, 然后选择调试器(笔者IDA为网上公传的7.0版本), 并找到IDA的安装根目录(记为 IDA_INS_PATH), 找到 IDA_INS_PATH\dbgsrv 下的 win32_remote.exe文件, 同待调试目标程序拷贝到虚拟机下. (建议拷贝到任一已分配的硬盘根目录, 笔者以D盘为例),

虚拟机运行 IDA的调试服务器

显示的信息有 0.0.0.0:23946 (my ip 192.168.135.129) 监听在回环地址, 当前IP为192.168.135.129 (即VMIP) 端口为 23946
待调试目标的路径为: "D:\IDATest\Demo.exe"

调试配置

  物理机打开IDA的Debugger菜单, 选择远程Win调试器, 进行远程信息配置

分别填入调试信息, 然后连接

然后ALT+F7 或 菜单的 File -> Script File 进行脚本的加载, 加载下载得到的Funcap脚本, 得到如下提示, 在IDA_Python的命令提示框中 输入d.hookSeg()进行.text段的所有call进行下断点. 然后F9运行调试器,

等待程序完成运行完毕, 调试器完成, 则可以看到程序运行时, 函数调用的参数是什么

附上小程序源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Demo.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXBYTE 0XFF

char* g_pszSavePass = "TeStPaSs";

int main(int argc, char* argv[])
{
char szBuf[MAXBYTE] = {0};
char* pszInput = NULL;

if (argc < 2)
{
scanf("%[a-z0-9 ]255s", szBuf);
pszInput = szBuf;
}
else
{
pszInput = argv[1];
}

if (strcmp(pszInput, g_pszSavePass) == 0)
{
printf("Congratulation!\r\n");
}
else
{
printf("Password \"%s\" is Failed!\r\n", pszInput);
}

system("pause");

return 0;
}

引用

[VMWare的HostOnly设置] : https://www.linuxidc.com/Linux/2016-09/135521p3.htm
[IDA远程调试设置] : https://blog.csdn.net/eqera/article/details/8239622
[FunCap插件] : https://github.com/deresz/funcap

文章目录
  1. 1. 目的
  2. 2. VMware的Host配置
    1. 2.1. 虚拟机网络配置
    2. 2.2. 虚拟机属性设置
  3. 3. 配置FunCap脚本
    1. 3.1.   从Github上下载脚本[deresz/funcap], 保存任意位置(IDA运行脚本能找到位置即可),
  4. 4. 配置IDA 远程调试器
    1. 4.1. 调试准备
    2. 4.2. 调试配置
  5. 5. 引用
|