某VPN本地账号密码加密算法分析

最近分析的一个VPN的账号保存在本地的过程,火绒剑监控进程发现他将用户的账号密码加密后存放在了注册表一个位置,每次打开软件自动登陆会读取出来进行解密,就逆了一下它的这个加密算法作为练手。 OD根据火绒剑的堆栈回溯对读取注册表的位置下断点, 00C409E9 50 ...

2019-02-24 11:21:31

阅读数 54

评论数 0

全局SEH HOOK

先放代码:https://github.com/coNgY1/global-seh-hook 之前看到过VEH HOOK,就一直想能不能用SEH进行HOOK,这里就写了一个: VEH HOOK主要好处是进程相关,而SEH是每个线程相关,每个线程的SEH chain是不同的,所以要弄SEH HO...

2019-02-01 15:21:31

阅读数 115

评论数 1

目前我所知道的Anti Attach总结

1、附加进程会在对方进程创建一个线程,线程起始地址是DbgUiRemoteBreakin,而R3线程的起始位置会在LdrpInitializeThunk开始,所以可以HOOK LdrpInitializeThunk中的LdrpInitialize 这个CALL的第五个参数是一个CONTEXT结构...

2019-01-19 11:06:13

阅读数 95

评论数 0

代码混淆(变形乱序)

目录   总概: 原理部分: 1、乱序部分: 2、变形部分: 3、隐藏常量: 总概: 这个变形乱序写了部分时间了,但是一直断断续续,又有期末考试,所以写的很慢,现在也算是完成了部分功能了。 1、能够对部分类型代码进行变形,后期加入更多的模板实现所有指令变形。 2、能够隐藏常量,...

2019-01-15 18:36:05

阅读数 87

评论数 0

一个DrxHook库分析

看到别人的代码里面有个DrxHook库,看了以下代码: BOOL InitDrxHook() { BOOL bResult=FALSE; BOOLEAN Old; RtlAdjustPrivilege(0x14,TRUE,FALSE,&Old);//提权到DEB...

2019-01-14 11:08:47

阅读数 65

评论数 0

ACProtect提取StolenCode

ACProtect的StolenCode网上的处理很多是Delphi的程序,而StolenCode大多是通过对text段下断,当调用Delphi的第一个CALL时候会断下,再回溯就能找到StolenCode,而用VC写的程序,发现对StolenCode会进行一个变形加分散的处理,对StolenCo...

2018-11-13 21:16:33

阅读数 93

评论数 0

CreateThread和_beginthreadex的区别

CreateThread和_beginthreadex的是Windows编程和C/C++中创建线程的方法,所传入的参数都是一样的 在_beginthreadex的内部就是调用了CreateThread API。 区别: 1._beginthreadex创建的每个线程都会有自己专用的_tidd...

2018-11-13 21:16:14

阅读数 176

评论数 0

从内存中加载DLL

遇到一个软件,它的DLL全是加密后放资源文件中的,在程序中通过解密函数来解密出资源名,然后解密资源为一个PE文件,最后直接自己重写LoadLibrary加载DLL到内存,达到不释放DLL就i能加载的目的。自己也百度了一下重写了一个同样功能的类。 步骤: 1、将资源文件中的DLL读取到内存分配的...

2018-10-26 21:29:10

阅读数 109

评论数 0

过掉某游戏数据检测

  遇到一个游戏,不管是修改怪物的血量还是修改人物的坐标数值,直接会检测到。   想了两种情况: 每次都要和服务器上的数据进行一次验证是否一样,不一样就说明非法更改。 每次和本地保存的数据进行检测,不一样就非法。   针对1情况,看了下发包函数,走路的时候会发包,但是在断网情况下修...

2018-10-24 14:37:53

阅读数 1663

评论数 1

一道自写VM 的CTF题(护网杯RE)

IDA来到main函数: 发现调用了FuncTable的+68,+6c,+70的函数,并且初始化了1,2,3,5,6,8等偏移的成员。每个FuncTable中的函数都传递了this指针,那么可以确定这是一个类的调用,然后分析+0x70处: 很明显的虚拟机特征,OD去掉ASLR也很观...

2018-10-17 16:58:16

阅读数 188

评论数 0

反汇编引擎编写

我的源码,GitHub链接:https://github.com/coNgY1/XqDisassembler 参考资料:https://www.pediy.com/kssd/pediy12/128411.html 写着写着忘了自己写的初衷,变成了真的只能打印反汇编语句了。写这个的时候还没有用过...

2018-10-12 19:57:05

阅读数 220

评论数 0

AES算法流程简述

AES加密过程: 一、key可以是三种大小字节,分别对应着后面不同的加密轮数: 128(0x10字节)---> 10轮 196(0x18字节)---> 12轮 256(0x20字节)---> 14轮   二、密钥扩展--...

2018-09-26 22:43:20

阅读数 1050

评论数 0

VMP1.60分析

Demo指令:mov eax,0x200 主要看与vm1.10版本的虚拟机不同之处: 1、不再是用一个固定地址来保存vm_context,而是将vm_context放在了堆栈上,vm_esp不再直接是esp而是ebp,esp只是用来作混淆作用。 2、每次handler执行中都会对esp进行减...

2018-09-23 17:57:05

阅读数 183

评论数 0

VMP1.10最大保护分析

这次的样本只是一条mov eax,0x200指令,用vmp1.10开全部保护: 分析如下: 首先来到vm_dipatcher处: 这里是每次对取opcode会进行解码,此时的vm_data中不会看到一样的opcode,就是因为每次会进行解码,而且在进行handler执行的时候也会对操作数...

2018-09-22 12:09:25

阅读数 135

评论数 0

API HOOK检测工具编写,以及过程中遇到的问题总结

这几天GitHub上面一个作者的源码,于是自己决定了也来实现一下API HOOK检测工具,这是原作者的源码链接,我自己的就不发啦~~~GayHub源码   目录 一 、IAT,EAT,Inline HOOK原理: 二 、检测原理: 三 、检测步骤: 四、写的过程中所遇到的问题、以及没有...

2018-08-26 17:14:42

阅读数 1286

评论数 0

PE加载器识别Import Directory Table 的IID数组个数的依据

在Import Directory Table(IDT)中的RVA指向的是IMAGE_IMPORT_DESCRIPTOR(IID)的数组,这对数组以最后一个00的IID结尾。而IDT中的Size为所有的IID数组包括00填充的的IID的大小和,那么PE加载器到底是根据00结尾的IID来判断结尾,还...

2018-08-11 12:20:14

阅读数 96

评论数 0

PE中一些容易混淆的点

1.DOS头的e_lfanew的偏移值 是指 PE文件开头开始偏移 2.PE装载器根据FILE_HEADER的SizeOfOptionalHeader值来识别OPTONAL_HEADER大小 3.节区头位置 = OPTIONAL_HEADER + SizeOfOptionalHeader 4.Si...

2018-08-10 10:10:14

阅读数 76

评论数 0

FPS游戏的方框透视 + 自瞄原理

目录   一,自瞄 准备工作: 计算工作: 二,方框透视 准备工作: 计算工作: 一,自瞄 基于所有的FPS游戏,都有一个人物结构,包含人物在地图上的三维坐标,人物的准心数据。 而实现内存自瞄就是通过查找自己和敌人之前的三维坐标数据,将三维坐标数据转换为二维的准心数据。 准备...

2018-08-07 15:15:30

阅读数 16865

评论数 18

C++ —— 用delete []去释放非数组对象导致崩溃的原因

假设有个类Test , 定义了Test *p = new Test;    之后却用delete []p 去释放内存,就会导致程序崩溃或者直接进入无限循环。 分析如下:一段测试的代码 #include<iostream> using namespa...

2018-08-07 15:04:35

阅读数 782

评论数 0

检测代码注入

看了windows核心编程相关篇章后所写: 1.进程代码注入一般会调用VirtualAllocEx来给目标注入进程分配shellcode的空间,并且修改这段内存属性为可执行可写。 2.检测思路:程序最开始运行时候初始化一个链表,保存每一个区域中页面的属性,然后开启一个线程对每一个页面的属性进行...

2018-07-18 12:12:31

阅读数 203

评论数 0

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