本文已上传视频教学: https://www.bilibili.com/video/BV1Wy4y1X7Z5/?spm_id_from=333.999.0.0 ntdll.dll常常是被挂钩的主要模块
b. _InternalQueryInterface函数调用InternalQueryInterface函数,定义在BEGIN_COM_MAP宏内部
本文将对 CVE-2016-0165 (MS16-039) 漏洞进行一次简单的分析,并尝试构造其漏洞利用和内核提权验证代码,以及实现对应利用样本的检测逻辑。分析环境为 Windows 7 x86 SP1 基础环境的虚拟机,配置 1.5GB 的内存。
最近读了一些C2的源码,其中shad0w的syscall模块具有很高的移植性,分享给有需要的朋友。
Github https://github.com/gongluck/Windows-Core-Program.git //第1章 错误处理.cpp: 定义应用程序的入口点。 // #include "stdafx.h" #include "第1章 错误处理.h" int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _
这个函数并不能直接使用,需要修复一些东西。首先需要考虑的是DbgkDebugObjectType这个。这个玩意在wrk中是一个全局变量。ida中也是一个全局变量
Github上了一个名叫SharpNukeEventLog的项目,目的是在执行敏感操作时不会产生windows日志记录。地址为:
转载于: github 参考: github #define WIN32_LEAN_AND_MEAN #include <Windows.h> #include <winternl.h> #include <malloc.h> #ifdef _M_AMD64 #include <intrin.h> #elif defined(_M_ARM) #include <armintr.h> #endif #ifdef _M_IX86 static __inline PEB __declspec(naked
int make_server_socket(int port) { WSADATA inet_WsaData;//1 WSAStartup(MAKEWORD(2, 0), &inet_WsaData);//1 1 WSADATA inet_WsaData;SAStartup(MAKEWORD(1, 1), &inet_WsaData); 在windows下使用socket的相关函数前,必须通过WSAStartup函数完成对Winsock服务的初始化。 int WSAStartu
其实就是代表分了几种情况,都可以表示,也相当于c里面的union _SYSTEM_INFO = record case Integer of 0: ( dwOemId: DWORD); 1: ( wProcessorArchitecture: Word; wReserved: Word; dwPageSize: DWORD; lpMinimumApplicationAddress: Poi
一种规避杀软检测的技术就是内存加密技术。由于杀软并不是一直扫描内存,而是间隙性的扫描敏感内存,因此可以在cs的shellcode调用sleep休眠将可执行内存区域加密,在休眠结束时再将内存解密来规避杀软内存扫描达到免杀的目的。
Hook 技术常被叫做挂钩技术,挂钩技术其实早在DOS时代就已经存在了,该技术是Windows系统用于替代DOS中断机制的具体实现,钩子的含义就是在程序还没有调用系统函数之前,钩子捕获调用消息并获得控制权,在执行系统调用之前执行自身程序,简单来说就是函数劫持.
一个程序,当运算很充分(IO等操作很少)时,指定到单独一个CPU上运行会比不指定CPU运行时快。这中间主要有两个原因:
InlineHook 是一种计算机安全编程技术,其原理是在计算机程序执行期间进行拦截、修改、增强现有函数功能。它使用钩子函数(也可以称为回调函数)来截获程序执行的各种事件,并在事件发生前或后进行自定义处理,从而控制或增强程序行为。Hook技术常被用于系统加速、功能增强、开发等领域。本章将重点讲解Hook是如何实现的,并手动封装实现自己的Hook挂钩模板。
虚拟环境模拟硬件设备并在其描述中留下特定的痕迹 - 可以查询这些痕迹并得出有关非主机操作系统的结论。
所有关注攻击性安全社区的人都会在过去两年中一次又一次地遇到Userland hooking, Syscalls, P/Invoke/D-Invoke等术语。我自己也遇到了一些我不完全理解的博客文章和工具。我有时觉得我需要从头开始积累知识。由于我在很多情况下不需要这些“新”技术,我把这些课题的研究推迟了几个月。
http://download.csdn.net/source/1687116
ATL模板类库使用Thunk技术来实现与窗口消息相关联的HWND和负责处理消息的对象的this指针之间的映射。 ATL中窗口类注册时,窗口过程函数缺省值都是StartWindowProc,当创建窗口产生第一条消息时将调用此函数。 StartWindowProc是CWindowImplBase的一个静态成员函数,它的工作是建立CWindowImpl派生对象的HWND与对象的 this指针之间的映射。在新的HWND被缓存到WindowImpl派生对象的成员数据中之后,对象真正的窗口过程将替代 StartWindowProc窗口过程,并且窗口过程参数HWND被替换成对象指针值。
文章前先给各位师傅拜个早年啦,要过年了,公众号也会停更一段时间,年后回复啦。这篇文章中,我们将介绍如何来隐藏你程序的PEB信息。首先先来了解一下什么是PEB,其全程为Process Envirorment Block ,直译过来就是进程环境信息块,存放进程信息,每个进程都有自己的PEB信息。位于用户地址空间。其结构如下:
事件日志搭配Windows事件转发和Sysmon,将会成为一个非常强大的安全防御方案,可以帮助研究人员检测攻击者在目标设备上的每一步非法操作。很明显,这是攻击者需要解决的问题。如果不能实现提权的话,攻击者能绕过事件日志的方式还是有限的,一旦实现提权,那结果可就不同了。
在经过一段时间研究使用go语言进行shellcode加载器免杀之后发现go语言的效果并没有以前那么好了,在近一段时间看公众号文章时发现了nim语言,该语言很小众,杀软对其针对的力度可能比较小,在教育护网前做一个初步的研究。
Hook 技术通常被称为钩子技术,Hook技术是Windows系统用于替代中断机制的具体实现,钩子的含义就是在程序还没有调用系统函数之前,钩子捕获调用消息并获得控制权,在执行系统调用之前执行自身程序,简单来说就是函数劫持,本笔记将具体介绍应用层Hook的实现机制。
记录一下, 方便查阅 官方链接: The StormLib library//----------------------------------------------------------------------------- // Functions in StormLib - compatible with Storm.dll // Typedefs for functions exported by Storm.dll typedef LCID (WINAPI * SFILESET
在WINDOWS下,音频函数有多种类型,如MCI、多媒体OLE控制、高级音频等,使用方法都比较简单。 但如果想编写一个功能较强大的音频处理程序,那就必须使用低级音频函数和多媒体文件I/O来控制音频设备的输入和输出。 因为低级音频函数可直接与音频驱动程序交互,通过窗口消息或回调(CALLBACK)函数来管理音频数据块的记录和播放,控制非常灵活。重要的一点是,低级音频函数为我们提供了一个设备无关的接口。 Header: Declared in Mmsystem.h; include Wind
期待的效果就像 PCHuntor 里的那样,如下: 📷 上代码 #include "stdafx.h" #include <Windows.h> #include <vector> #include <iostream> #include <assert.h> #include <psapi.h> #include <tlhelp32.h> using namespace std; /*枚举指定进程所有内存块 assert(hProcess != nullptr); 参数: hProcess:
WinInet(Windows Internet)是 Microsoft Windows 操作系统中的一个 API 集,用于提供对 Internet 相关功能的支持。它包括了一系列的函数,使得 Windows 应用程序能够进行网络通信、处理 HTTP 请求、FTP 操作等。WinInet 提供了一套完整的网络通信工具,使得开发者能够轻松地构建支持网络功能的应用程序,涵盖了从简单的 HTTP 请求到复杂的文件传输等多种网络操作。
托盘图标,就是底部任务栏托盘,可以直接遍历,如果需要输出任务栏中的图片内容可使用如下方式。
本文是OffenSive Csharp Development的第二篇文章,来将UUID免杀方法转换成C#进行使用。原来的UUID方法源码如下,本质还是api滥用:
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
BOOL WINAPI WinHttpAddRequestHeaders( _In_ HINTERNET hRequest, _In_ LPCWSTR pwszHeaders, _In_ DWORD dwHeadersLength, _In_ DWORD dwModifiers ); 作用:加入�一个HTTP的请求头域。 參数说明: hRequest [in] 一个HINTERNET句柄通过调用WinHttpOpenRequest返回。
许久不写博客,甚至已经有些忘记格式该是如何的,本篇博文用于记录我在学习Windows安全时的一些知识点。
最近开发平台由VC6.0升级至VS2005,需要将原有的项目迁移,特将碰到的问题归纳如下:
免杀是同所有的检测手段的对抗,目前免杀的思路比较多。本篇介绍了一个独特的思路,通过内存解密恶意代码执行,解决了内存中恶意代码特征的检测。同时提出了one click来反沙箱的思路,阐述了一些混淆反编译的想法。
沙盒模拟通常持续很短的时间,因为沙盒加载了数千个样本。仿真 时间很少超过3-5分钟。因此,恶意软件可以利用这一事实来避免检测:它可能会执行 在开始任何恶意活动之前长时间延迟。
这篇文章昨天发过一次,后面有人提醒文章中不能出现原代码,所以我把文章删了,今天重发,删了原代码,想看原文和原代码的可以在星球下载。
通过上一讲我们的消息映射表.我们得知. 消息映射表 会保存父类的MessageMap 以及自己当前的消息结构体数组.
远程注入CreateRemoteThread使用了 LdrLoadDll 注入失败 getlasterror 87 - 参数错误 经过x64 dbg调试,是静态依赖的dll未找到导致dll加载失败 注入经典源码示例: /* Cuckoo Sandbox - Automated Malware Analysis. Copyright (C) 2010-2015 Cuckoo Foundation. This program is free software: you can red
根本原因是程序使用了标准函数,而在你的机器上,没有这个标准函数对应的动态库实现,如果想要顺利运行则需要到官方网站下载对应版本的动态库安装即可
关于 QTimer 的具体实现,翻看源码源于一次面试经历。被问到 QTimer 的问题,我随口说了一句:Windows 平台下是用 Windows API 实现的,然后便引起了怀疑,不过我据理力争,便也作罢。所以回来之后,就又确认了一下。
传统的通过patch内存AmsiScanBuffer,这个网上有很多文章,而且相对也比较简单,这里就不再解释了,但是patch这个动作势必会有一定的敏感性,比如你需要修改关键位置内存属性。本文要讲的是无需patch的方式绕过amsi。
多任务的本质就是并行计算,它能够利用至少2处理器相互协调,同时计算同一个任务的不同部分,从而提高求解速度,或者求解单机无法求解的大规模问题。以前的分布式计算正是利用这点,将大规模问题分解为几个互不不相关的问题,将这些计算问题交给局域网中的其他机器计算完成,然后再汇总到某台机器上,显示结果,这样就充分利用局域网中的计算机资源。 相对的,处理完一步接着再处理另外一步,将这样的传统计算模式称为串行计算。 在提高处理器的相关性能主要有两种方式,一种是提高单个处理器处理数据的速度,这个主要表现在CPU主频的调高上,而当前硬件总有一个上限,以后再很难突破,所以现在的CPU主要采用的是调高CPU的核数,这样CPU的每个处理器都处理一定的数据,总体上也能带来性能的提升。 在某些单核CPU上Windows虽然也提供了多任务,但是这个多任务是分时多任务,也就是每个任务只在CPU中执行一个固定的时间片,然后再切换到另一个任务,由于每个任务的时间片很短,所以给人的感觉是在同一时间运行了多个任务。单核CPU由于需要来回的在对应的任务之间切换,需要事先保存当前任务的运行环境,然后通过轮循算法找到下一个运行的任务,再将CPU中寄存器环境改成新任务的环境,新任务运行到达一定时间,又需要重复上述的步骤,所以在单核CPU上使用多任务并不能带来性能的提升,反而会由在任务之间来回切换,浪费宝贵的资源,多任务真正使用场合是多核的CPU上。 windows上多任务的载体是进程和线程,在windows中进程是不执行代码的,它只是一个载体,负责从操作系统内核中分配资源,比如每个进程都有4GB的独立的虚拟地址空间,有各自的内核对象句柄等等。线程是资源分配的最小单元,真正在使用这些资源的是线程。每个程序都至少有一个主线程。线程是可以被执行的最小的调度单位。
列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。 MFC中使用CListCtrl类来封装列表控件的各种操作。 通过调用 BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID )创建一个窗口,
整理复习汇编语言的知识点,以前在学习《Intel汇编语言程序设计 - 第五版》时没有很认真的整理笔记,主要因为当时是以学习理解为目的没有整理的很详细,这次是我第三次阅读此书,每一次阅读都会有新的收获,这次复习,我想把书中的重点,再一次做一个归纳与总结(注:16位汇编部分跳过),并且继续尝试写一些有趣的案例,这些案例中所涉及的指令都是逆向中的重点,一些不重要的我就直接省略了,一来提高自己,二来分享知识,转载请加出处,敲代码备注挺难受的。
minhook是一个inline Hook的库,同时支持x32和x64系统,并且是开源的,地址在这里https://www.codeproject.com/Articles/44326/MinHook-The-Minimalistic-x-x-API-Hooking-Libra。下面就简单的分析一下它的工作过程。
循环语句(for)是计算机编程中的一种基本控制结构,它允许程序按照指定的次数或范围重复执行一段代码块。for循环在处理需要进行迭代操作的情况下非常有用,它使得程序可以更加方便地控制循环的次数。一般来说,for循环由三个部分组成:初始化部分、条件表达式和更新部分,以及一个需要重复执行的代码块。在每次循环迭代开始时,程序首先执行初始化部分,然后检查条件表达式的值,如果为真,则执行代码块,并在每次循环结束后执行更新部分。只要条件表达式为真,for循环就会一直重复执行;一旦条件表达式为假,循环将停止,程序继续执行循环之后的代码。
话说这个东西是前天拿到的,但是当时在家,东西也不全。平直接感觉是加壳了。去peid官方下载了个没有更新特征库的报了个什么都没发现,晕死。
领取专属 10元无门槛券
手把手带您无忧上云