博客园 - CrisCzy
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=23225
2018-03-21T12:50:52Z
CrisCzy
https://www.cnblogs.com/Crisczy/
feed.cnblogs.com
https://www.cnblogs.com/Crisczy/p/8619554.html
常见 Windows 函数列表 - CrisCzy
《恶意代码分析实战》 附录 A accept用来监听入站网络连接,这个函数预示着程序会在一个套接字上监听入站网络连接。AdjustTokenPrivileges用来启用或禁用特定的访问权限。执行进程注入的恶意代码经常会调用这个函数,来取得额外的权限。AttachThreadInput将一个线程处理的
2018-03-21T12:51:00Z
2018-03-21T12:51:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】《恶意代码分析实战》 附录 A accept用来监听入站网络连接,这个函数预示着程序会在一个套接字上监听入站网络连接。AdjustTokenPrivileges用来启用或禁用特定的访问权限。执行进程注入的恶意代码经常会调用这个函数,来取得额外的权限。AttachThreadInput将一个线程处理的 <a href="https://www.cnblogs.com/Crisczy/p/8619554.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/8387944.html
驱动下通过进程PID获得进程名 (动态获取ImageFileName在EPROCESS结构体中的相对偏移) - CrisCzy
思路 进程EPROCESS结构体中含有进程名ImageFileName(需求处ImageFileName在EPROCESS结构体中的相对偏移)——》获得进程EPROCESS——》通过进程句柄获得EPROCESS——》通过进程PID打开进程获得进程句柄 计算ImageFileName在EPROCESS
2018-01-30T16:06:00Z
2018-01-30T16:06:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】思路 进程EPROCESS结构体中含有进程名ImageFileName(需求处ImageFileName在EPROCESS结构体中的相对偏移)——》获得进程EPROCESS——》通过进程句柄获得EPROCESS——》通过进程PID打开进程获得进程句柄 计算ImageFileName在EPROCESS <a href="https://www.cnblogs.com/Crisczy/p/8387944.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/8245605.html
脱壳学习之加壳的概念 - CrisCzy
加壳加壳的主要目的是压缩大小和阻碍分析。加壳以后的可执行文件会将原来的可执行文件作为数据存储。通过加密和一些反逆向技术(对抗反汇编?,反调试,反虚拟化等等)来让程序难以分析。 脱壳存根被加壳程序中的脱壳存根由操作系统加载,然后它负责加载原始程序。固可执行程序的入口点指向脱壳存根。对程序进行静态分析需
2018-01-08T15:53:00Z
2018-01-08T15:53:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】加壳加壳的主要目的是压缩大小和阻碍分析。加壳以后的可执行文件会将原来的可执行文件作为数据存储。通过加密和一些反逆向技术(对抗反汇编?,反调试,反虚拟化等等)来让程序难以分析。 脱壳存根被加壳程序中的脱壳存根由操作系统加载,然后它负责加载原始程序。固可执行程序的入口点指向脱壳存根。对程序进行静态分析需 <a href="https://www.cnblogs.com/Crisczy/p/8245605.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/8231775.html
32位程序调用64位函数————开源代码rewolf-wow64ext学习笔记 - CrisCzy
rewolf-wow64ext的目的就是让运行在Wow64环境中的x86应用程序可以直接调用x64下ntdll.dll中的Native API。 学习中可以得到几个结论 在X64环境下的进程,32位程序,映射了两个地址空间,一个32位,一个64位。而且这两种工作模式是可以切换的的。 WOW64进程中
2018-01-07T13:00:00Z
2018-01-07T13:00:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】rewolf-wow64ext的目的就是让运行在Wow64环境中的x86应用程序可以直接调用x64下ntdll.dll中的Native API。 学习中可以得到几个结论 在X64环境下的进程,32位程序,映射了两个地址空间,一个32位,一个64位。而且这两种工作模式是可以切换的的。 WOW64进程中 <a href="https://www.cnblogs.com/Crisczy/p/8231775.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/8075124.html
自己实现loadlibrary------ReflectiveDLLInjection学习笔记 - CrisCzy
学习开源代码ReflectiveDLLInjection时做的一些思路总结。
2017-12-20T09:59:00Z
2017-12-20T09:59:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】学习开源代码ReflectiveDLLInjection时做的一些思路总结。 <a href="https://www.cnblogs.com/Crisczy/p/8075124.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/7801140.html
ret ,retf ,iret ,int 指令 - CrisCzy
ret指令, 执行过程 ret指令用栈中的数据,修改IP的值,从而实现近转移。 CPU执行ret指令时,进行下面两步操作: (IP)=((SS)*16+(SP)) (SP)=(SP)+2; 另一种用法 ret n (n为整数) 等效于 (IP)=((SS)*16+(SP)) (SP)=(SP)+2;
2017-11-07T13:18:00Z
2017-11-07T13:18:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】ret指令, 执行过程 ret指令用栈中的数据,修改IP的值,从而实现近转移。 CPU执行ret指令时,进行下面两步操作: (IP)=((SS)*16+(SP)) (SP)=(SP)+2; 另一种用法 ret n (n为整数) 等效于 (IP)=((SS)*16+(SP)) (SP)=(SP)+2; <a href="https://www.cnblogs.com/Crisczy/p/7801140.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/7728937.html
异常过滤程序 EXCEPTION_EXECUTE_HANDLER, EXCEPTION_CONTINUE_EXECUTION,EXCEPTION_CONTINUE_SEARCH - CrisCzy
EXCEPTION_EXECUTE_HANDLER (1) 异常已经被识别,也即当前的这个异常错误,系统已经找到了并能够确认,这个__except模块就是正确的异常处理模块。控制流将进入到__except模块中,当except代码块运行结束后,系统会认为异常已经处理,于是允许应用程序继续执行。 全局
2017-10-25T07:06:00Z
2017-10-25T07:06:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】EXCEPTION_EXECUTE_HANDLER (1) 异常已经被识别,也即当前的这个异常错误,系统已经找到了并能够确认,这个__except模块就是正确的异常处理模块。控制流将进入到__except模块中,当except代码块运行结束后,系统会认为异常已经处理,于是允许应用程序继续执行。 全局 <a href="https://www.cnblogs.com/Crisczy/p/7728937.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/7609127.html
IsDebuggerPresent() - CrisCzy
IsDebuggerPresent() 该函数读取当前进程的PEB里BeingDebugged的值用于判断自己是否处于调试状态 windows2000上是这样定义这个函数的 在x86下用windbg查看PEB结构 可知在PEB(进程环境块)偏移0x002处获得BeingDebugged PEB(进程
2017-09-28T15:22:00Z
2017-09-28T15:22:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】IsDebuggerPresent() 该函数读取当前进程的PEB里BeingDebugged的值用于判断自己是否处于调试状态 windows2000上是这样定义这个函数的 在x86下用windbg查看PEB结构 可知在PEB(进程环境块)偏移0x002处获得BeingDebugged PEB(进程 <a href="https://www.cnblogs.com/Crisczy/p/7609127.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/7601440.html
常用宏 - CrisCzy
数组个数#ifndef ARRAYSIZE #define ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0]))#endif 获得结构体首地址#define CONTAINING_RECORD(address, type, field) ((type *)( \ (PCHA
2017-09-27T05:59:00Z
2017-09-27T05:59:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】数组个数#ifndef ARRAYSIZE #define ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0]))#endif 获得结构体首地址#define CONTAINING_RECORD(address, type, field) ((type *)( \ (PCHA <a href="https://www.cnblogs.com/Crisczy/p/7601440.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/7575521.html
反调试 - CrisCzy
反调试 <!--[if !supportLists]-->1. <!--[endif]-->IsDebuggerPresent() 该函数读取当前进程的PEB里BeingDebugged的值用于判断自己是否处于调试状态 BOOL APIENTRY IsDebuggerPresent(VOID) {
2017-09-22T08:23:00Z
2017-09-22T08:23:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】反调试 <!--[if !supportLists]-->1. <!--[endif]-->IsDebuggerPresent() 该函数读取当前进程的PEB里BeingDebugged的值用于判断自己是否处于调试状态 BOOL APIENTRY IsDebuggerPresent(VOID) { <a href="https://www.cnblogs.com/Crisczy/p/7575521.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/7544284.html
error C2220: 警告被视为错误 - 没有生成“object”文件 (转) - CrisCzy
转自 :http://blog.csdn.net/bagboy_taobao_com/article/details/5613625 这种错误的原因是:原因是该文件的代码页为英文,而我们系统中的代码页为中文。 解决方案: 1. 启动Microsoft Visual Studio 2005,文件->打
2017-09-18T09:43:00Z
2017-09-18T09:43:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】转自 :http://blog.csdn.net/bagboy_taobao_com/article/details/5613625 这种错误的原因是:原因是该文件的代码页为英文,而我们系统中的代码页为中文。 解决方案: 1. 启动Microsoft Visual Studio 2005,文件->打 <a href="https://www.cnblogs.com/Crisczy/p/7544284.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/7488940.html
al-khaser学习笔记(一)Anti Debug - CrisCzy
al-khaser 最近在研究开源项目al-khaser在野恶意软件使用的常用技术 github https://github.com/LordNoteworthy/al-khaser Anti Debug 这一部分主要是通过各种函数去确定当前进程是否处于被调试的状态。 VOID exec_chec
2017-09-07T03:45:00Z
2017-09-07T03:45:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】al-khaser 最近在研究开源项目al-khaser在野恶意软件使用的常用技术 github https://github.com/LordNoteworthy/al-khaser Anti Debug 这一部分主要是通过各种函数去确定当前进程是否处于被调试的状态。 VOID exec_chec <a href="https://www.cnblogs.com/Crisczy/p/7488940.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/7424893.html
8086 汇编指令手册查询(转) - CrisCzy
8086 汇编指令手册查询,编语言是一种面向机器的语言。它能够利用计算机所在硬件性并能直接控制硬件,在微型计算机系统的开发应用和过程控制和特别受到重视。 一、数据传输指令———————————————————————————————————————它们在存贮器和寄存器、寄存器和输入输出端口之间传送数
2017-08-24T11:29:00Z
2017-08-24T11:29:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】8086 汇编指令手册查询,编语言是一种面向机器的语言。它能够利用计算机所在硬件性并能直接控制硬件,在微型计算机系统的开发应用和过程控制和特别受到重视。 一、数据传输指令———————————————————————————————————————它们在存贮器和寄存器、寄存器和输入输出端口之间传送数 <a href="https://www.cnblogs.com/Crisczy/p/7424893.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/7420650.html
学习法模版 - CrisCzy
第一步:了解全局 第二步:确定范围 可分解为的子主题 第三步:确定目标 标准: 标准 寻找资源 图书: 博客文章 在线视频 专家 播客 源代码 示例项目 在线文档 第五步:创建学习计划 第六步:筛选资源 制作者:陈泽宇
2017-08-23T14:45:00Z
2017-08-23T14:45:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】第一步:了解全局 第二步:确定范围 可分解为的子主题 第三步:确定目标 标准: 标准 寻找资源 图书: 博客文章 在线视频 专家 播客 源代码 示例项目 在线文档 第五步:创建学习计划 第六步:筛选资源 制作者:陈泽宇 <a href="https://www.cnblogs.com/Crisczy/p/7420650.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/7419404.html
_UNICODE_STRING - CrisCzy
typedef struct _UNICODE_STRING { USHORT Length; USHORT MaximumLength; PWCHAR Buffer;}UNICODE_STRING,*PUNICODE_STRING; kd> dt v1dtx is unsupported for
2017-08-23T09:47:00Z
2017-08-23T09:47:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】typedef struct _UNICODE_STRING { USHORT Length; USHORT MaximumLength; PWCHAR Buffer;}UNICODE_STRING,*PUNICODE_STRING; kd> dt v1dtx is unsupported for <a href="https://www.cnblogs.com/Crisczy/p/7419404.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/7401299.html
消息队列 - CrisCzy
#pragma once #include #include using namespace std; #define TASK_NO_EXIT 0 #define TASK_EXIT 1 #define DEFAULT_MSGQUEUE_LENGTH 10 #define MYCreateSemaphore(x,y) CreateSemaphore...
2017-08-20T12:38:00Z
2017-08-20T12:38:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】#pragma once #include #include using namespace std; #define TASK_NO_EXIT 0 #define TASK_EXIT 1 #define DEFAULT_MSGQUEUE_LENGTH 10 #define MYCreateSemaphore(x,y) CreateSemaphore... <a href="https://www.cnblogs.com/Crisczy/p/7401299.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/7398252.html
设计自己的线程局部存储 - CrisCzy
参考资料 王艳平 《Windows程序设计》
2017-08-19T14:56:00Z
2017-08-19T14:56:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】参考资料 王艳平 《Windows程序设计》 <a href="https://www.cnblogs.com/Crisczy/p/7398252.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/7376627.html
QueryUserAPC Ring3下 APC注入 - CrisCzy
DLL.dll可以自己建,实测在win7 X86 X64, win10 X64下可用
2017-08-16T15:31:00Z
2017-08-16T15:31:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】DLL.dll可以自己建,实测在win7 X86 X64, win10 X64下可用 <a href="https://www.cnblogs.com/Crisczy/p/7376627.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/Crisczy/p/7271478.html
内存分配(malloc,new,VirtualAlloc,HeapAlloc,GlobalAlloc,LocalAlloc)区别与注意 - CrisCzy
malloc()头文件:#include <malloc.h> 或 #include <alloc.h> (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再
2017-08-01T14:55:00Z
2017-08-01T14:55:00Z
CrisCzy
https://www.cnblogs.com/Crisczy/
【摘要】malloc()头文件:#include <malloc.h> 或 #include <alloc.h> (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再 <a href="https://www.cnblogs.com/Crisczy/p/7271478.html" target="_blank">阅读全文</a>