隐藏DLL
先来推广一下QQ群:61618925。欢迎各位爱好编程的加入。
在外挂或者病毒中,经常需要隐藏掉自己注入的DLL,以免被发现。下面就是一个隐藏DLL的通用模块,用的时候只需要加入到相关模块中即可。
详细代码如下:
#include <iostream> using namespace std; void HideModule(char *szModule)
{
DWORD *PEB = NULL;
DWORD *Ldr = NULL;
DWORD *Flink = NULL;
DWORD *p = NULL;
DWORD *BaseAddress = NULL;
DWORD *FullDllName = NULL; //定位PEB
__asm
{
//fs位置保存着teb
//fs:[0x30]位置保存着peb
mov eax,fs:[0x30]
mov PEB,eax
} HMODULE hMod = GetModuleHandleA(szModule); //得到LDR
Ldr = *((DWORD **)((unsigned char *)PEB + 0x0c));
//第二条链表
Flink = *((DWORD **)((unsigned char *)Ldr + 0x0c));
p = Flink; do
{
BaseAddress = *((DWORD **)((unsigned char *)p + 0x18));
FullDllName = *((DWORD **)((unsigned char *)p + 0x28)); if ((DWORD*)hMod == BaseAddress)
{
**((DWORD **)(p + )) = (DWORD)*((DWORD **)p);
*(*((DWORD **)p) + ) = (DWORD)*((DWORD **)(p + ));
break;
} p = *((DWORD **)p);
} while (Flink != p); Flink = *((DWORD **)((unsigned char *)Ldr + 0x14));
p = Flink;
do
{
BaseAddress = *((DWORD **)((unsigned char *)p + 0x10));
FullDllName = *((DWORD **)((unsigned char *)p + 0x20));
if (BaseAddress == (DWORD *)hMod)
{
**((DWORD **)(p + )) = (DWORD)*((DWORD **)p);
*(*((DWORD **)p) + ) = (DWORD)*((DWORD **)(p + ));
break;
}
p = *((DWORD **)p);
} while (Flink != p); Flink = *((DWORD **)((unsigned char *)Ldr + 0x1c));
p = Flink;
do
{
BaseAddress = *((DWORD **)((unsigned char *)p + 0x8));
FullDllName = *((DWORD **)((unsigned char *)p + 0x18));
if (BaseAddress == (DWORD *)hMod)
{
**((DWORD **)(p + )) = (DWORD)*((DWORD **)p);
*(*((DWORD **)p) + ) = (DWORD)*((DWORD **)(p + ));
break;
}
p = *((DWORD **)p);
} while (Flink != p);
} int main(int argc, char **argv)
{
HideModule("kernel32.dll");
HideModule("ntdll.dll");
HideModule("MSVCR90.dll");
HideModule("KERNELBASE.dll");
getchar();
return ;
}
用我之前博客中的进程管理器查看本进程的DLL,可以发现找不到相应的DLL。
隐藏DLL的更多相关文章
- 如何隐藏DLL中,导出函数的名称?(转)
如何隐藏DLL中,导出函数的名称?(转) 一.引言 很多时候,我们写了一个Dll,不希望别人通过DLL查看工具,看到我们的导出函数名称.可以通过以下步骤实现: 1. 在def函数中做如下定义: L ...
- Win32之隐藏DLL隐藏模块技术
Win32之隐藏DLL隐藏模块技术 这一讲涉及到windows底层技术.跟汇编内容. 我们才可以实现模块隐藏(也称为DLL隐藏) 一丶API反汇编勾引兴趣 我们都用过Windows的进程跟线程API ...
- 如何隐藏DLL中,导出函数的名称?
一.引言 很多时候,我们写了一个Dll,不希望别人通过DLL查看工具,看到我们的导出函数名称.可以通过以下步骤实现: 1. 在def函数中做如下定义: LIBRARY EXPORTS HideFunc ...
- 钩子注入呼出与隐藏DLL窗口
/ MFC_DLL.cpp : 定义 DLL 的初始化例程. // #include "stdafx.h" #include "MFC_DLL.h" #incl ...
- 【旧文章搬运】再谈隐藏进程中的DLL模块
原文发表于百度空间,2009-09-17========================================================================== 相当老的话 ...
- 隐藏进程中的模块绕过IceSword的检测
标 题: [原创] 隐藏进程中的模块绕过IceSword的检测 作 者: xPLK 时 间: 2008-06-19,17:59:11 链 接: http://bbs.pediy.com/showthr ...
- dll导出函数的两种方式的比较
最初的网页链接已经挂了, 在此贴一个中间的转载链接 https://blog.csdn.net/zhazhiqiang/article/details/51577523 一 概要 vs中导出 dll的 ...
- 反编译工具 使用.NET JustDecompile来反编译你的程序代码
原文地址:http://www.it165.net/pro/html/201310/7383.html 前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序 ...
- 使用.NET JustDecompile来反编译你的程序代码
前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序,由于因为是别人写的所以我们并没有原始码可以直接阅读,碰到这种情况我们就需要去反编译这些程序及 DLL ...
随机推荐
- js实现加减乘除
/** ** 除法函数,用来得到精确的除法结果 ** 说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显.这个函数返回较为精确的除法结果. ** 调用:accDiv(arg ...
- wait(0)
public final synchronized void join(long millis) throws InterruptedException { long base = System.cu ...
- 关于ie6下拖动滚动条时,div抖动的问题解决
你如果遇到了这个问题,算是你有福了. 首先说非ie6下的div不随滚动条变化而移动位置的. 1,首先在body中写足够多的文字,一直到浏览器出现滚动条.例如你可以拼命的放P,足够多的P标签 2建立一个 ...
- 编译 proto 文件到指定语言的代码
由于 Protocol Buffers 3 的正式版还没有发布,在官网(https://developers.google.com/protocol-buffers/docs/downloads)目前 ...
- Git简单使用
删除本地旧分支,拉取新分支 #!/bin/bash set -e cd /project/ git pull git fetch ori --prune git branch -r|sed 's/or ...
- Android GridView 指定行数,动态行宽,占满空间
有时间我们需要 使用GridViw 让它占满父控件,例: 特别是在适配的时间比较麻烦,在不同的机型上可能分出下,下面空的太多,或有滚动条问题,; 下面说一下实现思路: 首先,设置GridView 为三 ...
- DoTween使用
官网:http://dotween.demigiant.com/ 1.step 这里使用lamda表达式,通过dotween的to方法将其移动到 Vector3(348, 196, 0)的值返回到Ve ...
- 数据结构-多级指针单链表(C语言)
偶尔看到大一时候写了一个多级链表,听起来好有趣,稍微整理一下. 稍微注意一下两点: 1.指针是一个地址,他自己也是有一个地址.一级指针(带一个*号)表示一级地址,他自身地址为二级地址.二级指针(带两个 ...
- 自定义模板语言之simple_tag和自定义过滤器
扩展你的模板系统 一般是扩展模板的tag和filter两个功能.可以用来创建你自己的tag和filter功能库. 创建模板库 分为两步: 1. 首先决定由模板库在哪一个注册的app下放置,你可以放在一 ...
- Java构造和解析Json数据的两种方法详解一
一.介绍 JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json数据,在其官网http://www.js ...