- 博客(15)
- 资源 (9)
- 收藏
- 关注
原创 修改 VisualStudio 2015 $(VC_VC_IncludePath) $(UniversalCRT_IncludePath)
vc2015 中ctype.h stdio.h等文件打不开,后来发现是vc自动设置的包含目录出错了,经过搜索找到了这些系统头文件的定义位置,特此记录。文件C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Common.props中设置各种include路径,比如VC_VC_IncludePath:<VC_IncludePath>$(VC_VC_IncludePath);$(VC_ATLMFC_I
2020-06-16 22:34:31 3555 1
原创 Vmprotect 驱动加壳踩坑
1. 慎用压缩选项当驱动有导出函数时,需慎用压缩选项。系统并不一定会调用模块的入口函数,导致没解压就访问导出函数。此时很大概率导出函数所在地址不可访问,或内容奇异。2.绝逼不要启用COMDAT折叠该选项会将内容完全相同的函数就保存一份,一般情况下也不会出现内容完全相同的函数。但是当使用__try{ xxxxx}__except(1){xxxxx}时,__e...
2020-04-13 02:51:33 2094
原创 visual studio 平台工具及路径
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Win32\PlatformToolsets\OLLVM-vs2014_xp
2019-06-21 15:15:06 870
原创 定义VC全局变量在节中位置
在同一cpp文件中定义的初始化的简单全局变量,如ULONG g_SpinLock = 0;BYTE g_Str[] = {0,1,2,3,4};将按照定义顺序出现在.data节中,一般来说.data节的起始位置是由这些变量占据的。但是在不同cpp文件中定义的变量在节中出现的位置让人难以掌控。一个不太爽的解决方案就是将想要控制顺序的几个变量放到新节中,即首先用#pragma s...
2018-09-03 02:03:29 461
原创 正则表达式解析http头及html
最近需要自己实现解析http协议,获取html标签内容等操作。感觉正则表达式基本能够完成这个任务,不过我对正则表达式的掌握还停留在这个水平:不得已,先提升一下对正则表达式的掌控吧。由于用的是deelx,所有首先就是DEELX 正则表达式语法,看了之后觉得有所顿悟,可以理解<(?<HtmlTag>[\w]+)[^>]*?>((?<Nested><...
2018-08-03 00:08:39 5230 1
原创 Windows环境变量在注册表中存储位置
1. HKEY_CURRENT_USER\Environment2. HKEY_CURRENT_USER\Volatile Environment3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
2018-06-27 23:17:52 3017
原创 My 字符串常用函数
template BOOLEAN __stdcall TestChar(TYPE ch1,TYPE ch2){ if(ch1 == ch2) return TRUE; if(ch1 64) if( ch2 - ch1 == 32) return TRUE; if(ch2 64) if( ch1 - ch2 == 32) return TRUE; return FALSE;}template BOOLEAN __stdcall IsNum(TYPE ch){
2011-05-29 19:09:00 597
原创 hotpatch 的hook 方式
<br />一般的hook需要5字节,lock 什么的,也最多同时操作4字节,如果要修改5字节,严格说来是要使用同步的,以防止其他CPU访问正被修改的指令。<br />hotpatch的技法则是首先在函数上方,一般会因为对齐,或者编译时使用/hotpatch选项而预留出几字节的空间,首先在这些空间里写入一个5字节的远程跳转,然后再将函数的俩字节mov edi,edi指令换成一个近跳转,跳到上方的长跳转中,2字节的修改。此种技法完全不用考虑同步...
2011-03-11 22:54:00 1523
原创 a wonderful way to implement HOOK
<br />一、Hook定义<br /> 改变函数执行流程,将原函数的执行流引导入自定义的代码中,再处理参数或结果后在返回原函数继续执行的处理方式。常见的Hook方式绝大多数是在函数的开头,无论通过改变一些函数指针,如导入表,SSDT,甚至C++类的虚函数表,还是inline hook中在函数开头写入跳转指令,还是采用其他一些奇技淫巧,比如在函数头设断点,在异常处理中改变EIP实现(用硬件执行断点来玩的话,会令hook比较难以检测,但是很可惜 只能玩4个。用内存访问断点来实现的话更淫荡,完全没有数
2011-03-04 03:35:00 756
原创 Anti 进程内存保护
在分页机制下,只要cr3寄存器的值为目标进程的页目录表基址,则访问的就是目标进程的内存。内核态情况下,如果要读写目标进程内存,一般会用KiAttachProcess,再底层的是KiSwapProcess。KiSwapProcess已经底层到基本只负责更新Cr3的内容了。看到同学们为了保护和反保护进程内存。已经拉风到hook KiSwapProcess 里对Cr3操作的那条指令了。然后判断mov cr3,eax 指令中eax是否为受保护进程来执行某些操作,真够不要脸的。可是,有这必要吗?? 在ring0 下
2011-02-26 23:00:00 2415
原创 物理内存映射 获取PTE
IA-32的分页机制灰常给力的。弄几个函数玩typedef struct _HARDWARE_PTE_X86 { ULONG Valid : 1; ULONG Write : 1; ULONG Owner : 1; ULONG WriteThrough : 1; ULONG CacheDisable : 1; ULONG Accessed : 1; ULONG Dirty : 1; ULONG LargePage : 1;
2011-02-19 15:40:00 3942 1
原创 void LDE32(PVOID pInsAddress,DWORD* pInsLength)
<br />#pragma once#include <Windows.h>#define C_NULL _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00#define C_ERROR _asm _emit 0xff _asm _emit 0xff _asm _emit 0xff _asm _emit 0xff#define C_PREFIX _asm
2011-01-28 02:57:00 808
原创 自定义实现无模块
<br /> 时下的各种流行的注入大都需要在目标进程中装载一个DLL,多个模块会引起很多麻烦。虽然可以采取各种手法隐藏之,但隐藏终归不是很好,不能做到很彻底。稍微拉风点的就是直接操作内核对象,将模块从以加载模块列表中移除。但这个连XueTr哥哥就能轻易发现。本文讨论在ring3下如何实现无模块。该技术可以妥妥的应用于ring0。<br /> 无模块也有不少哥哥玩过,比如比较不错的一篇文章http://www.codeproject.com/KB/threads/processinject
2011-01-27 16:34:00 769 1
NDIS Filter Drivers编写介绍 4pdf
2017-11-06
MGH Hacking Exposed Industrial Control Systems
2017-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人