测试代码可行, 推荐给大家
#pragma once
#include <windows.h>
#include <TlHelp32.h>
#include "stdio.h"
//线程参数结构体定义
typedef struct _RemoteParam {
char szMsg[12]; //MessageBox函数中显示的字符提示
DWORD dwMessageBox;//MessageBox函数的入口地址
} RemoteParam, * PRemoteParam; ...
0x01
主要功能, 加载一个exe到 一个内存中, 并运行这块内存
0x02
有限制条件, EXE必须具有重定位表, 否则运行失败!!
截图
pid模块还没写完
想把进程移植到指定的 PID中运行!
0x03 关键代码
(有参考价值的代码, 重定位表的修复, 导入表的修复)
// 20180118_20.cpp : Defines the entry point for the ap...
修复;
点击 开始 运行 输入 cmd
右键,选择“粘贴”以下代码;敲下回车就哦了!
taskkill /im explorer.exe /f
cd /d %userprofile%\appdata\local
del iconcache.db /a
start explorer.exe
exit
修改一个程序的过程如下:1、获得进程的句柄 2、以一定的权限打开进程 3、调用ReadProcessMemory读取内存,WriteProcessMemory修改内存,这也是内存补丁的实现过程。下面贴出的是调用ReadProcessMemory的例程
#include <windows.h>
#include <tlhelp32.h>
BOOL CALLBACK EnumChildWindowProc(HWND hWnd,LPARAM lParam);//枚举记事本中的子窗口
char mess[999999];
int WIN...
因为测试源码的失败,这里写一下原理和贴图
0x01 控制进程上下文
GetCurrentThread
GetThreadContex
0x02 获取汇编的地址位置,修改Context
memcpy
[ctx.Ebx+8]内存处存的是外壳进程的加载基址,ctx.Eax存放有外壳进程的入口地址
0x03
__asm{
jmp addr
}
测试VirtualAlloc 的函数 一直提示 487 错误
无法解决!!
为了加深对PE文件结构的理解,写了个简单的模拟PE文件加载过程的程序,不过程序有些地方没处理好(资源节处),也存在这些小bug写的分四个文件写的,如下:
ReadFile.h :
代码:
#include <stdio.h>
#include <windows.h>
#include <assert.h>
HANDLE OpenFile(char *name);
int ReadFile(HANDLE ...
驱动文章类:
https://blog.csdn.net/zuishikonghuan
https://blog.csdn.net/qq1841370452/article/category/6402114
IDABook
http://www.idabook.com/
http://www.cnblogs.com/mydomain/category/264964.html
推荐的php集成环境
http://www.upu...
#include <windows.h>
#include <winnt.h>
用#include <winnt.h> 记得前面加上 #include <windows.h>
调试了半天, 我去!!!
一.废话
最近因为公司的项目需要,顺带的学习了一点和PELoader相关的东西,恰见网上正在沸沸扬扬的谈论虚拟脱壳。本人不才,实在是没能力也没精力去写一个真正意义上的虚拟机,因此尝试做了一个简单而偷懒的PE加载器。
这个PE加载器也可以看做是VM的前身吧。我想它可以成为一个简易脱壳工具或者用户态的进程内调试器基础。
二.做这个东西干嘛?
1.公司的项目需要实现但进程内多插件并发运行,也就是说,1个PID需要同时给n个进程使用,这牵扯到更麻烦的进程内内存切换工作。
2.实现反向进程注入,隐藏进程,这样做的RK更不容易被发现。
3.自从离开了安全的伤心地之后,一直堕落于做IM软件的Server,...
一.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...