后门函数技术在二进制对抗中的应用

news/2024/9/16 6:20:28/文章来源:https://www.cnblogs.com/hetianlab/p/18326476

本次题目跟第七届HWS线下的re2有类似的地方,均有后门函数。

二进制后门可以理解为:我们只需要修改某个字节或某个函数,就可以将加密的过程变成解密的过程,大大节省逆向成本。

本题先对内置的dll进行解密,然后调用其加密函数对我们的txt进行加密,如果我们将加密的函数nop为解密函数,就可以直接解密,类比与RC4动态解密技术。

1、初次分析

0地址异常反调试

本题的一大亮点就是有访问0地址的异常反调试,小伙伴们在做的时候有没有发现调试异常艰难呢

故意访问0地址

然后走作者自定义的处理函数,如果我们在IDA动调的时候不经过处理函数,程序就会卡在哪里不能继续运行。

做法很简单:将访问0地址的代码和异常处理函数完全给nop掉

(说白了:就是将所有跟异常有关的汇编都给nop掉就完事)

处理函数也是完整nop

返回处也nop,跟开头相对应

main函数

分析main函数,发现反编译爆红

很正常,查看汇编代码,发现了异常反调试和异常花指令干扰分析

【----帮助网安学习,以下所有学习资料免费领!加vx:dctintin,备注 “博客园” 获取!】

 ① 网安学习成长路径思维导图
 ② 60+网安经典常用工具包
 ③ 100+SRC漏洞分析报告
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权威CISSP 认证考试指南+题库
 ⑥ 超1800页CTF实战技巧手册
 ⑦ 最新网安大厂面试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)

做法很简单:直接nop即可

具体做法参考:上面一小节,0地址异常反调试

nop

成功生成函数

TLS回调函数

尝试运行,发现直接退出,发现了TLS反调试函数

nop即可

生成函数

将exit函数nop掉即可,不用管反调试的事情了

2、内置DLL资源解密

使用工具打开file_encrypt

发现内置 pe程序,猜测key为0x33,解密

这是程序使用0x33解密

发现了很多加密函数和解密函数(Crypt开头),因此本题程序使用本dll进行加密和解密操作

在后面的分析中,也发现了函数加载了我们的dll

3、关键函数分析

sub_401320

使用IDA动调发现了很多bug,莫名其妙断下,改用x64dbg

sub_402000

路径和盘符有关,比如我在C盘

C:......\document\1.txt

找到1.txt

sub_4017E0

加载dll

 

sub_4013E0

4、解密

既然使用了encrypto,那么我们改为decrypto就可以啦


I added the missing CryptDecrypt call to the binary's import table and patched the executable to decrypt the files. The decryption call takes one parameter less than the encryption one, so I NOP'ed one push to the

stack as well:


更多网安技能的在线实操练习,请点击这里>>

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/772246.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于kalman滤波的UAV三维轨迹跟踪算法matlab仿真

1.程序功能描述使用卡尔曼滤波对UAV在三维空间场景中的运动轨迹进行预测和估计,最后输出预测轨迹,估计轨迹以及三维空间轨迹估计结果。2.测试软件版本以及运行结果展示 MATLAB2022a版本运行 3.核心程序for k=1:length(X_direct)-1%第一个估计 Xk_ = [X_direct(k);Vx_direct…

裴蜀定理学习记录

1477A - Nezzar and Board 观察到2x-y可以拆成x+(x-y),现在模拟一下这个过程发现得到的数可以看成从某个点xj出发,加上若干个两数之间的差的形式。 再考虑一下2x-y的几何意义,发现相当于在数轴上做x关于y的对称点,并且和数的分布位置有关,和具体数值是无关的 接下来有一个…

基于模糊PID的直流电机控制系统simulink建模与仿真

1.课题概述PID控制器和模糊PID控制器通过Simulink建模实现,在matlab中编程实现模糊控制规则,PID控制器参数计算。运行simulink模型之后,将2个控制器的控制响应曲线进行对比得到仿真结果。2.系统仿真结果 将PID控制器的控制响应曲线和模糊PID控制响应曲线放一起对比,结果如下…

公钥私钥gitee都不行,新手小白破局(windows凭据)

公钥私钥gitee都不行,新手小白破局(windows凭据) 创建时间:2024-07-26 一、问题复现 gitee项目创建后,由于之前的 账号密码错乱,导致提交不了,不能克隆下来,不能提交,如下: 1.1 初始的一个项目1.2 克隆出现问题二、删除公钥私钥 2.1 本机之前生成的密钥文件 一般在这…

【活动预告】Easysearch 结合大模型实现 RAG

2024 搜索客社区 Meetup 首期线上活动正式启动,本次活动由 搜索客社区、极限科技(INFINI Labs)联合举办,诚邀广大搜索技术开发者和爱好者参加交流学习。 活动时间:2024 年 7 月 31 日 19:30-20:30 (周三) 活动形式:微信视频号(极限实验室)直播 报名方式:关注或扫码海…

反射、特性

1.反射的例子:

SQL数据库表 多对多关系设计--省去链表的尝试

概述 之前遇到一个MES需求,需要创建一个基础资料表 "人员信息表" ,用于其它业务的人员信息关连,因为这些人员并非系统登录帐号,所以单独进行维护。人员表涉及到字段包括:ID,工号,姓名,所属工序,所属职称,所属车间。其中,所属工序、所属职称、所属车间 为…

Asp .Net Core 系列:详解授权以及实现角色、策略、自定义三种授权和自定义响应

什么是授权(Authorization)? 在 ASP.NET Core 中,授权(Authorization)是控制对应用资源的访问的过程。它决定了哪些用户或用户组可以访问特定的资源或执行特定的操作。授权通常与身份验证(Authentication)一起使用,身份验证是验证用户身份的过程,授权与身份验证相互独…

CTF-内存取证题目

一:使用volatility2版本 1、分析镜像 python2 vol.py -f /home/kali/桌面/worldskills3.vmem imageinfo 2、从内存中获取到用户admin的密码并且破解密码,以flag{admin,password}形式提交(密码为6位) (1)查看系统用户 python2 vol.py -f /home/kali/桌面/worldskills3.vme…

后端说,单页面SPA和前端路由是怎么回事

没有请求的路由 在传统开发中,浏览器点击一个超链接,就会像后端web服务器发送一个html文档请求,然后页面刷新。但开始单页面开发后,就完全不同了。 单页面?这个概念难以理解。我用一个js作为整个web应用,然后再这个js中操作dom变化,以此来实现页面变化。这不叫单页面吗?…

nginx批量封禁黑名单ip

nginx批量封禁黑名单ip昨天搞到差不多1点,今天又是忙到6点半,连我领导都说“搞得我们加一好憔悴呀”。有很长一段时间没更新博客了,想着怎么做个人IP。。。谋出路一、需求介绍废话少说,需求就是怎么批量封禁别人给来的一大堆黑名单ip。甲方每天不定期发来几百、上千个ip,我…

【基础教程】Tutorial on Pytorch 结合官方基础文档和个人经验

参考与前言 此教程首次书写于2021年12月份 至 2022年4月份间不断补充;阅读本文时可以对着代码运行查看官方网址:https://pytorch.org/tutorials/ 【基本从这里翻译而来 更简洁版+碎碎念】 https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#sphx-glr-begi…