李沉舟 发表于 2016-11-26 22:35

破解豪迪QQ群发器(APIHOOK去自校验)

个人的去自校验思路是这样的

程序肯定使用了MD5校验之类的东西

所以我HOOK了CreateFileA

当程序尝试打开运行中的自身(逆向后的)我就让程序打开备份的未逆向的程序

实验成功欺骗了程序

完美去除自校验

视频下载地址:**** Hidden Message *****

Patch.e代码
.版本 2

.程序集 程序集1
.程序集变量 hook, 类_APIHOOK

.子程序 _启动子程序, 整数型, 公开, 请在本子程序中放置动态链接库初始化代码

hook.安装 (“kernel32.dll”, “CreateFileA”, &MyCreateFile)

_临时子程序 ()' 在初始化代码执行完毕后调用测试代码
返回 (0)' 返回值被忽略。

.子程序 MyCreateFile, 整数型, 公开
.参数 打开文件名, 文本型, , lpFileName,要打开的文件的名字
.参数 访问权限, 整数型, , dwDesiredAccess,访问权限
.参数 共享方式, 整数型, , dwShareMode,共享方式
.参数 安全特性, 整数型, , lpSecurityAttributes,安全特性信息
.参数 创建方式, 整数型, , dwCreationDisposition,创建方式
.参数 文件属性, 整数型, , dwFlagsAndAttributes,参见相关帮助
.参数 从文件复制文件属性, 整数型, , hTemplateFile,参见相关帮助
.局部变量 h, 整数型

hook.暂停 (“kernel32.dll”, “CreateFileA”)
.如果真 (打开文件名 = 取运行目录 () + “\” + 取执行文件名 ())' 如果是要打开自身文件以进行自校验,则我们打开备份的未修改的文件,并返回该文件句柄,以此欺骗程序
    打开文件名 = 取运行目录 () + “\qqqf.exe.bak”

.如果真结束
h = 创建文件_ (打开文件名, 访问权限, 共享方式, 安全特性, 创建方式, 文件属性, 从文件复制文件属性)
hook.继续 (“kernel32.dll”, “CreateFileA”)
返回 (h)


.子程序 _临时子程序

' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。


如痴如梦如癫 发表于 2016-11-29 20:35

杀了个花 牛逼了

gawen 发表于 2016-12-28 15:24

很好的教程

Phantom_K12 发表于 2017-3-30 19:08

学习一下{:5_116:}

hehe1954881 发表于 2017-6-1 18:59

本帖最后由 hehe1954881 于 2017-6-1 19:09 编辑

教程认真的看了几遍,

kxwl521 发表于 2017-6-1 19:25

这个厉害了 谢谢楼主了

hehe1954881 发表于 2017-6-2 19:15

我看了好几遍,自己操作了一边最新的版本,发现hook那一块无法保存写好的程序 OD里面无法保存文件OD提示大概文件无法保存之类的

期待 发表于 2018-6-4 13:45

谢谢分享了哈,学习一下咯

gxll123 发表于 2018-6-5 14:58

来学习了{:5_185:}

小白到大神 发表于 2018-6-6 23:40

学习学习 酷酷酷
页: [1] 2 3 4 5 6
查看完整版本: 逆向豪迪QQ群发器(APIHOOK去自校验)