标签:roc ESS src xor argc isp dem 端口 winapi
简单记录下IDA远程调试功能使用,然后用一个小Demo演示下利用内存快照功能记录动态函数调用与变量的方法。
物理机:调试主机(Windows、Linux、Mac)
虚拟机:被调试主机(Windows、Linux、Mac)
1、根据被调试主机系统版本,拷贝IDA根目录“\dbgsrv”文件夹下的相应调试组件到被调试主机上。
2、在被调试主机启动调试组件,记好IP和端口等信息。
3、在调试主机上启动IDA,通过远程调试选项连接被调试主机上的调试组件对目标程序进行调试。
先写个动态调用的Demo
1 #include "stdafx.h" 2 #include <windows.h> 3 4 typedef void(WINAPI *pSleep)(DWORD dwMilliseconds); 5 pSleep mySleep; 6 7 int _tmain(int argc, _TCHAR* argv[]) 8 { 9 HMODULE h = LoadLibrary(_T("kernel32.dll")); 10 if (h) 11 { 12 mySleep = (pSleep)GetProcAddress(h, "Sleep"); // 13 __asm xor eax,eax; // 14 mySleep(1000); // 15 } 16 17 system("pause"); 18 return 0; 19 }
#include "stdafx.h" #include <windows.h> typedef void(WINAPI *pSleep)(DWORD dwMilliseconds); pSleep mySleep; int _tmain(int argc, _TCHAR* argv[]) { HMODULE h = LoadLibrary(_T("kernel32.dll")); if (h) { mySleep = (pSleep)GetProcAddress(h, "Sleep"); // __asm xor eax,eax; // mySleep(1000); // } system("pause"); return 0; }
使用IDA远程调试,执行到保存Sleep函数地址处
执行完后,使用内存快照功能保存快照,然后断开调试器(),在0x13D3F88地址处就能直接显示调用的是Sleep函数了。
标签:roc ESS src xor argc isp dem 端口 winapi
原文地址:https://www.cnblogs.com/SunsetR/p/12933422.html