一.Windows消息钩取:SetWindowsHookEx
HHOOK SetWindowsHookEx(
intidHook,// hook type 就是HOOK的消息种类,如WH_KEYBOARD,WH_MOUSE....见MSDN
HOOKPROClpfn,// hook procedure 钩子过程,安装消息钩子时候,钩子过程一定要位于某个DLL内部
HINSTANCEhMod,// handle to application instance 钩子过程的DLL句柄(为NULL则是局部钩子)
...
0x01 项目说明
实现在内存中对dll的加载和卸载
0x02 软件展示
0x03 代码展示
// TestInjectProcess.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "resource.h"
#include <Windows.h>
#include <Tlhelp32.h>
#include <assert.h>
#include &...
一、DLL注入
DLL的远程注入技术是目前Win32病毒广泛使用的一种技术。使用这种技术的病毒体通常位于一个DLL中,在系统启动的时候,一个EXE程序会将这个DLL加载至某些系统进程(如Explorer.exe)中运行。
这样一来,普通的进程管理器就很难发现这种病毒了,而且即使发现了也很难清除,因为只要病毒寄生的进程不终止运行,那么这个DLL就不会在内存中卸载,
用户也就无法在资源管理器中删除这个DLL文件,真可谓一箭双雕哉。记得2003年QQ尾巴病毒肆虐的时候,就已经有些尾巴病毒的变种在使用这种技术了。
到了2004年初,我曾经尝试着仿真了一个QQ尾巴病毒,但独是跳过了DL...
一、远程线程注入基本原理
远程线程注入——相信对Windows底层编程和系统安全熟悉的人并不陌生,其主要核心在于一个Windows API函数CreateRemoteThread,通过它可以在另外一个进程中注入一个线程并执行。在提供便利的同时,正是因为如此,使得系统内部出现了安全隐患。常用的注入手段有两种:一种是远程的dll的注入,另一种是远程代码的注入。后者相对起来更加隐蔽,也更难被杀软检测。本文具体实现这两种操作,在介绍相关API使用的同时,也会解决由此引发的一些问题。
顾名思义,远程线程注入就是在非本地进程中创建一个新的线程。相比而言,本地创建线程的方法很简单,系...
简单测试基址
1 ---
EAX=0000000B
EBX=00097E68
ECX=00000000
EDX=0000000B
ESI=00058338
EDI=005DF300
EBP=0160F768
ESP=0160F730
EIP=00425EBF
Probable base pointer =00058338
00425EB2 - mov eax,00000FA0
00425EB7 - call Tutorial-i386.exe+E6F0
---------00425EBC - mov [esi+18],eax
004...
0x001 易语言模拟了一个登录框
展示:
0x002 使用win32 模拟登录测试
全部代码:
// 20180117_01.cpp : Defines the entry point for the application.
//WTWindow
#include "stdafx.h"
#include <windows.h>
BOOL isStart=FALSE;
//登录
void QQLogin()
{
TCHAR szTitle[MAX_PATH...
类似案件按键精灵的东西,直接上代码
// 20180116_02.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
//FindWindow
void test1()
{
TCHAR szTitle[MAX_PATH]={0};
HWND hwnd = FindWindow(TEXT("WTWindow"),TEXT("用户名 采集 V1.0...
20180115.rar
0x001
写了一个多星期了
大多参考的时课程,以及红色病毒的代码
还有很多的知识点不太理解
模模糊糊的写出来了, 中间也遇到了很多困难,
字节贴关键代码吧
我把工程文件也附加上
// TestShell.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include <windows.h>
#include ...
早上起来忙了两个小时, 主要参考的红色病毒的代码,一直在更改中
还有四步才能实现
帖一下半成品的代码
// TestShell.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include "PEOperate.h"
/*
以挂起的形式创建进程,
获取Conte...
还不完整, 继续整理中
// TestShell.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include "PEOperate.h"
/*
以挂起的形式创建进程,
获取Context
*/
#define KEY 0x56
#pragma pack(push...
文章地址:https://zhuanlan.zhihu.com/p/28671064
进程注入是一种广泛应用于恶意软件和无文件攻击中的逃避技术,这需要在另一个进程的地址空间内运行自定义代码。进程注入提高了隐蔽性,一些技术也实现了持久性。 尽管有许多流程注入技术,在本博客中,我提供了十种在现实看到注入另一个进程运行恶意代码的技术。 我还提供了许多这些技术的屏幕截图,以便于逆向工程和恶意软件分析,协助针对这些常见技术进行检测和防御。
1. 经典的DLL注入方式:通过CREATEREMOTETHREAD和LOADLIBRARY进行注入
...
Windows的PE加载器在启动程序的时候,会将磁盘上的文件加载到内存,然后做很多操作,如函数导入表重定位,变量预处理之类的。这位仁兄等于是自己写了一个PE加载器。直接将内存中的程序启动。记得以前的“红色代码”病毒也有相同的特性。
直接启动内存中的程序相当于加了一个壳,可以把程序加密保存,运行时解密到内存,然后启动,不过对于增加破解难度还要稍微复杂点。否则人家把内存中的进程DUMP出来然后修复导入表就被拖出来了。
代码自己改吧
#include "stdafx.h"
type...
前言
你可能不希望在发布程序时附带上一个外部的 DLL,因为可能会有些用户在无意中把 DLL 删除了而造成 EXE 不能正确运行,也有可能该 DLL 会被别人拿去使用,也有可能,此 DLL 会成为破解者破解你的程序的突破口。无论出于何种原因,如果你想把一个 DLL 合并到一个 EXE 中的话,本文向你介绍这种方法。
Win32 ...
半成品,继续写
// TestShell.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include "PEOperate.h"
/*
以挂起的形式创建进程,
获取Context
*/
#define KEY 0x56
LPVOID GetLastSecData(LPSTR lpsz...