自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 vs2015编译纯ASM文件

x86:1. 创建一个 C++ 的空项目。2.解决方案管理器 - 目标项目名 - 右键 - 生成依赖项 - 生成自定义 (VS2015, 如果使用VS2010 你右键就直接能看到生成自定义)3. 勾选 masm - 确定4. 解决方案管理器 - 目标筛选器 - 添加 - 新建项 - cpp文件(选啥无所谓) - 文件名 - 填写你想要的asm文件名,记得后缀一定...

2017-09-08 09:53:00 821

转载 反虚拟机技术总结

总结一下反虚拟机检测技术相关博客:http://bbs.pediy.com/thread-119969.htm根据特定的文件夹或文件信息通过查找磁盘中是否存在特定的文件夹或文件,判断当前是否在虚拟机中。VMware虚拟机中通常会有路径C:\Program Files\VMware\VMware Tools\;VirtualBox虚拟机中通常会有路径C:\Progr...

2017-09-08 08:45:00 288

转载 病毒特征码

特征码选取的基本方法MD5以及CRC32这样的算法1、计算校验和 这种方法的特点是简单快速,也是我们之前的专杀工具所采用的方式。但是采用这种方法,一种特征码只能匹配一个病毒,即便病毒的变动很小,也需要重新提取特征码,这造成的后果是会使得特征码库过于庞大,一般用于临时提取特征码。所以这种计算校验和的方式不是我们讨论的重点。2、提取特征...

2017-09-08 08:41:00 530

转载 Dll注入:修改PE文件 IAT注入

PE原理就不阐述了, 这个注入是PE感染的一种,通过添加一个新节注入,会改变PE文件的大小,将原有的导入表复制到新节中,并添加自己的导入表描述符,最后将数据目录项中指向的导入表的入口指向新节。步骤:1.添加一个新节;映射PE文件,判断是否可以加一个新节,找到节的尾部,矫正偏移,对齐RVA填充新节PIMAGE_SECTION_HEADER,修改IMAGE_NT_HEADERS,...

2017-08-26 13:32:00 186

转载 ring0 关于SSDTHook使用的绕过页面写保护的原理与实现

原博:http://www.cnblogs.com/hongfei/archive/2013/06/18/3142162.html为了安全起见,Windows XP及其以后的系统将一些重要的内存页设置为只读属性,这样就算有权力访问该表也不能随意对其修改,例如SSDT、IDT等。但这种方法很容易被绕过,我们只要将这些部分修改为可写属性就可以了,不过当我们的事情做完后记得把它们恢复为只读...

2017-08-25 14:29:00 118

转载 x64 分页机制——虚拟地址到物理地址寻址

原博客:http://www.cnblogs.com/lanrenxinxin/p/4735027.html详细的理论讲解都在上面下面说的是通过windbg手动进行寻址,深入理解x64:实践:int main(){ char* v1 = "HelloWorld"; printf("%p\r\n", v1); while (1) { } ...

2017-08-25 14:25:00 435

转载 ring0 ShadowSSDTHook

SSDT:主要处理 Kernel32.dll中的系统调用,如openProcess,ReadFile等,主要在ntoskrnl.exe中实现(微软有给出ntoskrnl源代码)ShadowSSDT: 1.主要处理,user32.dll,GDI32.dll中调用的函数,如postMessage,SendMessage,FindWindow,主要在win32k.sys中实现.(微软未给...

2017-08-25 14:09:00 158

转载 ring0 恢复SSDTHook

原理:用ZwQuerySystemInformation 功能号为11(SystemModuleInformation) 得到所有系统模块的地址 遍历搜索得到ntos模块的基地址读Ntos模块到System进程空间中在ntos中找到函数真正地址将地址转换为ssdt的索引//X64版本#include "ResumeSSDTHook.h"#define ...

2017-08-25 14:06:00 113

转载 ring0 SSDTHook 实现x64/x86

#include "HookSSDT.h"#include <ntimage.h>#define SEC_IMAGE 0x001000000ULONG32 __NtOpenProcessIndex = 0;PVOID __ServiceTableBase = NULL;ULONG32 __OldNtOpenProcessOffse...

2017-08-25 14:03:00 187

转载 ring0 SSDTHook

SSDT 的全称是 System Services Descriptor Table,系统服务描述符表。这个表就是一个把 Ring3 的 Win32 API 和 Ring0 的内核 API 联系起来。SSDT 并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基地址、服务函数个数等。通过修改此表的函数地址可以对常用 Windows 函数及 API 进行 Ho...

2017-08-25 14:00:00 115

转载 ring0 暴力枚举进程

原理:遍历进程ID,然后openprocess,能打开的都枚举出来ring0 :#include "EnumProcessByForce.h"externchar* PsGetProcessImageFileName(PEPROCESS EProcess);externPOBJECT_TYPE* PsProcessType;NTSTATUS...

2017-08-25 13:56:00 177

转载 ring0 进程隐藏实现

最近在学习内核编程,记录一下最近的学习笔记。原理:将当前进程从eprocess结构的链表中删除无法被! process 0 0 看见#include "HideProcess.h"#ifdef WIN64#define ACTIVEPROCESSLINKS_EPROCESS 0x188#define IMAGEFILENAME_EPROCESS ...

2017-08-25 13:52:00 311

转载 32位程序下调用64位函数——进程32位模式与64位模式切换

之前学习的32位进程中调用64位进程函数的知识整理一下,也就是32位模式与64位模式之间的切换。相关博客:http://www.cnblogs.com/lanrenxinxin/p/4821152.html这个博客中提到了github上的开源库,我在另一份开源项目中也看到了个库,可以切换32位至64位。如果对这个功能具体实现比较感兴趣的朋友可以看看下面的内容。我阅读了源码...

2017-08-01 21:18:00 518

转载 vs下如何调试Dll

1.首先需要一个exe加载你的dll2.dll项目的属性设置3.将dll设为启动项4.在dll中设置断点F5就可以调试了转载于:https://www.cnblogs.com/HsinTsao/p/7258946.html...

2017-07-30 13:34:00 99

转载 CVE-2017-8464 LNK文件(快捷方式)远程代码执行漏洞复现

北京时间2017年6月13日凌晨,微软官方发布6月安全补丁程序,“震网三代” LNK文件远程代码执行漏洞(CVE-2017-8464)和Windows搜索远程命令执行漏洞(CVE-2017-8543).CVE-2017-8543,当Windows搜索处理内存中的对象时,存在远程执行代码漏洞。成功利用此漏洞的攻击者可以控制受影响的系统。CVE-2017-8464,当Windows系...

2017-07-25 19:01:00 298

转载 永恒之蓝EternalBlue复现

0x01漏洞原理:http://blogs.360.cn/blog/nsa-eternalblue-smb/目前已知受影响的 Windows 版本包括但不限于:Windows NT,Windows 2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8,Windows 2008、Windows 2008 R2...

2017-07-24 08:17:00 167

转载 利用XShell和WinSCP连接本机和Linux虚拟机——Kali部署

1.XShell支持在本机直接连接Linux终端,加快速度,支持命令的复制粘贴2.WinSCP 支持本机与Linux的文件复制粘贴关键:使用SSH协议,所以要在Linux开启ssh服务,下面以Kali为例Kali方面:0x01 修改此文件将这行注释放开将这个改为yes保存0x02 开启服务本机方面:0x01XS...

2017-07-20 21:38:00 221

转载 Metasploitable渗透测试实战——生成木马

攻击机:kali目标机:windows1.生成木马 wincap发送至本机2.进入msf (命令:msfconsole)启动监听3.当目标点击test.exe(可伪装)时,触发后门,实现入侵转载于:https://www.cnblogs.com/HsinTsao/p/7190869.html...

2017-07-16 16:30:00 371

转载 一次对真实网站的SQL注入———SQLmap使用

网上有许多手工注入SQL的例子和语句,非常值得我们学习,手工注入能让我们更加理解网站和数据库的关系,也能明白为什么利用注入语句能发现网站漏洞。因为我是新手,注入语句还不太熟悉,我这次是手注发现的注点,然后利用SQLmap实现注入,获得管理员账户密码。网站:http://www.xxxxxx.com/info.php当我们利用?id=1或者?id=2时,网站介绍部分发生了变...

2017-07-16 16:03:00 294

转载 网络编程——基于UDP的网络化CPU性能检测

网络化计算机性能检测软件的开发,可对指定目标主机的CPU利用率进行远程检测,并自动对远程主机执行性能指标进行周期性检测,最终实现图形化显示检测结果。网络通信模块:(客户端类似,因为udp是对等通信)启动服务器:创建套接字并注册网络事件void CRemoteCPUImitateDlg::OnBnClickedOk(){ // TODO: 在此添加控...

2017-06-19 20:16:00 108

转载 U盘小偷——C++实现U盘插入检测和文件扫描拷贝

前几天女朋友说老师上课的PPT不共享,没法复习,想着写个U盘小偷拷贝PPT来着,后来觉得这样的行为这是不对的,万一不小心复制了老师的专利啥的,或者一些不可描述的东西,就闹大了。虽然没有采取实际行动,但是相关的功能还是实现,技术共享。重点就是U盘插入监控,获得U盘盘符,开机自启动,文件扫描和复制。1.对u盘插入行为监控,并获得盘符  当U盘插入的时候会产生一个消息WM...

2017-04-16 15:00:00 1007

转载 IFEO 映像文件劫持

“映像劫持”,也被称为“IFEO”(Image File Execution Options)映像劫持的根本就是被恶意篡改了注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options项。比如如在这里新建一个子项notepad.exe,再在这子项里新建...

2017-04-04 20:50:00 322

转载 内存申请函数的区别

malloc与new 的区别1、函数与运算符2、new能重载 使用自定义堆 能指示内存位置3、malloc 不会自动走构造函数,new 自动走构造函数。4.C++程序经常要调用C函数,而C程序只能用malloc/free管理动态内存。网上看到的一个总结说几点自己的认识:1.自由存储区这个概念没有听过,但网上也有人读书读到了,大家意见不一,更大众的观点是new和ma...

2017-03-11 16:26:00 105

转载 X86/X64 函数调用约定

C语言有__cdecl、__stdcall、__fastcall、naked、__pascal。C++语言有__cdecl、__stdcall、__fastcall、naked、__pascal、__thiscall,比C语言多出一种__thiscall调用方式。下面详细介绍如上六种调用方式:1、__cdecl__cdecl调用约定又称为C调用约定,是...

2017-03-11 15:52:00 276

转载 关于Windows创建进程的过程

之前有听到别人的面试题是问系统创建进程的具体过程是什么,首先想到的是CreateProcess,但是对于具体过程却不是很清楚,今天整理一下。从操作系统的角度来说创建进程步骤: 1.申请进程块 2.为进程分配内存资源 3.初始化进程块 4.将进程块链入就绪队列课本上的知识。。。从CreateProce...

2017-03-11 10:56:00 671

转载 Python爬虫实战:爬糗事百科的段子

一个偶然的机会接触了Python,感觉很好用,但是一直在看c++啥的,也没系统学习。用过之后也荒废了许久。之前想建个公众号自动爬糗事百科的段子,但是没能建起来,真是尴尬,代码上传的服务器上之后,不能正确回复公众号的消息。听说微信是有个什么调试功能,但我也不会用,后来就开始考试,给忘了这件事。今天看见了之前学习的糗百的爬虫代码,也算是第一次写,写个帖子纪念一下。从中还是学习了有关正...

2017-03-10 21:48:00 90

转载 MyDebugeer 一个简单调试器的实现

学习的是网上的帖子,所以就不贴源码了。整个程序以调试循环为主体,实现了启动调试,继续执行,内存查看,读取寄存器值,显示源代码,断点的设置、查看、删除,三种单步执行:StepIn、StepOver、StepOut,显示变量列表、显示指定类型内存内容,显示函数调用栈等功能。原贴写的很好,从中学到了很多,特别是对<DbgHelp.h>有了接触和了解,学习了Windows提供...

2017-03-10 21:28:00 137

转载 进程默认堆和额外创建的堆

在《Windows核心编程》第五版的第十八章 《堆》 中提到了进程默认堆和额外创建的堆。这在编程中是十分重要的知识,今天整理一下。1,堆非常适合分配大量的小型数据。使用堆可以让程序员专心解决手头的问题,而不必理会分配粒度和页面边界之类的事情。因此堆是管理链表和数的最佳方式。但是堆进行内存分配和释放时的速度比其他方式都慢,而且无法对物理存储器的调拨和撤销调拨进行控制。为了能适应各种...

2017-03-10 21:00:00 126

转载 Dll注入:X86/X64 远程线程CreateRemoteThread 注入

远线程注入原理是利用Windows 系统中CreateRemoteThread()这个API,其中第4个参数是准备运行的线程,我们可以将LoadLibrary()填入其中,这样就可以执行远程进程中的LoadLibrary()函数,进而将我们自己准备的DLL加载到远程进程空间中执行。函数原型:HANDLEWINAPICreateRemoteThread( ...

2017-03-09 21:43:00 299

转载 汇编:jmp系列跳转指令总结

助记方法:J:跳转C: 进位位置位N: 否S: 符号位置位o: 溢出位置位Z: 零标志位置位E: 等于P:奇偶位置位A: AboveB: BelowL: Less (Little的比较级)G: Greater (Great的比较级)(SF^OF)=1 --> SF=0, OF=1 --> a < b SF=1, OF=0 --...

2017-03-07 00:10:00 2213

转载 Dll注入:Windows消息钩子注入

SetWindowsHook()是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。HHOOK WINAPI SetWindowsHookEx(__in int idHook, \\钩子类型...

2017-02-26 23:07:00 357

转载 GetIPAddress——获得本地IP地址信息

1.gethostname()需要初始化套接字库 加载#pragma comment(lib,"ws2_32.lib"),和WSAStartup(MAKEWORD(2,2),&wsaData)函数2.IP_ADAPTER_INFO结构包含了网络适配器的信息typedef struct _IP_ADAPTER_INFO {struct _IP_ADAPTER_...

2017-02-26 12:49:00 591

转载 NetTime——c++实现计算机时间与网络时间的更新

《Windows网络与通信程序设计》第二章的一个小例子,网络编程入门。#include "stdafx.h"#include <WinSock2.h>#include <windows.h>#include <stdio.h>#include <iostream>#pragma comment(lib,"ws...

2017-02-26 12:45:00 166

转载 IDA逆向:结构体的逆向

源代码:int _tmain(int argc, _TCHAR* argv[]){ struct v1 { int a; short b; char c; int d; double e; }; v1* heap_struct = (v1*)malloc(s...

2017-02-25 00:39:00 1097

转载 IDA逆向:数组的逆向

阅读《IDA Pro权威指南》第八章,整理的一些笔记,作为逆向的基础,可能有很多认识不足。//全局分配数组**********************************************************************源程序:int global_arrary[3];int main(){int idx = 2;global...

2017-02-24 17:09:00 451

转载 Dll注入:x86/X64 SetThreadContext 注入

在《Windows核心编程》第七章说到了线程优先级等知识,其中谈到了ThreadContext线程上下背景文。其中介绍了GetThreadContext函数来查看线程内核对象的内部,并获取当前CPU寄存器状态的集合。BOOL GetThreadContext (HANDLE hThread,PCONTEXT pContext);若要调用该函数,只需指...

2017-02-24 16:17:00 483

转载 Dll注入:Ring3 层 APC注入

APC,即Asynchronous procedure call,异步程序调用APC注入的原理是:在一个进程中,当一个执行到SleepEx()或者WaitForSingleObjectEx()时,系统就会产生一个软中断,当线程再次被唤醒时,此线程会首先执行APC队列中的被注册的函数,利用QueueUserAPC()这个API,并以此去执行我们的DLL加载代码,进而完成DLL注入的目的,...

2017-02-19 18:26:00 193

转载 32位 64位 获得进程peb的方法

基于上一篇文章,大概了解了peb的获取方法,但是那个方法只能获得当前进程的PEB,不能获得其他的进程的PEB。根据那个思想,获得其他进程PEB则需要注入,得到进程信息,然后进程间通信,将信息返回来,经过考虑,这个方法太复杂。下面介绍的方法是 用了一个未公开的函数NtQueryInformationProcess,获得进程信息,然后去读对方进程ReadProcessMemory。结...

2017-02-14 22:15:00 483

转载 进程peb结构、获得peb的方法

PEB :进程环境块TEB.ProcessEnvironmentBlock成员就是PEB的结构体地址TEB结构体位于FS段选择符所指的段内存的起始地址处,且ProcessEnvironmentBlock成员位于距TEB结构体Offset 30的位置即有两种方法获得PEB的地址peb的结构申明:typedef struct _UNICODE_STR{ U...

2017-02-13 22:58:00 438

转载 异常、中断、陷阱

int 3 指令是常见的 断点中断,研究这个的时候发现个系统的一些机制有关。就研究了一下中断的分类,还有异常和陷阱。下面是我百度之后的一些总结:中断的分类:外中断和内中断 根据系统对中断处理的需要,操作系统一般对中断进行分类并对不同的中断赋予不同的处理优先级,以便在不同的中断同时发生时,按轻重缓急进行处理。 根据中断源产生的条件,可把中断分为外中断和内中断。外中断是指来自处理器和...

2017-02-13 22:10:00 618

空空如也

空空如也

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

TA关注的人

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