首页
社区
课程
招聘
未解决 [求助]关于DLL执行payload
发表于: 2019-7-2 16:50 2030

未解决 [求助]关于DLL执行payload

2019-7-2 16:50
2030
请教下各位大佬,DLL怎么执行payload,自己动手调试了无数遍就是不成功。

思路是:注入到进程里面,注入成功了但是没有执行代码,我试了各种各样的代码。
相关代码有:https://blog.csdn.net/qq_15727809/article/details/83344928
https://blog.csdn.net/qq_33544988/article/details/79028340
还有些类似的,请问各位大佬是何缘故?耽误各位大佬点时间,解决了请各位大佬喝杯下午茶,捣鼓三天了! 
extern "C" BOOL APIENTRY DllMain(HMODULE /* hModule */, DWORD ul_reason_for_call, LPVOID /* lpReserved */)
{
	using namespace std;
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
		cout << "load from dll main" << endl;
		//ShowImage2();
		MessageBox(NULL, TEXT("dll proc attached"), NULL, MB_ICONINFORMATION | MB_YESNO);
		break;
	case DLL_THREAD_ATTACH:
		//MessageBox(NULL, TEXT("dll thread attached"), NULL, MB_ICONINFORMATION | MB_YESNO);
		break;
	case DLL_THREAD_DETACH:
		//MessageBox(NULL, TEXT("dll thread detached"), NULL, MB_ICONINFORMATION | MB_YESNO);
		break;
	case DLL_PROCESS_DETACH:
		MessageBox(NULL, TEXT("dll proc detached"), NULL, MB_ICONINFORMATION | MB_YESNO);
		break;
	}
	return TRUE;
}
#include "windows.h"
#include "tchar.h"

#pragma comment(lib,"urlmon.lib")

#define DEF_URL (L"http://www.naver.com/index.html")
#define DEF_FILE_NAME (L"index.html")

HMODULE g_hMod = NULL;

DWORD WINAPI ThreadProc(LPVOID lParam)
{
	TCHAR szPath[_MAX_PATH] = {0,};

	if(!GetModuleFileName(g_hMod,szPath,MAX_PATH))
		return FALSE;

	TCHAR *p = _tcsrchr(szPath,'\\');
	if(!p)
		return FALSE;

	_tcscpy_s(p+1,_MAX_PATH,DEF_FILE_NAME);
	
	HRESULT hr = URLDownloadToFile(NULL,DEF_URL,szPath,0,NULL);
	if (hr != S_OK)
		return FALSE;
	else
		OutputDebugString(L"down finish!!!!");

	return 0;
}

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
	HANDLE hThread = NULL;
	g_hMod = (HMODULE)hinstDLL;

	switch(fdwReason)
	{
	case DLL_PROCESS_ATTACH:

		OutputDebugString(L"myhack.dll Injection!!!!");

		hThread = CreateThread(NULL,0,ThreadProc,NULL,0,NULL);

		if (hThread)
			OutputDebugString(L"down finish!!!!");

		CloseHandle(hThread);
		break;
	}
	return TRUE;
}





[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-7-2 16:53 被古朴编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 9626
活跃值: (1838)
能力值: ( LV5,RANK:73 )
在线值:
发帖
回帖
粉丝
2
自己附加单步调试 目测是线程里面某个判断返回了

if (hThread)
	OutputDebugString(L"down finish!!!!");
CreateThread 返回句柄不代表线程执行完成,只是代表线程创建成功。
最后于 2019-7-2 18:22 被Sprite雪碧编辑 ,原因:
2019-7-2 18:22
0
雪    币: 22
活跃值: (443)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
线程还没执行 就退出了 创建线程后 加个Sleep延迟 让线程有机会执行
2019-7-2 21:01
0
游客
登录 | 注册 方可回帖
返回
//