自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liujiayu2的专栏

玩点技术

  • 博客(54)
  • 资源 (33)
  • 收藏
  • 关注

转载 IDT系列:(二)中断处理过程,使用bochs调试IDT中的中断服务程序

一、中断处理的过程 根据Intel 64 and IA-32 Architectures Software Developer’s Manual 的介绍,在中断或异常产生是,CPU会将当前执行的指令(或下一条指令)在内存中的地址,也就是EIP的值,放入栈中,同时还会放入CS段寄存器和eflags标志寄存器的值等。根据当前的优先级不同(ring0或ring3,也就是执行与用户态还是内核态

2017-06-30 10:41:21 1931 1

转载 IDT系列:(一)初探IDT,Interrupt Descriptor Table,中断描述符表

IDT,Interrupt Descriptor Table,中断描述符表是CPU用来处理中断和程序异常的。 一、有关IDT的基本知识1、中断时一种机制,用来处理硬件需要向CPU输入信息的情况。 比如鼠标,键盘等。2、中断和异常的产生是随机的,在CPU正常运行过程中随时可能产生。CPU的中断处理机制3、中断可以由硬件产生(称为外部中断),也可以由软件

2017-06-30 10:40:27 503

转载 简单地隐藏驱动分析

当系统加载一个驱动时,会为这个驱动建立一个_KLDR_DATA_TABLE_ENTRY结构体,DRIVER_OBJECT结构体的DriverSection成员指向这个结构体。以下是WRK中_KLDR_DATA_TABLE_ENTRY结构体的定义:typedef struct _KLDR_DATA_TABLE_ENTRY {    LIST_ENTRY InLoadOrderLinks;

2017-06-30 10:30:56 1365

转载 用SSDT方法恢复冒险岛的部分函数

看了那么多文章、视频,现在自己跟着做下恢复的驱动程序吧。今天拿冒险岛的HS驱动做为例子吧。冒险岛游戏对Xuetr进行检测了,打开XueTr不久就会游戏发现非法模块,最终游戏关闭。就拿上了一款叫Kernel Detective的ARK工具进行检测冒险岛的驱动吧。  因为Kernel Detective这款工具不能检测到有任何SSDT函数的挂钩,而使用一般的打开进程工具却不能打开它的进程,可知

2017-06-30 10:28:55 1303 1

转载 来自看雪的手把手调试DebugPort清零

现在多数程序为了防止调试。基本上都用到了驱动HOOK 内核API。至于绕过那些HOOK,基本上大家应该已经是没有什么问题了。估计像我这样的菜鸟也不算多了。研究DebugPort 清0,倒是难倒了我。。。所谓DebugPort 清0,就是向 EPROCESS->DebugPort  不停写入 NULL(0)值。。让调试器无法收到调试信息。。。现在能找到的资料也不算多。。。

2017-06-30 10:26:42 3383 1

转载 网上一个仿TP挂钩内核的源码

最近研究TESSAFE.SYS的驱动,GOOGLE搜索到微点也是一样的手法HOOK call ObOpenObjectByPointe,把不完整的代码给编写实现了下。未实现检测,应该是有修改我的代码或恢复HOOK call即重启或蓝屏,我为了方便没实现,下载我改动后驱动文件,用来保护记事本不被OPENprocess。。然后unhook call ObOpenObjectByPointe 的

2017-06-30 10:25:44 698

转载 简单Hook SYSENTER

其实所有的HOOK,都基本是一样道理。就是勾住你的目标函数,实现你自己的功能。只要你掌握了,HOOK的原理。剩下的就是寻找目标函数了。     今天回忆一下 HOOK SYSENTER,目的当然还是继续充实自己的BLOG,继续灌水。一:认识SYSENTER   SYSENTER是一个东西?大家都知道调用门,陷阱门,任务门(这里没有照片!_!).。通过他们我们可以从R3到达R

2017-06-30 10:22:23 1599

转载 简单的IDT HOOK介绍

IDT即中断描述表。当然系统发生中断时(有可能是CPU中断,也有可能是I/O中断等)。系统会通过中断向量查找IDT保存的ISR(中断服务程序)来调用相关的处理例程。IDT Hook就是替换这个ISR。也许上面的过程你不是很明白。我们具体的了解下过程。IDT是一个有256个入口的线性表。每个入口大小为8字节。每个入口值我们称为中断向量(0..255)。比如 int 30。30即中断向

2017-06-30 10:21:44 1690

转载 应用层勾子IAT HOOK(源码)

//www.yjxsoft.com 2010.6.26//文件名 IAT.H#include VOID __stdcall mySleep(DWORD m){ MessageBoxA(0,"Hook 成功","IAT hook",MB_OK);}PVOID EnumAPI() { PBYTE ImageBase; PIMAGE_THUNK_DATA r; PI

2017-06-28 20:09:25 673

转载 简单实现了下SSDT SHADOW HOOK

介绍:        SSDT SHADOW HOOK可用于安全软件窗口保护、安全输入、截屏保护等。例如:挂钩NtUserFindWindowEx、NtUserGetForegroundWindow、NtUserBuildHwndList、NtUserQueryWindow、NtUserWindowFromPoint、NtUserSetParent、NtUserPostMessage、NtUs

2017-06-28 09:21:09 895

转载 内核层 inlinehook 隐藏进程

上次是SSDT  HOOK 方式 隐藏 进程 ,如链接:http://blog.csdn.net/hjxyshell/article/details/16993119这次是InlineHook 方式隐藏进程,这里inline hook的原理就不做详细介绍了,网上相关资源较多,撸主主要参考看雪的某大牛的“详谈内核三步走Inline Hook实现”(http://bbs.pediy.com/s

2017-06-27 15:45:43 614

转载 针对某游戏保护DebugPort清零的一次逆向

作 者: 悲歌首先还是先了解一下DebugPort吧,百度之后得到了如下结果 -------------------------------此处转贴------------------------------------每个进程都有一个数据结构,EPROCESS,这个结构是在内核里面的,系统用来标识和管理每一个win进程的基本数据结构. 这个结构中包含了一个重要的字段,Debu

2017-06-20 15:13:57 1300

转载 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序

问题描述:用VC2013编译了一个程序,在Windows 8、Windows 7(64位、32位)下都能正常运行。但在Win XP,Win2003下运行时,却报错不能运行,具体错误信息为“指定的可执行文件不是有效的 Win32 应用程序”。用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序问题分析:

2017-06-16 15:47:07 10701

转载 逆向工程核心原理学习笔记(十四):栈帧1

栈帧的话,直接截了一些图,大家看一下就好了,理解起来很简单,就是简单的参数转存。看完之后,我们需要用一个小程序来进一步学习我们的栈帧了。下载地址:http://t.cn/RaUSglI代码写法:取消优化,编译发布版本,代码生成格式为MT。载入OD查看:

2017-06-16 15:16:18 480

转载 逆向工程核心原理学习笔记(十三):分析abex' crackme #1 的延伸:将参数压入栈

还是上一次的abex' crackme #1,我们用OD附加看一下。我们发现在调用这个MessageBox函数的时候,用了4个PUSH指令,我们在后面的注释中可以清楚的看到压入参数的内容。如果我们将它还原成C语言的形式,是这样的:我们可以清楚的看到汇编代码中压入参数的顺序和我们写代码时候的顺序恰恰是相反

2017-06-16 15:15:40 560

转载 逆向工程核心原理学习笔记(十二):分析abex' crackme #1

程序下载地址:http://t.cn/RX1wpX7我们首先运行一下,看看提示什么:我们初步推测,这个程序应该是判断磁盘是否运行在一个CD-ROM上。为了验证我们的推测,我们拖进OD看一下。我们现在可以划重点了:

2017-06-16 15:15:09 1138

转载 逆向工程核心原理学习笔记(十一):栈

栈(stack)用途广泛,通常用于存储局部变量、传递函数参数,保存函数返回地址等。调试程序需要不断查看栈内存,这是很有必要的。栈是一种数据结构,按照后进先出的原则存储数据。栈的特征:一个进程中,栈顶指针(ESP)初始状态指向栈顶端。执行PUSH命令将数据压入栈的时候,栈顶指针

2017-06-16 15:14:02 745

转载 逆向工程核心原理学习笔记(十):IA-32寄存器基本讲解

什么是CPU寄存器:为什么要学习寄存器:IA-32寄存器:基本程序运行寄存器:下面介绍一下各种寄存器:

2017-06-16 15:13:16 401

转载 逆向工程核心原理学习笔记(九):小端序标记法2

程序地址:http://t.cn/RXnT2pD我们用OD查看小端序。代码如下:我们编译,然后拖进OD查看,直接跳到0x401000入口点。我们看到几个位置:由此处我们可以推测后面括号中存放的地址就存放着我们的数据。

2017-06-16 15:12:39 514 2

转载 逆向工程核心原理学习笔记(八):小端序标记法1

顶0踩

2017-06-16 15:11:35 605

转载 逆向工程核心原理学习笔记(七):总结

首先就是上一节,我们尝试把修改后的代码保存后运行,发现不可以,。这是由于我们修改的那部分缓冲区造成的。可执行文件加大再到内存中兵役进程的形式运行并非原封不动的载入内存,而是遵循一定的规则进行,这一个过程中,进程的内存是的确存在的,但是文件偏移(offset)是不存在的,所以程序无法正常运行。以后们们学习PE文件格式的时候就知道了。

2017-06-16 15:10:29 445

转载 逆向工程核心原理学习笔记(六):实战开辟新内存区域写入缓冲区跳转修改字符串

首先我们跳转到程序的入口点,然后观察00401007      68 00ED4000   push    0x40ED00                         ;  Hello World!我们在数据区仍然跳转到0x40ED00     我们往下拉,往下拉,发现很多空的内存区域:

2017-06-16 15:09:59 387

转载 逆向工程核心原理学习笔记(五):实战“打补丁方法”修改字符串

打补丁方法可以修复程序的BUG,给程序添加新功能。打补丁的对象可以是文件,内存,数据,代码,等等。。。我们今天就用打补丁的方法来把helloworld程序中的字符串改掉!首先呢,OD载入程序,然后,我们跳到程序入口点,也就是main函数,之前我们讲过,可能大家也记得,0x401000.

2017-06-16 15:09:01 786

转载 逆向工程核心原理学习笔记(四):检索API方法2-设置断点

同样,还是用我们的那个helloworld小程序,然后,如图所示,查找所有模块的名称然后,结果如图所示在这个界面,我们敲键盘字母,messagebox,一个一个敲出来,就会自己跳到相应的地址,如图所示:因为messagebox这个函数是从user32.dl

2017-06-16 15:08:08 404

转载 逆向工程核心原理学习笔记(三):检索API方法

打开OD,载入程序鼠标右键,如图。然后就可以看到程序调用的所有API函数,便于分析。找到messagebox函数,双击进去,就是函数所在反汇编地址了

2017-06-16 15:07:33 451 1

转载 逆向工程核心原理学习笔记(二):字符串检索法查找main函数

首先就是OD载入我们的程序然后鼠标右键,如图,找到智能搜索.然后点击,找到了HelloWord字符串双击跟进去就是main函数的地址了这样做的前提是因为我们知道线索(程序在运行时就弹出信息框),所以才可以这样做。同时我们看到了此时这个地址PUSH的参数push    0x40ED00

2017-06-16 15:06:59 469

转载 逆向工程核心原理学习笔记(一):寻找程序的主函数(Main)

转自:http://blog.csdn.net/qq_36810340/article/details/70169640首先编译release版本的helloword程序,代码如下:编译完成,拖进OD,结果如图。程序断在了004011A1 这个地址,这个就是EntryPoint.这个地址调用了004022DF这个地址的

2017-06-16 15:06:21 835

转载 隐藏驱动模块(源码)

XP亲测有效,使用我们自己编写的枚举驱动模块会看不到。枚举驱动模块请看文章 http://blog.csdn.net/liujiayu2/article/details/72822478但是使用ARK工具依然能看到我们隐藏的驱动某块,比如kernel detective 和PChunter 但是隐藏的驱动模块为红色,意为ARK工具检测到了该模块进行了隐藏#include

2017-06-16 13:33:16 2934

转载 内核隐藏进程(源码)

自己测试的时候编译失败了,提示是这个PsGetProcessImageFileName API找不到链接库,目测可能是我的DDK版本不够新,先记录下,改天再升级ddk做测试。#include   #include   #include     NTKERNELAPI UCHAR *PsGetProcessImageFileName(PEPROCESS Pro

2017-06-16 12:56:55 2694 2

转载 EXE和SYS通信MiniFilter基于事件方式

[cpp] view plain copy#ifndef _HEADER_HEAD_FILE  #define _HEADER_HEAD_FILE  #pragma once  #include   #include   #include     #include       #ifndef MAX_PATH  #define M

2017-06-14 17:34:32 510

转载 EXE和SYS通信IOCTL方式

EXE部分[cpp] view plain copy#ifndef  IOCTLS_H  #define  IOCTLS_H      #ifndef CTL_CODE  #pragma  message("CTL_CODE undefined. Include winioctl.h or ntddk.h")  #endif 

2017-06-14 17:19:52 554

转载 EXE和SYS通信(ReadFile WriteFile) 其他方式

EXE部分[cpp] view plain copy#include   #include     int main (void)  {      char linkname[]="\\\\.\\HelloDDK";      HANDLE hDevice = CreateFileA(linkname,GENERIC_READ

2017-06-14 17:15:10 290

转载 EXE和SYS通信(ReadFile WriteFile DO_DIRECT_IO) 直接方式

EXE部分[cpp] view plain copy#include   #include     int main (void)  {      char linkname[]="\\\\.\\HelloDDK";      HANDLE hDevice = CreateFileA(linkname,GENERIC_READ

2017-06-14 17:14:29 504

转载 EXE和SYS通信(ReadFile WriteFile DO_BUFFERED_IO) 缓冲区方式

EXE部分[cpp] view plain copy#include   #include     int main (void)  {      char linkname[]="\\\\.\\HelloDDK";      HANDLE hDevice = CreateFileA(linkname,GENERIC_READ

2017-06-14 17:13:51 405

转载 EXE与SYS通信(其他模式)

EXE部分head.h[cpp] view plain copy#ifndef   CTL_CODE  #pragma message("\n \n-----------EXE . Include winioctl.h ")  #include //CTL_CODE ntddk.h wdm.h  #else   #pragma

2017-06-14 17:11:45 487

转载 EXE与SYS通信(直接访问模式)

EXE部分head.h[cpp] view plain copy#ifndef   CTL_CODE  #pragma message("\n \n-----------EXE . Include winioctl.h ")  #include //CTL_CODE ntddk.h wdm.h  #else   #pragma

2017-06-14 17:10:59 532

转载 EXE与SYS通信(缓冲模式)

EXE部分head.h[cpp] view plain copy#include //CTL_CODE  #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,  0x800,  METHOD_BUFFERED,FILE_ANY_ACCESS)  #define sub_code CTL_CODE

2017-06-14 17:10:18 354

转载 逆向工程核心原理读书笔记-API钩取之IE浏览器连接控制

我们通过一个示例来练习钩取IE8的InternetConnect函数,用IE8连接指定网站时,使之连接到另一个网站。和以前钩取CreateProcess不同,这次我们钩取更低级的ZwResumeThread来实现全局API钩取。我们来分析一下源代码,看看是怎么实现的。InjDll.cpp源代码与DLL注入的代码基本结构类似。[cpp] view plai

2017-06-09 13:35:19 1041

转载 逆向工程核心原理读书笔记-API钩取之隐藏进程(二)

上一篇文章我们实现的隐藏进程如果重新打开任务管理器或者被隐藏的进程就没有隐藏的效果了。为了弥补这个问题,我们不仅需要钩取当前运行的所有进程,还要钩取将来运行的所有进程。由于所有的进程都是由父进程使用CreateProcess创建的,所以只要钩取父进程(通常是explorer.exe)的CreateProcess将dll注入所有子进程就可以实现了。要注意下面两个问题。1.CreateProces

2017-06-09 13:34:05 882

转载 逆向工程核心原理读书笔记-API钩取之隐藏进程(一)

我们通过一个示例来练习在ProcExp.exe和taskmgr.exe中隐藏进程。钩取前后的原理图如下所示。下面我们先测试一下代码。关于代码的使用很简单,就不再多说了。我们来分析一下源代码,看看是怎么实现的。HideProc.cpp[cpp] view plain copy#include "win

2017-06-09 13:32:43 1365 1

Teleport+Ultra+中文简体破解版

很不错 对网页开发的学习有帮助

2017-08-16

SSDTHook实现进程保护

SSDT 的全称是 System Services Descriptor Table,系统服务描述符表。 这个表就是一个把 Ring3 的 Win32 API 和 Ring0 的内核 API 联系起来。 SSDT 并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基地址、服务函数个数等。 通过修改此表的函数地址可以对常用 Windows 函数及 API 进行 Hook,从而实现对一些关心的系统动作进行过滤、监控的目的。 一些 HIPS、防毒软件、系统监控、注册表监控软件往往会采用此接口来实现自己的监控模块。

2017-06-09

SkinSharp开发库+百款皮肤+皮肤编辑器

SkinSharp又称Skin#,是Windows环境下一款强大的换肤组件。通用换肤库(SkinSharp)能在软件添加换肤功能,支持所有主流的编程语言,比如C++、Delphi、VB6、.net、易语言等等。

2017-05-24

USB 摄像头

USB 摄像头, 亲测可编译可运行。

2017-05-16

minhook-1.3.2

对windows API钩子感兴趣的人都知道有一个优秀的库被微软命名为'Detours'。它真的很有用,但是它的免费版本(Express)是不支持X64。它的收费版本(Professional)支持x64,但是对我来说太昂贵了。微软说它值一万美元。 因此我决定从零开始写我自己的库。但是我没有将Detours的功能完美的复制到我的库中,它仅有API钩子功能,因为这就是我想要的。

2017-05-09

python2.7.8 32

python2.7.8 32位安装包及相关模块安装包,还有32位的PyScripter。 资源包含的文件如下: python-2.7.8.msi matplotlib-1.4.0.win32-py2.7.exe MySQL-python-1.2.4b4.win32-py2.7.exe numpy-1.8.1-win32-superpack-python2.7.exe pyparsing-2.0.2.win32-py2.7.exe python-dateutil-2.2.win32-py2.7.exe six-1.7.3.win32-py2.7.exe PyScripter-v2.5.3-Setup.exe

2016-05-25

detours HOOK API

detours HOOK API 官网网速太慢,谁用谁知道

2015-12-23

C++解析JSON

C++解析JSON

2015-12-02

AStar 算法实例

A星算法 对于空地左键单击后会产生障碍,对障碍左键单击会消除障碍,对于起点,两次左键盘单击会消除起点,如果不存在起点,单击右键会产生起点,如果存在起点不存在终点,单击右键会产生终点,如果既存在起点又存在终点,单击右键会消除终点,点击开始寻路回画出路径

2015-07-18

Visual Assist X补丁

码农们,当你使用VAX助手提示更新的时候,当你安装好新版打开VS提示注册的时候,你是否到处在找patch补丁,每次更新你都蛋碎一样到处寻找,这次我们给大家带来超级通用和谐补丁,每次更新VA_X后均可一如既往的正常使用,免去码农到处寻找补丁、反复打补丁、补丁版本不支持现有IDE的痛苦,翠花上菜!

2015-06-18

CrashFinder2.55

CrashFinder,找到崩溃代码行

2015-05-26

appverifier

AppVerifier,专门用来检测那些用普通方法检测不出的意想不到的bug(比如内存溢出、错误句柄使用等)。而且AppVerifier使用非常简单,

2015-05-22

强制复制软件

强制复制软件

2015-04-22

破解存储过程的加密

破解存储过程的加密

2015-04-22

Python平台

Python平台

2015-04-05

VC西红柿插件破解版

VC西红柿插件破解版

2015-04-05

各种各样的按钮(VC源码)

各种各样的按钮(VC源码)

2014-11-17

瞬间找文件

瞬间找文件

2014-09-05

密码查看器.zip

密码查看器.zip

2014-09-05

VC助手破解版

VC助手

2014-09-05

class-loader测试工程

class-loader测试工程

2023-06-01

mainboard测试工程

mainboard测试工程

2023-05-31

编码测试工程.rar

编码测试工程

2019-11-20

cmake-3.14.3-win64-x64.zip

cmake-3.14.3 最新安装版 CMake是一个开源的跨平台工具系列,旨在构建,测试和打包软件。CMake用于使用简单的平台和独立于编译器的配置文件来控制软件编译过程,并生成可在您选择的编译器环境中使用的本机makefile和工作空间。

2019-09-05

luac逆向工具

luac编译之后的逆向,亲测可用 详细亲看:https://blog.csdn.net/liujiayu2/article/details/81940701

2018-08-22

ffmpeg推送摄像头rtmp流

详细信息请看: https://blog.csdn.net/liujiayu2/article/details/80880815

2018-07-02

IOCP网络模型

详细信息请看: https://blog.csdn.net/liujiayu2/article/details/80772904

2018-06-28

跨平台高性能TCP服务器框架 &boost;

基于boost的asio封装的高性能TCP服务器。asio已经有很好的事件封装机制,只有底层事件,没有针对TCP建立会话机制;也没有多包进行合包,以包为单位的事件提交机制。由于以上多种原因,决定对boost库进行更高的抽象和封装,对开发者提供一种更为便利的使用接口。

2018-06-25

网狐IOCP压缩版

网狐IOCP压缩版,自己整理了两天,3分不算多吧, 遗留问题: 1.由于不太会使用去掉了网络事件(收发数据、网络接受、网络断开)进队列,发的时候直接发送,接收的时候直接回调。不知道原作者都放进队列里 面有哪些确切的好处。 暂时先这样,后续更新。。。

2018-06-22

用C++实现的壳

基础版壳所实现的功能: 1.在原程序中添加一块区段,将壳部分的代码移植进去。 2.在程序启动前优先获得控制权,执行完自己的代码以后再将控制权交还给原程序。 3.对代码段进行简单的亦或加密。 4.对原程序的导入表(IAT)进行修复。 5.如果原程序开启了随机基址,则对源程序进行重定位修复。

2017-09-14

像加载DLL一样加载EXE

像加载DLL一样加载EXE 介绍 你可能已经被警告过,不要用LoadLibrary()加载可执行文件,你可能尝试这么做过,然后程序就崩溃了,所以你可能会认为这是不可能的。 但实际上这是可行的,本文就将介绍具体的方法。

2017-09-10

protobuf-2.61最新版

protocolbuffer 以下简称PB 是google 的一种数据交换的格式 它独立于语言 独立于平台 google 提供了三种语言的实现:java c++ 和 python 每一种实现都包含了相应语言的编译器以及库文件 由于它是一种二进制的格式 比使用 xml 进行数据交换快许多 可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换 作为一种效率和兼容性都很优秀的二进制数据传输格式 可以用于诸如网络传输 配置文件 数据存储等诸多领域 ">protocolbuffer 以下简称PB 是google 的一种数据交换的格式 它独立于语言 独立于平台 google 提供了三种语言的实现:java c++ 和 python 每一种实现都包含了相应语言的编译器以及库文件 由于它是一种二进制的格式 比使用 xml

2017-08-28

Gh0stVC6到VS2010迁移所有问题的解决方法

gh0st 由VC6.0开发的工程项目,移植到VS2010环境下,会出现各种错误和警告,此类错误多数是由编译器和环境不兼容导致,除修改工程下的某些属性参数外,还需手动修改编译过程中出现的一些错误。

2017-08-15

空空如也

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

TA关注的人

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