微信 - 撤回分析 & patch
1 emmm 进入正题吧 在微信撤回的时候,会提示xxxx撤回了一条消息,类似下图这样,就以它为入手点吧 打开CE搜索这个字符串, 9个结果,筛选后找到了一个可用的 然后栈回溯分析了几个可疑断点 后来,,,,,,无果 但是在分析的过程中,发现了一个字符串revoke,在wechatwin.d ...
Read more
打补丁?怎么少得了dll注入
dll注入的方法还是挺多的,dll替换,注册表等等,来说说比较常用的一种吧 这个方法不仅适用dll注入,inline Hook同样适用 既然是DLL注入,就需要写一个DLL,这个DLL的代码会在被注入的进程中运行,我的代码如下: 123456789101112131415161718BOOL API ...
Read more
多重继承?抽象类?C++的内存布局并不复杂
多重继承先来看看多重继承吧 12345678910111213141516171819202122232425class cFa {public: cFa() {}; virtual ~cFa() { };};class cMo{ ...
Read more
从继承的角度出发再探多态
我们先通过一段代码来理解继承的底层实现。 12345678910111213141516171819202122232425262728class CBase {public: CBase() {}; ~CBase() {}; void SetNum ...
Read more
10分钟破解一款收银软件
一个朋友在理发店工作,需要一款收银软件,这种东西还用想?百度一大堆,我去百度Down了两个,在云沙箱上跑,都有恶意代码。 后来就有了这篇文章。 我在xxxx官网下载了一款试用版的,有限制,进入正文。 软件是这个样子的 我简单运行了一下,添加会员会有人数限制,一会再来说这些吧。 PEID查壳: . ...
Read more
C++基于SEH二次封装的异常处理 - 之数据结构篇
本文将围绕上图来介绍C++异常的数据结构。 在C++中如果函数中包含异常处理,将会在此函数中的开始部分注册一个异常回调函数,当函数中有异常抛出的时候,便会调用这个回调函数,也就是在SEH中注册一个函数(异常回调函数)。 这个异常回调函数指向的地址的汇编码通常是这样的: 1200D963A4 mo ...
Read more
C++基于SEH二次封装的异常流程与识别
在茫茫的汇编中,怎么来识别try结构呢? 在看代码之前我们先连简单的看下try的处理流程吧 函数入口设置回调函数 函数的异常抛出使用了__CxxThrowException函数,此函数包含了两个参数,分别是抛出一场关键字的throw的参数的指针,另一个抛出信息类型的指针(ThrowInfo *)。 ...
Read more
局部静态变量只能初始化一次实现原理
静态变量可以分为全局静态变量,和局部静态变量,先来说说全局的吧 全局静态变量和全局变量的区别并不大,只是全局静态变量只能在当前文件中使用,而在反汇编中二者并无区别,只可以在当前文件中使用,不过是编译器做出的限制。 局部静态变量,会有些特殊,它不会随着作用域结束而消失,在未进入作用于之前就已经存在。 ...
Read more
C++ 多态的实现
我们通过一段代码,先来了解多态的底层实现 12345678910class cVirtual {public: virtual void func0() {}; virtual void func1() {};};in ...
Read more
Window PE -- 区块
Window PE – 区块区块在PE件头与原始数据之间存在一个区块表(SectionTable)。区块表中包含每个块在映像中的信息,分别指向不同的区块实体。 区块表跟IMAGE_NT_HEADERS的是区块表,它是一个IMAGE_SECTION_HEADER结构数组。每个IMAGE_SECTION ...
Read more