Windows 逆向分析
以逆向某个社交软件为例,学习Windows的逆向分析技术
hellokandy
我总在牛A与牛C之间徘徊!
展开
-
钩子技术介绍(HOOK 编程)
【什么是HOOK API】HOOK(钩子,挂钩)是一种实现Windows平台下类似于中断的机制[24]。HOOK机制允许应用程序拦截并处理Windows消息或指定事件,当指定的消息发出后,HOOK程序就可以在消息到达目标窗口之前将其捕获,从而得到对消息的控制权,进而可以对该消息进行处理或修改,加入我们所需的功能。钩子按使用范围分,可分为线程钩子和系统钩子,其中,系统钩子具有相当大的功能,几乎可以实...原创 2017-05-25 23:14:48 · 26374 阅读 · 1 评论 -
Windows 利用远程线程注入DLL
在Windows系统中,DLL的注入方式大概有以下几种:1、利用注册表注入2、利用Windows Hooks注入3、利用远程线程注入4、利用特洛伊DLL注入本文主要简述一下第三种(利用远程线程注入)的流程与注意事项,大概流程如下:1、打开指定的进程(OpenProcess)2、在指定进程空间申请虚拟内存空间,为了存放DLL名称(VirtualAllocEx)3...原创 2020-01-14 18:40:47 · 541 阅读 · 0 评论 -
Windows逆向 微信登录二维码的字符串
获取微信的登录二维码,网上已有很多教程了,这里稍作总结,大概就以下两种方式:1、直接获取二维码的图片数据,下载到本地;2、获取二维码所表示的字符串,利用其它库(比如:libqrencode)来生成二维码图片;原创 2020-02-12 16:58:26 · 976 阅读 · 0 评论 -
pushad 和 pushfd
pushad:将所有的32位通用寄存器压入堆栈pushfd:然后将32位标志寄存器EFLAGS压入堆栈pusha:将所有的16位通用寄存器压入堆栈pushf:将的16位标志寄存器EFLAGS压入堆栈popad:将所有的32位通用寄存器取出堆栈popfd:将32位标志寄存器EFLAGS取出堆栈popa:将所有的16位通用寄存器取出堆栈popf:将16位标志寄存器EFLA...原创 2019-12-26 11:13:54 · 5380 阅读 · 0 评论 -
Windows逆向 微信是如何限制多开的
一般而言,在Windows系统里面要实现单实例运行,基本都是用互斥体来实现的(微信也是这样做的)。互斥体,只能同时被一个线程持有,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程访问。互斥不仅能实现同一应用程序的公共资源安全共享,还能实现不同应用程序的公共资源安全共享。下面先给出限制只允许单个实例运行用到的代码:#include ...原创 2019-11-06 17:40:16 · 2538 阅读 · 3 评论