加密与解密
Hu4
这个作者很懒,什么都没留下…
展开
-
壳的加载与脱壳简单介绍
简单壳的加载过程1、保存入口参数:初始化时会保存各寄存器的值。通常用pushad/popad、pushfd/popfd指令对来保存与恢复现场环境。2、获取壳本身需要使用的API地址LoadLibrary函数原型HMODULE LoadLibrary( LPCTSTR lpLibFileName //DLL文件名地址)返回值:成功则返回模块的句柄,失败则返回“NULL”...原创 2019-03-04 11:42:49 · 351 阅读 · 0 评论 -
壳:专用加密软件
壳附加在原始程序上,通过Windows加载器载入内存后,先于原始程序执行,一得到和控制权,在执行过程中对原始程序进行解密、还原,还原后把控制权还给原始程序,执行原来的代码。压缩壳UPX:以命令行方式操作的可执行文件压缩程序,兼容性和稳定性很好。命令行格式:upx [-123456789dlthVL] [-qvfk] [-o file] file..加密壳ASProtect...原创 2019-03-04 10:50:38 · 536 阅读 · 0 评论 -
漏洞分析技术
缓冲区溢出漏洞缓冲区:程序在运行前会预留一些内存空间,这些内存空间用于临时存储I/O数据。缓冲区:计算机向缓冲区内填充的数据超过了缓冲区本身的容量,导致合法的数据被覆盖。栈溢出原理:#include <stdio.h>#include <windows.h>void testFunc(char *Buf){ char testBuf[8]; m...原创 2019-03-02 20:33:01 · 1434 阅读 · 0 评论 -
KeyFile保护
KeyFile的意思就是密钥文件,它主要呢存在于某些需要注册的软件中,就是说你用一款软件它需要注册并且购买它才可以解锁使用它,这个KeyFile呢就是软件的某个文件,每次软件启动都要从系统根目录或者软件目录中搜寻这个密钥文件,文件里面记录着你的注册信息和注册码以及一些数据,软件利用某种函数将这些数据转化为它可以识别的数据在判断注册的信息是否一致如果一致就进入购买后的版本如果不一致就进入一个试用期的...原创 2019-02-26 17:42:52 · 2850 阅读 · 0 评论 -
拆解时间限制&&菜单功能限制
计时器:应用程序可以通过接管系统的计时器中断来维护一个计时器, 常见的函数有setTime() :应用程序可在初始化时条用这个API。若计时器超市,系统会想申请该计时器的窗口过程发送消息WM_TIMER,或者条用程序提供的那个回调函数。1、 SetTimer函数1> API函数SetTimer的原型 UINT_PTRSetTimer( HWND hWn...原创 2019-02-26 16:30:51 · 251 阅读 · 0 评论 -
去除Neg窗口(警告窗口)
3种常用的方法 :修改程序的资源,静态分析以及动态分析、使用资源修改工具去除警告窗口。显示窗口的常用函数有MessageBoxA(W)、MessageBoxExA(W)、DialogBoxParamA(W)、ShowWindow、CreateWindowExA等等。 可以尝试利用消息设置断点进行拦截。、看到这个neg窗口是用DialogBox函数来显示的 0040104...原创 2019-02-26 16:08:55 · 586 阅读 · 0 评论 -
加密与解密(4.2 64位软件传参笔记)
X64寄存器: X64系统通用寄存器的名曾,第1个字母从“E”改为“R” (RAX)大小扩展到64位。数量增加了8个(R8~R15),使用WORD\BYTE\DWORD后缀。 调用约定:如果参数既有浮点类型,又有政署类型,例如“void fun(float,int,float,int)”,那么参数传递顺序为第1个参数(XMM0)、第二个参数(RDX)、第三个参数(XMM2)、第四个参...原创 2019-02-26 14:41:20 · 609 阅读 · 0 评论 -
序列号保护方式
序列号保护机制 四种基本方法:将用户名等信息作为自变量,通过函数F变换之后得到注册码;通过注册码验证用户名的正确性;通过对等函数检查注册码;同时将用户名和注册码作为自变量(采用二元函数)。序列号 = F(用户名)攻击序列号保护机制常用的api(GetWindowsTextA(W)、GetDlgItemTextA(W)、GetDlgItemInt、hmemcpy)制作注册机...原创 2019-02-26 15:44:13 · 1001 阅读 · 0 评论 -
BeingDebugged引发的蝴蝶效应
IsDebuggerPresent函数用来判断自己是否处于调试状态。BOOL APIENTRYIsDebuggerPresent( void ){ return NtCurrentPeb()->BingDebugged;}这个函数会读取到PEB中的BeingDebugged标志(PEB:进程环境块)PEB(Process Environment ...原创 2019-03-05 13:03:49 · 959 阅读 · 1 评论 -
Hook技术简单介绍
Hook主要就是通过一定手段在程序执行过程中进行干预。IAT Hook 篡改MessageBox借用accills的例子#include <windows.h>#include <stdio.h>#include <imagehlp.h>#pragma comment(lib,"imagehlp.lib")//以MessageBoxA的...原创 2019-03-01 17:02:31 · 5639 阅读 · 0 评论 -
Xposed原理
Xposed是一个很强大的Android平台上的HOOK工具,而且作者为了方便开发者使用开发了一个APP(Xposed Installer,下文称为Installer) 来使用开发者自己开发的模块。开发者安装自己的模块后需要在Installer中勾选自己的模块然后重启手机自己的模块才会起作用。但是这样有点不利于开发者测试,每次都要点开Installer操作几下尤其是还要重启就显得有点麻烦了。读...转载 2019-03-01 11:47:15 · 1975 阅读 · 0 评论 -
DLL注入的应用与防范
(1)实现精确、复杂的内存补丁;(2)实现增强的PEDIY;(3)与Hook技术相结合。驱动层防范: KeUserModeCallback 放全局消息钩子注入参考了看雪大佬的文章https://bbs.pediy.com/thread-104918.htmNTSTATUSKeUserModeCallback ( IN ULONG ApiNumber, ...转载 2019-03-01 11:29:18 · 1825 阅读 · 0 评论 -
DLL注入技术
DLL注入方法:在进程创建阶段加载输入表中的DLL(静态输入);通过调用LoadLibrary(Ex)主动加载(动态加载);由于系统机制的要求们必须加载系统预设的一些基础服务模块。1、静态修改PE输入表法准备工作:dll,导出Msg()函数修改对象:notepad.exe修改目标:启动NOTEPAD.EXE时能够加载MsgDLL.DLLMsgDLL.dll的主要功能是在Dllm...翻译 2019-02-27 16:21:34 · 431 阅读 · 0 评论 -
PE结构
PE结构 exePE文件是Windows操作系统下使用的可执行文件格式。PE(Portable Executable)格式,是微软Win32环境可移植可执行文件(如exe、dll、vxd、sys和vdm等)的标准文件格式。PE格式衍生于早期建立在VAX(R)VMS(R)上的COFF(Common Object File Format)文件格式。Pe文件是指32位的可执行文件(PE32...原创 2019-02-27 14:53:54 · 455 阅读 · 0 评论 -
Win32调试API
相关函数(1)ContinueDebugEvent函数:此函数允许调试器回复先前由于调试事件而挂起的线程。(2)DebugAcitveProcess函数:此函数允许将调试器捆绑到一个正在运行的进程上。(3)DebugActiveProcessStop函数:此函数允许将调试器从一个正在运行的进程上卸载。(4)DebugBreak函数:在当前进程中产生一个断点异常,如果当前进程位处在调...原创 2019-02-27 14:41:04 · 331 阅读 · 0 评论