猛击此处下载doc!
Mhook, an API hooking library, V2.3
一款比较强大的hook库,开源并且支持32位和64位。上图是官方提供的实例的测试效果。
Symantec pcAnywhere Leaked Source Code
其实这个代码现在网上已经可以随便下载到了,这里只是分享个种子。嘎嘎。
Moving to Windows x64【翻译】
VS2010 + IDASDK6.2搭建IDA Plugin开发环境
这里使用的开发环境是vs2010,不过几乎所有的设置在早期版本的vs中基本是一致的。启动vs之后关闭其他的项目和解决方案,然后按照下面的流程创作工程即可。
- 执行菜单的File->New->Project… (Ctrl-Shift-N)打开新建工程窗口。
- 展开左侧的Visual C++项目模板分支,然后选择右侧的Win32 Project条目,输入工程名称,然后点击确定。
C/C++/Delphi 调用命令并且显示执行结果
C/C++ 代码:
void ExecutCmd()
{
SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
wchar_t * lpCommandLine =_T("ping.exe www.h4ck.org.cn ");
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
TCHAR temp[255] = {0};
_tcscpy(temp,lpCommandLine);
if (!CreatePipe(&hRead,&hWrite,&sa,0)) {
MessageBox(_T("Error On CreatePipe()"));
return;
}
STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError = hWrite;
si.hStdOutput = hWrite;
si.wShowWindow = SW_HIDE;
si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
if (!CreateProcess(NULL,temp
,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) {
MessageBox(_T("Error on CreateProcess()"));
return;
}
CloseHandle(hWrite);
char buffer[4096] = {0};
DWORD bytesRead;
while (true) {
if (ReadFile(hRead,buffer,0x3FFu,&bytesRead,NULL) == NULL)
break;
outputstr += buffer;//m_outputstr is CString
OutputDebugString(outputstr);
UpdateData(false);
Sleep(200);
}
}