控制台注入DLL代码
// zhuru.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h"
#include <Windows.h>
#define GameClassName "classFoxitReader"
#define dllName "GameDLL.dll" void zhuru(HWND hGame,const char* DllNameFullpath);
int _tmain(int argc, _TCHAR* argv[])
{
HWND hGame = FindWindowA(GameClassName,NULL);
char DirName[]="";
char DllNameFullpath[]="";
GetCurrentDirectoryA(sizeof(DirName),DirName);
strcpy_s(DllNameFullpath,DirName);
strcat_s(DllNameFullpath,"\\");
strcat_s(DllNameFullpath,dllName);
printf("%s\n",DllNameFullpath);
zhuru(hGame,DllNameFullpath);
//getchar();
return ;
}
void zhuru(HWND hGame,const char* DllNameFullpath)
{ DWORD pid;
HANDLE hProcess;
LPWORD AddressDW;
DWORD byWriteSize;
HANDLE hThread; if (hGame!=NULL)
{
GetWindowThreadProcessId(hGame,&pid);
if (pid!=NULL)
{
hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);
if (hProcess!=NULL)
{
AddressDW = (LPWORD)VirtualAllocEx(hProcess,NULL,,MEM_COMMIT,PAGE_READWRITE);
if (AddressDW!=NULL)
{
WriteProcessMemory(hProcess,AddressDW,DllNameFullpath,strlen(DllNameFullpath)+,&byWriteSize);
if (byWriteSize>=strlen(DllNameFullpath))
{
hThread = CreateRemoteThread(hProcess,NULL,NULL,(LPTHREAD_START_ROUTINE)LoadLibraryA,AddressDW,NULL,NULL);
WaitForSingleObject(hThread,0xFFFFFFF);
CloseHandle(hThread);
VirtualFreeEx(hProcess,AddressDW,,MEM_COMMIT);
CloseHandle(hProcess);
}
}
}
}
} return;
}
控制台注入DLL代码的更多相关文章
- 【windows核心编程】使用远程线程注入DLL
前言 该技术是指通过在[目标进程]中创建一个[远程线程]来达到注入的目的. 创建的[远程线程]函数为LoadLibrary, 线程函数的参数为DLL名字, 想要做的工作在DLL中编写. 示意图如下: ...
- 通过注入DLL修改API代码实现钩取(一)
通过注入DLL修改API代码实现钩取(一) Ox00 大致思路 通过CreateRemoteThread函数开辟新线程,并将DLL注入进去 通过GetProcessAddress函数找到需钩取的API ...
- dll注入与代码注入
学习<逆向工程核心原理>,在x64下dll注入与代码注入. dll注入主要用到CreateRemoteThread, HANDLE WINAPI CreateRemoteThread( _ ...
- Windows x86/ x64 Ring3层注入Dll总结
欢迎转载,转载请注明出处:http://www.cnblogs.com/uAreKongqi/p/6012353.html 0x00.前言 提到Dll的注入,立马能够想到的方法就有很多,比如利用远程线 ...
- N种内核注入DLL的思路及实现
内核注入,技术古老但很实用.现在部分RK趋向无进程,玩的是SYS+DLL,有的无文件,全部存在于内存中.可能有部分人会说:"都进内核了.什么不能干?".是啊,要是内核中可以做包括R ...
- [转]N种内核注入DLL的思路及实现
内核注入,技术古老但很实用.现在部分RK趋向无进程,玩的是SYS+DLL,有的无文件,全部存在于内存中.可能有部分人会说:“都进内核了.什么不能干?”.是啊,要是内核中可以做包括R3上所有能做的事,软 ...
- 分析恶意驱动(进程启动apc注入dll)
一.前言 用IDA也有好些时间了,以前就只会用F5功能玩无壳无保护的裸驱动,感觉太坑了,这两天就开始看网上大牛的逆向. 今天记录一下sudami曾经逆向过的fuck.sys.第一遍自己走的时候漏掉了 ...
- Hook任务栏时钟窗口(原理其实很简单,就是注入DLL到时钟窗口进程(explorer.exe))
用过一些日历软件的小伙伴应该都知道它们都实现了在时钟窗口上的Hook,也就是屏蔽了系统原有的功能,实现自己的功能 某日历软件Hook时钟窗口后的效果 经过一番研究,发现原理其实很简单,就是注入DLL到 ...
- Windows挂钩注入DLL
注入DLL实现源码:HINSTANCE g_hInstDll = NULL; HHOOK g_hHook = NULL; DWORD g_dwThreadId = 0; #ifdef _MANAGED ...
随机推荐
- 15.9,python操作redis集群
上代码 .对redis的单实例进行连接操作 python3 >>>import redis >>>r = redis.StrictRedis(host=, db ...
- [bzoj3371][poj2009][Usaco2004 Mar]Moo University - Emergency Pizza Order 定制比萨饼
标题这么长的..真是让感觉人头大脚轻. 贴题面先. Description Moo大学的餐厅必须为$C(1\leq C\leq 1000)$头入学的奶牛新生定制比萨饼.比萨饼可以在比萨小屋订做 ...
- poj2001Shortest Prefixes(trie)
Shortest Prefixes Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 18687 Accepted: 808 ...
- 静态html引入js添加随机数后缀防止缓存
在web项目开发中,页面引入js被修改时,为避免浏览器缓存引起的问题,在引入js时,给js名后面加上随机数,以保证每次都发送新的请求. 在jsp中,一般通过后台取随机数即可,代码如下: <scr ...
- chrome 切换到其他网络后重新加载网
chrome 突然提示 “您与 www.google.com 之间的安全连接目前正受到干扰. 请等待几分钟后再尝试重新加载网页,或在切换到其他网络后重新加载网” 查看证书发现 已经过期 解决:同步下 ...
- 《数据结构与算法分析:C语言描述》复习——第八章“并查集”——并查集
2014.06.18 14:16 简介: “并查集”,英文名为“union-find set”,从名字就能看出来它支持合并与查找功能.另外还有一个名字叫“disjoint set”,中文名叫不相交集合 ...
- 《Cracking the Coding Interview》——第14章:Java——题目2
2014-04-26 18:44 题目:在java的try-catch-finally语句块里,如果catch里面有return语句的话,finally还会被执行吗? 解法:会. 代码: // 14. ...
- Nova 如何统计 OpenStack 资源
1.云计算的本质在于将硬件资源软件化,以达到快速按需交付的效果,最基本的计算.存储和网络基础元素并没有因此改变.就计算而言,CPU.RAM 和 DISK等依旧是必不可少的核心资源. 从源代码和数据库相 ...
- js文字跳动效果
/*! * chaffle v1.0.0 * * Licensed under MIT * Copyright 2013-2014 blivesta * http://blivesta.com */ ...
- 使用Unity 实现ASP.NET Web API 依赖注入
DI/IoC 的设计前面已经讲过好几次了,简单的一段话说明就是:「目标对象与外部相依的方式仅相依于 interface,而相依 interface 的 instance 透过 constructor ...