自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LYSM

[LYing SiMon] tells the lies that he [Loves You So Much]

  • 博客(352)
  • 收藏
  • 关注

原创 [UE] 软件界面(未完成)

布局默认的布局大致是这样:(可以拿 vs 的窗口和它做类比)菜单放置(工具栏)内容(解决方案管理器)快捷键世界大纲(类资源)细节(控件属性)主窗口(编辑窗口)菜单文件菜单没啥好说的,编辑菜单里有几个比较重要的:取消操作历史(就是历史记录,防止你手搓)复制、粘贴、删除 actor (我这里以复制为例)编辑器偏好设置、项目设置(太多了,我暂时把它理解为 vs 里的项目属性)放置Actor:可放入关卡中的对象都是 Actor。Actor是一种支持三

2021-04-10 18:16:41 531

原创 [windbg] 进程、线程

查看所有进程信息!process 0 0查看当前进程信息!process -1 1查看指定进程名信息!process 0 0 test.exe

2021-04-07 14:54:37 963

原创 [Windows驱动开发] 驱动中的字符串操作

初始化UNICODE_STRING u_src;RtlInitUnicodeString(&src,"hello");

2021-04-07 14:50:30 695

原创 [UE] 入坑

官方文档英文文档:https://docs.unrealengine.com/latest/INT/中文文档:https://docs.unrealengine.com/latest/CHN/index.html

2021-04-05 00:20:54 198

原创 [知识面拓展] 深度数据包检测(DPI)

介绍深度数据包检测(Deep packet inspection,缩写为 DPI)是一种特殊的网络技术,一般网络设备只会查看以太网头部、IP头部而不会分析TCP/UDP里面的内容这种被称为浅数据包检测;与之对应的DPI会检查TCP/UDP里面的内容,所以称为深度数据包检测。DPI一般是一个硬件或者软件,一般用“旁挂”的方式接入到网络。它会对网络中的每个数据包进行检查,识别出应用层协议,根据识别的协议采取一定的措施(比如记录HTTP访问行为)。对于TCP协议它可以识别完整的TCP交互过程(比如HTTP请求

2021-03-26 17:52:07 1010

原创 [windows 驱动] 获取当前进程名

PEPROCESS ep = NULL;if (STATUS_SUCCESS == PsLookupProcessByProcessId(PsGetCurrentProcessId(), &ep)){ char* name = PsGetProcessImageFileName(ep); if (strcmp(name, "notepad.exe") == 0) { // do something ... }}

2021-03-25 20:07:40 1758

原创 [windbg] 附加到用户进程

!process 0 0 test.exe.process /i 进程的eprocess;g;.process /p 进程的eprocess; !peb 进程的peb;.reload /userbp test!你要下断的函数名

2021-03-25 19:44:30 1696

原创 [病毒木马] Windows 映像劫持

介绍映像劫持(Image File Execution Options),简单的解释就是,当你执行某一程序A的时候,运行的却是另外一个程序B。实现通过修改注册表实现。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options...

2021-03-19 10:11:02 1007

原创 [病毒木马] 利用 Windows 任务计划程序

背景Windows 内置了 任务计划程序 功能,在计算机管理中可以看到。这个东西可以让你的程序在特定的条件下启动,很多病毒木马使用它在做自启动。手动创建一个计划任务参考:https://blog.csdn.net/weixin_43279032/article/details/90030747使用 cmd 创建一个计划任务参考:https://blog.csdn.net/weixin_30371875/article/details/97575358...

2021-03-18 17:33:41 774

原创 [窗口操作] 主动调用WndProc

原理hook 窗口注册函数 RegisterClassEx 、RegisterClass , 拿到 WndProc 指针,之后使用这个指针直接调用 WndProc 函数。作用:绕过 windows 消息泵,速度大约是使用 PostMessage 或 SendMessage 的两倍。代码参考 : https://github.com/killvxk/wndproc-autoclick...

2021-03-08 10:40:32 390

原创 MSRPC(MicroSoft Remote Procedure Call,微软远程过程调用)

背景偶然发现普通管理员(非 Administrator),在右键管理员权限运行 A.exe 时,使用 ProcessMonistrator 观察这个进程被 explorer 创建,但是 hook explorer 的进程创建 api 却拦截不到 A.exe 的创建,之后尝试全局注入 dll ,发现创建 A.exe 的竟然是 svchost.exe !回头看 ProcessMonistrator 中 explorer 的创建进程时的调用栈,发现里面有很多 rpc 相关的函数,所以应该是 explorer

2021-03-04 11:28:03 9219 1

原创 Protected Process Light(PPL)微软系统进程保护机制

背景Protected Process Light(PPL) 可以将某些进程(一般是杀软和系统自身进程)提权到比超级管理员还要高,拥有一般的自我保护所达不到的效果:绕过 PPLhttps://github.com/Mattiwatti/PPLKiller

2021-03-04 10:50:11 2270 1

原创 [驱动开发] wcsstr 蓝屏

原因wcsstr是根据最后一个字符是否为NULL判断字符串是否完成的 ,而 UNICODE_STRING,并不是应用层开发意义上的字符串,也不一定是以NULL结束。解决方案RtlStringCbCopyNW 复制 buffer 到 wchar* 中,在进行比较WCHAR pszDest[MAX_PATH] = { 0 };if (STATUS_SUCCESS != RtlStringCbCopyW(pszDest, MAX_PATH, FltObjects->FileObject->F

2021-03-02 16:59:01 486

转载 IRP Hook

谈到irp拦截,基本上有三种方式在起点拦截在半路拦截在终点拦截下面我们会详细分析这几种方式哪些是有效的,哪种是无效的。 要理解这几种拦截,我们需要看看irp地传送过程。(注意并不是每种IRP都经过这些步骤,由于设备类型和IRP种类的不同某些步骤会改变或根本不存在。)一、IRP创建。由于IRP开始于某个实体调用I/O管理器函数创建它,可以使用下面任何一种函数创建IRP:IoBuildAsynchronousFsdRequest 创建异步IRP(不需要等待其完成)。该函数和下一个函数仅适

2021-03-02 11:26:22 909

原创 堆喷射(Heap Spray)

简而言之:1.用途一般用在浏览器,因为 Javascript 可以直接在堆上分配字符串。2.如何堆喷射js中大量分段申请0c0c0c0c内存,每段后面跟shellcode0到0c0c0c0c总共不到200m碰运气覆盖一个函数指针这个函数被调用的时候就会跳到0c0c0c0c处执行0c对应汇编指令or al,0c然后一直往下执行到达shellcode…原理参考:https://blog.csdn.net/lixiangminghate/article/details/53413863

2021-03-01 17:37:55 1062

原创 MBR 病毒

背景MBR全称主引导记录(Master Boot Record),整个硬盘最开头的512字节就是它。计算机启动后会先运行MBR里的代码进行各种状态的检查和初始化的工作,然后再把控制权转交给操作系统(简单地讲就是一个JMP指令跳到操作系统的起始代码),Windows就加载启动了。MBR 病毒做的事就是直接把整个MBR覆盖掉,变成了它自己的代码,那么它想干什么都行了,只要它不主动交出代码执行流程,Windows绝没有启动的机会。代码此代码来自:https://www.cnblogs.com/xio

2021-02-26 17:51:38 2029 1

原创 应用层主动触发蓝屏

闲的,干点无聊的事情 _(:з」∠)_使用 NtRaiseHardError#include <iostream>#include <Windows.h>#include <winternl.h>using namespace std;typedef NTSTATUS(NTAPI *pdef_NtRaiseHardError)(NTSTATUS ErrorStatus, ULONG NumberOfParameters, ULONG UnicodeStrin

2021-02-26 17:14:37 789

原创 [机器学习] 有趣的机器学习项目

pkhungurn一招生成定制版二次元人脸头像,还能“模仿”你的表情。https://pkhungurn.github.io/talking-head-anime/

2021-02-25 20:18:39 308

原创 [逆向] x64dbg / od 设置消息断点

背景很多时候在我们不知道目标程序调用了哪些 api 时,需要使用消息断点粗略的定位关键代码位置。比如在游戏里点击一次鼠标,可以根据这个消息向下跟踪点击完鼠标后游戏执行的逻辑。方法一个简单的消息循环是这样的 :while( GetMessage(&msg,NULL,0,0) ) { TranslateMessage(&msg); //将 WM_XXXKEYXXX 消息翻译为 WM_CHAR 消息 DispatchMessage(&

2021-02-22 16:54:18 3066 1

原创 [游戏分析] 游戏逆向

射击类FPS游戏:实现D3D劫持透视 (API Hook)FPS游戏:实现GDI方框透视 (三角函数)

2021-02-07 12:10:17 2837

原创 C++ 获取类成员函数地址,并通过地址调用函数

class BaseWithoutV {public: void func1() { MessageBox(0, "BaseWithoutV func1", "", 0); } void func2() { MessageBox(0, "BaseWithoutV func2", "", 0); }private: int m_data1, m_data2;};int main(){ // 这里打印的可能不是 MessageBox 的上层函数,因为 &BaseWi

2021-02-05 17:49:12 2711

原创 [机器码] 获取 MAC 地址的几种方法

Netbios#include <windows.h>#pragma comment(lib, "Netapi32.lib") namespace{bool GetAdapterInfo(int adapterNum, std::string& macOUT){ NCB Ncb; memset(&Ncb, 0, sizeof(Ncb)); Ncb.ncb_command = NCBRESET; // 重置网卡,以便我们可以查询 Ncb.ncb_lana_nu

2021-02-05 16:13:32 2156 1

原创 全面分析游戏限制多开原理

转载一篇他人的优秀文章,另外加入了一些自己的见解 _(´ཀ`」∠)_加班1,进程现象:游戏通过探测游戏客户端进程是否已经存在来防止重复打开。破解方法:(1)隐藏进程。可以用工具 HideToolz,也可以自己写驱动简单的做个摘链隐藏。(2)hook 游戏遍历进程的 api。CreateToolhelp32Snapshot()、Process32First()和Process32Next()EnumProcesses()、EnumProcessModules()、GetModuleBase

2021-01-30 12:04:52 3596 1

原创 [Windows] exe 图标上的 UAC 盾牌

背景在编写程序的时候,可以在 vs 里的链接器中设置 UAC:但其实还有一种方式可以加入 UAC 图标,只需要修改文件的属性即可。过程参考转自:https://www.zhihu.com/question/27895048/answer/38533509Windows Vista Application Development Requirements for User Account Control (UAC)如果是安装程序会适用installer detection。我把家里压箱底的星际光盘

2021-01-27 11:29:48 1698

转载 [Windows] 获取设备唯一标识

原文地址:http://www.vonwei.com/post/UniqueDeviceIDforWindows.html唯一的标识一个设备是一个基本功能,可以拥有很多应用场景,比如软件授权(如何保证你的软件在授权后才能在特定机器上使用)、软件License,设备标识,设备身份识别等。下面列举一下各种方法的优劣:(1)网卡MAC地址MAC地址可能是最常用的标识方法,但是现在这种方法基本不可靠:一个电脑可能存在多个网卡,多个MAC地址,如典型的笔记本可能存在有线、无线、蓝牙等多个MAC地址,随着不同连接

2021-01-08 17:37:19 5708 1

转载 [环境搭建] vmware 搭建 mac os

详细过程:https://jingyan.baidu.com/article/c14654138f35920bfcfc4c28.htmlunlocker 的可用版本(反正我测试的时候只有这个能成功):https://github.com/paolo-projects/unlocker

2020-12-09 19:01:11 221 1

转载 [DLL 注入] C/C++ 修改EIP实现DLL注入

背景挂起目标进程,停止目标进程EIP的变换,在目标进程开启空间,然后把相关的指令机器码和数据拷贝到里面去,然后修改目标进程EIP使其强行跳转到我们拷贝进去的相关机器码位置,执行相关,然后跳转回来。下面的例子是实现DLL注入,但是和平时说的远程代码注入在注入的逻辑上不同,但是同时都是用到了一个重要的结论就是:很多系统dll的导出函数地址在不同进程中,是一样的.注意两个问题1.call 如果直接是个地址的话要这么计算    call RVA - call指令的下一条地址 RVA - (nowaddres

2020-11-28 01:41:01 922

转载 [机器码] C/C++ 获取系统IP地址/硬件信息等

#include<stdio.h>#include<winsock2.h> //该头文件需在windows.h之前#include<windows.h>#include<string>#include<iostream>#pragma comment(lib,"ws2_32.lib") using namespace std;void getIP(){ WSADATA WSAData;

2020-11-28 01:38:26 2308

转载 [汇编] c++ 类在汇编中的体现

请转到以下链接食用 ????????:https://www.cnblogs.com/LyShark/p/12771924.html

2020-11-28 00:08:37 501

转载 [反调试] STATUSINFO

背景STARTUPINFO 反调试:程序启动时默认会通过 explorer 资源管理器,调用 CreateProcess() 函数创建的时候会把 STARTUPINFO 结构体中的值设置为0,但如果通过调试器启动程序时该值并不会发生变化,我们可以通过判断结构体中的 dwFlags 参数来实现反调试.代码#include <Windows.h>#include <stdio.h>int IsDebug(){ STARTUPINFO si = {0}; GetStar

2020-11-27 19:42:18 483

转载 [加密解密] 在反汇编中识别加密算法(特征码)

请转到以下链接食用 ????

2020-11-27 19:34:22 1007

转载 [ShellCode] 动态解密 ShellCode,免杀

背景今天在复习《加密与解密》时,在软件保护这一章中有一个代码与数据结合的案例,其原理是将代码段中的代码进行xor异或加密处理以后回写到原始位置,当程序运行后将此处的内容动态的进行解密,解密后回写替换回原始内存位置,这样就能实现内存加载。由此案例我想到一个关于免杀的利用思路,首先杀软的运作方式多数为特征码查杀,当我们程序中使用了敏感的函数时,就会存在被杀的风险,而如果将代码段中的代码进行加密,需要时直接在内存中解密,那么杀软将无法捕捉硬盘文件的特征,从而可以规避杀软针对硬盘特征的查杀手法。经过阅读该案例

2020-11-27 18:10:14 2071 1

原创 [DLL 劫持] 修改 IAT ,让程序启动时加载自己的 DLL

请转到以下链接食用 ????????:https://www.cnblogs.com/LyShark/p/13697577.html

2020-11-27 17:58:36 980

转载 [加壳脱壳] 手写自己的壳子,并尝试脱壳

请到下面链接食用 ????????:写一个简单的异或加密壳????:手动脱壳以及脱壳后的修复

2020-11-27 17:41:33 522 1

转载 [提权] 使用 ShellCode 注入其他进程

背景如果将shellcode注入到具有特定权限的进程中,使用 ShellCode 创建的进程就可以获得与该进程相同的权限。本次使用的工具,依旧是上次编写的PETools:https://www.cnblogs.com/LyShark/p/12960816.html提权降权工具下载地址:https://www.blib.cn/soft/pexec.zip枚举系统进程,与进程权限令牌等。#include <stdio.h>#include <Windows.h>#inc

2020-11-27 17:32:23 1026 3

转载 [检测] CRC 校验内存补丁

背景通常程序中至少包括了代码段,数据段,而数据段中所存储的数据是经常会发生变动的,例如我们的全局变量,静态变量等都会默认存储在数据段,而代码段则不会发生变化,我们在检验时只需要注重.text内存段中的数据完整性即可,针对内存的校验同样可以抵御调试器的CC断点,该断点原理就是在下端处写入int3指令,同样可以检测得到。校验思路如下1.首先从内存得到PE的代码节的RVA和节大小2.根据得到的RVA和节大小计算出crc32或是RC4值3.读取自身保存的原始CRC32值,与校验结果进行比较代码:

2020-11-27 17:06:25 997

原创 Windows 消息大全

WM_ :窗口消息窗口消息// 自身WM_ERASEBKGND // 当窗口背景必须被擦除时(例在窗口改变大小时)WM_GETFONT // 得到当前控件绘制文本的字体WM_SETFONT // 设置当前控件绘制文本的字体WM_GETTEXT // 得到与窗口对应的文本WM_SETTEXT // 设置与窗口对应的文本WM_GETTEXTLENGTH // 确定与窗口关联的文本的长度(以字符为单位)。WM_SETICON // 将

2020-11-20 17:18:07 428

转载 透视挂原理:透明窗口,画框,画线,绘制文字的实现(C++)

注意:需要开启透明壁纸效果先上效果图:新建一个空项目,根据自己的D3D库路径导入D3D库(这里是用DrectX9,手贱画了三根线,不用理):新建一个预编译.h头文件:#pragma once #include <d3d9.h>#include <d3dx9.h>#pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib")#include <dwmapi.h>#pragma co

2020-11-09 16:43:48 1551

转载 Sunday算法实现内存快速搜索特征码(支持带问号)

效果图:代码:#include<Windows.h>#include<iostream>#include<vector>#include<time.h> using namespace std; #define BLOCKMAXSIZE 409600//每次读取内存的最大大小BYTE* MemoryData;//每次将读取的内存读入这里short Next[260]; //特征码转字节集WORD GetTzmArray(char*

2020-11-09 16:31:38 1302

转载 [驱动开发] 手写 r0 hook(NtOpenProcess 为例)

inlineHook的原理:为了方便好理解,一些变量名和函数名在这里使用中文命名,有些编译器不支持中文命名,在这里要注意(我的是VS2019)hook.h:#pragma once#include<ntifs.h>#include<ntddk.h>#pragma intrinsic(__readmsr) //SSDT的结构typedef struct _SYSTEM_SERVICE_TABLE { PLONG ServiceTableBase; PVOI

2020-11-09 16:23:55 1466

空空如也

空空如也

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

TA关注的人

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