自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 检测OD

之前分析一款私服传奇时,发现只要打开OD,游戏就会崩,后来找到检测线程,分析后,整理出如下检测代码。BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam){ if (hwnd == INVALID_HANDLE_VALUE) { return FALSE; } if (GetWindowLongA(hwnd, GWL_EXSTYLE) == 0x110) { HWND hChild = GetWindow(hwnd, GW_

2020-06-30 10:52:04 1051

原创 自己实现GetProcAddress

DWORD MyGetProcAddress( HMODULE hModule, // handle to DLL module LPCSTR lpProcName // function name ) { int i=0; PIMAGE_DOS_HEADER pImageDosHeader = NULL; PIMAGE_NT_HEADERS pImageNtHeader = NULL; PIMAGE_E..

2020-06-12 16:01:45 734

原创 逆向寻找MFC程序中消息回调函数地址

用IDA打开exe文件,在Imports表中找到GetCommandMap函数,两次交叉引用,找到GetCommandMap在rdata数据段中的位置。GetMessageMap函数就在它上面地址401250处代码如下地址403618处数据如下根据下面的源码,知道403540这里就是真正的函数地址MFC中消息定义格式如下地址403540的数据按照消息格式解析如下和代码中一样...

2020-06-03 15:26:56 947 1

原创 检测隐藏进程

1. 用 户 态 进 程 检 测 方 法该 方 法 利 用 WindowsAPI检测进程。但是在实际应用中,该方法几乎无法检测到 Rootkit隐藏进程。用户态可以通过CreateToolhelp32Snapshot,Process32First,Process32Next遍历进程。或者通过通过psapi.dll提供的EnumProcesses来枚举进程。也可以使用Native API 中...

2020-01-17 14:24:49 2579

原创 aslr关闭工具逆向分析

用OD逆向的时候,经常发现待分析的软件开启了aslr,和IDA中的地址对不上,网上下载了一个去处aslr的工具(工具下载地址再文末),闲来无事分析看看有没有什么骚操作(然而并没有。。),简单记录一下吧总结:很简单,对x86 exe程序,可以将 IMAGE_FILE_HEADER.Characteristics中的第0号位设置为1即可关闭ASLR。链接: https://pan....

2020-01-15 11:45:35 620

原创 x86对抗栈回溯检测

1.原理函数调用 CALL 指令可拆分为两步操作:1)、将调用者的下一条指令(EIP)的地址压栈2)、跳转至将要调用的函数地址中(相对偏移或绝对地址)那么在执行到子函数首地址位置时,返回地址(即调用函数中调用位置下一条指令的地址)就已经存在于堆栈中了,并且是 ESP 指向地址的值。下面通过栈帧的概念,了解编译器在接下来对堆栈进行的操作。简言之,栈帧就是利用 EBP(栈帧指针,请注意不是 ...

2020-01-10 16:19:46 874

原创 驱动黑名单实现

一、 基本思想(1)检测某些名称的驱动是否存在,这一部分有个黑名单(2)检测驱动中部分代码的特征是否匹配,这一部分用另外一个黑名单每一个驱动都要经过以上两重检查,具体的算法实现就是计算驱动名称或部分代码的Hash值,然后在黑名单中进行匹配。所以,你看不到任何敏感的字符串。具体的Hash算法就是变形的CRC32,如下:ULONG GetStringCRCHash(BYTE *Str, ...

2020-01-09 09:49:38 593

原创 枚举和移除进程和线程回调

进程回调可以监视进程的创建和退出,这个在前面的章节已经讲过了。 某些游戏保护的驱动喜欢用这个函数来监视有没有黑名单中的程序运行,如果运行则阻止运行或者把游戏退出。而线程回调则通常用来监控远程线程的建立,如果发现有远程线程注入到了游戏进程里,则马上把游戏退出。我们注册的进程回调,会存储在一个名为 PspCreateProcessNotifyRoutine 的数组里。PspCreatePr...

2020-01-08 17:12:25 707 1

原创 枚举和移除对象回调

对象回调是目前绝大多数游戏保护用于保护游戏进程用的回调。对象回调存储在对应对象结构体里, 简单来说,就是存储在 ObjectType. CallbackList 这个双向链表里。1: kd> dt _object_typent!_OBJECT_TYPE+0x000 TypeList : _LIST_ENTRY+0x010 Name : _U...

2020-01-08 17:10:56 674

原创 用MDL写入数据

#include <ntddk.h>BOOL MdlWriteMemory(PVOID pBaseAddress, PVOID pWriteData, SIZE_T writeDataSize){ PMDL pMdl = NULL; PVOID pNewAddress = NULL; // 创建mdl pMdl = MmCreateMdl(NULL, pBaseAdd...

2020-01-08 17:08:53 570

原创 用cr3读写内存

#define DIRECTORY_TABLE_BASE 0x028 // DirectoryTableBase UINT32 idTarget = 0;PEPROCESS epTarget = NULL;UINT32 idGame = 0;PEPROCESS epGame = NULL;UINT32 rw_len = 0;UINT64 base_addr = 0;...

2020-01-08 17:04:16 2118

原创 插入APC读写内存

#include "ntddk.h"#include "a_header.h"NTKERNELAPI NTSTATUS PsLookupProcessByProcessId(HANDLE ProcessId, PEPROCESS *Process);NTKERNELAPI VOID NTAPI KeStackAttachProcess(PEPROCESS Process, PKAPC_...

2020-01-08 17:03:20 750

原创 遍历vad二叉树来遍历进程里的模块

/* 遍历vad二叉树来遍历进程里的模块*/#include <ntifs.h>typedef struct _MMADDRESS_NODE{ ULONG64 u1; struct _MMADDRESS_NODE* LeftChild; struct _MMADDRESS_NODE* RightChild; ULONG64 StartingVpn; ULONG...

2020-01-08 16:53:57 1038 1

原创 通过PspCidTable枚举进程

如果当前进程为System进程,就意味着此次打开的内核对象访问权限属于内核,那么就使用内核句柄表, 内核句柄与用户句柄不同的地方就在于内核句柄需要或上一个0x80000000即最高位置为1作为标识,但是实际在使用句柄的时候还是不需要这个最高位值的。进程的句柄表由EPROCESS中的ObjectTable成员进行管理, 句柄表有3种内存结构分别为一级表,二级表以及三级表。表的结构由进程中的句...

2020-01-08 16:51:34 302

原创 枚举和隐藏内核模块

在 WIN64 上枚举内核模块有两种方法:使用 ZwQuerySystemInformation 的第 11 号功能(SystemModuleInformation)和枚举 KLDR_DATA_TABLE_ENTRY 中的 InLoadOrderLinks 双向链表;隐藏内核模块的通用方法是把指定的驱动对象从 KLDR_DATA_TABLE_ENTRY中的 InLoadOrderLinks 双向...

2020-01-08 16:47:12 1016

原创 内核反调试

1.钩子对调试器附加过程中所用到的函数挂钩。比如:NtOpenProcess、ZwDebugActiveProcess、RtlCreateUserThread、NtDebugContinue、NtCreateDebugObject、NtWaitForDebugEvent调试事件采集函数:DbgkCreateThread、DbgkExitThread、DbgkExitProcess...

2020-01-08 14:46:44 1313

原创 r3反调试

R3反调试方法非常多,且充斥着各种猥琐的方法。1.调用API反调试IsDebuggerPresent:它查询PEB中的IsDebugged标志CheckRemoteDebuggerPresent:这个函数将一个进程句柄作为参数,检查这个句柄对应的进程是否被调试器附加NtQueryInfomationProcess:它用来提取一个给定进程的信息。第一个参数是进程的句柄,第二个参数告诉我们它...

2020-01-08 11:51:55 2014

原创 8种HOOK技术

1.IAT_HOOKIAT是程序中存储导入函数地址的数据结构,如果HOOK了导入函数地址。就可以在函数调用的时候,将函数流程HOOK到我们指定的流程。但是我个人觉得这种方式最好要结合DLL注入的方式,如果单纯的使用HOOK,那么就需要将需要执行的操作的shellcode写入目标进程,如果操作复杂,可能需要的shellcode量特别大,所以我们需要借助DLL注入,这样就将我们需要执行的代码写入...

2020-01-07 15:08:45 5379

原创 x64内核hook

x64中系统提供了api帮助我们进行hook,主要是如下三个函数PsSetCreateProcessNotifyRoutineEx,这个函数的作用就是当进程创建的时候会通知你.,PsSetCreateThreadNotifyRoutine,这个函数的作用是 当线程创建的时候会通知你。PsSetLoadImageNotifyRoutine,这个函数的作用是 当模块加载的时候会通知你。...

2020-01-07 10:32:16 1489

原创 14种DLL注入技术

本文只是介绍各个注入的核心思想,详细的可以参照文末链接里的源码,一看就明白。本文只是介绍各个注入的核心思想,详细的可以参照文末链接里的源码,一看就明白。本文只是介绍各个注入的核心思想,详细的可以参照文末链接里的源码,一看就明白。第一种 CreateRemoteThread远程线程调用DLL注入是指向某一个特定的进程空间强制插入一个特定的DLL文件映像,值得注意的是这种插入是强制性的插...

2020-01-03 10:51:54 4704 1

原创 DLL劫持原理

系统有一套标准的搜索DLL路径的规则,这套规则又分为两种搜索模式,安全搜索模式,非安全搜索模式。默认情况下启用安全DLL搜索模式。要禁用此功能,需创建HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SafeDllSearchMode注册表值并将其设置为0。如果启用了SafeDllSearchMod...

2020-01-03 10:27:05 1617 2

原创 病毒分析五:勒索病毒分析

一、样本简介样本是52论坛找到的样本链接: https://pan.baidu.com/s/1yRlNwHKSa9F-nHhUiO0BCA 提取码: p498二、现象描述点开样本后,会弹出一个文本,里面有一串数字,这串数字是加密和解密的关键。然后电脑CPU会飙升到100%,是因为病毒创建了50个加密线程加密文本。三、样本信息MD5值:abca8f0299f6b5911143694...

2019-12-11 16:44:16 735

原创 使用IDAPython解密被加密函数名

最近分析一款病毒,输入表是空的,并且搜字符串,搜不到函数名,函数名被加密了。就写了个脚本把函数名都解密起来,并加注释,方便在IDA中查看。完整脚本如下:def get_string(addr): out = "" sourceString = "amNFHufoTRn0P3vI8xBS4t6jM9CqXeibUDEpQ1ZGYywJzAg7sk2lc5WLOrKdhV.?...

2019-12-04 14:39:23 1380

原创 病毒分析四:steam盗号病毒

一、样本简介样本是吾爱破解论坛找到的,原网址:https://www.52pojie.cn/thread-991061-1-1.html,样本链接: https://pan.baidu.com/s/1s6-fa6utvkFJsqQRTCT_fA 提取码: tptf此盗号木马伪装成QT语音安装文件,在开黑时,发给受害者,受害者点击后,qq账号和密码,steam账号和密码会被窃取。二、现...

2019-11-29 16:30:42 5313 2

原创 病毒分析三:勒索病毒分析

一、样本简介样本是吾爱破解论坛找到的,原网址:https://www.52pojie.cn/thread-1021466-1-1.html,样本链接: 链接: https://pan.baidu.com/s/1yueeQ91bGfIwnRNmWnKhtg 提取码: de5z样本ESET检测为Win32/Filecoder.Maoloa.E 特洛伊木马。此类型的病毒会加密文件然后勒索用户。...

2019-11-21 18:05:05 1302

原创 病毒分析二:勒索病毒分析

一、样本简介样本是吾爱破解论坛找到的,原网址:https://www.52pojie.cn/thread-1035897-1-1.html,样本链接: https://pan.baidu.com/s/1gQ0f3SH2yqeJzJW7U-Fg5A 提取码: tid2样本ESET检测为Win32/Kryptik.GUIH 特洛伊木马的变种。此类型的病毒会加密文件然后勒索用户。二、现象描述...

2019-10-30 17:19:01 1516 2

原创 病毒分析一:恶意下载软件

一、样本简介样本是在卡饭论坛找到的,原网址:https://bbs.kafan.cn/thread-2159857-1-1.html,样本下载链接: 链接: https://pan.baidu.com/s/1Jn-rhDOQRC-Lpe9lhCZF_Q 提取码: nb9e样本ESET检测为Adware.Qjwmonkey.H应用的变种。此类型的特洛伊木马会将代码注入到Web浏览器应用程序I...

2019-10-15 10:59:41 6908

原创 用ida打开ntoskrnel.exe很多函数名不显示的问题

原因很简单,缺少符号文件。解决方法:打开IDA目录下的文件pdb.cfg,把PDBSYM_SYMPATH = "SRV*c:\\symbols*http://symbols.mozilla.org/firefox;SRV*c:\\symbols*http://msdl.microsoft.com/download/symbols";这段前面的注释去掉,保存配置文件,重新用IDA打开ntosk...

2019-09-09 10:54:31 1867

原创 shader常用函数列表

http://blog.csdn.net/laverfever/article/details/23962411

2017-08-07 09:49:04 346

原创 Alpha混合技术——unity

Alpha混合通常是为了实现透明效果,透明效果的程度通过alpha值来控制混合公式OutputPixel = SourcePixel ⊗ SourceBlendFactor + DestPixel ⊗ DestBlendFactorOutputPixel—混合后的颜色SourcePixel—源像素,即当前正在计算的像素的颜色SourceBlendFactor

2017-07-24 11:20:19 1248

原创 SubShader Tags

这篇文章翻译自官方文档的subshader tags篇官方文档:https://docs.unity3d.com/Manual/SL-SubShaderTags.html翻译文章:http://blog.csdn.net/TreePulse/article/details/53484505

2017-07-24 10:40:46 229

原创 Unity3D Shader 入门

比较详细,可以看看http://blog.csdn.net/ring0hx/article/details/46440037

2017-07-20 20:00:49 225

原创 四元数

http://blog.csdn.net/candycat1992/article/details/41254799   点击打开链接

2017-07-10 10:55:48 210

原创 锯齿与抗锯齿

抗锯齿(英语:Anti-Aliasing,简称AA),也译为边缘柔化、消除混叠、抗图像折叠有损,反走样等。它是一种消除显示器输出的画面中图物边缘出现凹凸锯齿的技术,那些凹凸的锯齿通常因为高分辨率的信号以低分辨率表示或无法准确运算出3D图形坐标定位时所导致的图形混叠(aliasing)而产生的,抗锯齿技术能有效地解决这些问题。1,SSAA--SuperSampling Anti-Al

2017-07-07 14:27:51 2928

原创 伽马校正

伽马校正(Gamma correction)

2017-07-07 14:12:52 782

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除