首页 > 其他分享 >后门函数技术在二进制对抗中的应用

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

时间:2024-07-26 23:51:18浏览次数:5  
标签:后门 加密 函数 二进制 解密 调试 网安 nop 对抗

本次题目跟第七届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:


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

  

标签:后门,加密,函数,二进制,解密,调试,网安,nop,对抗
From: https://www.cnblogs.com/hetianlab/p/18326476

相关文章

  • N 选择 r 个可能性作为递增的二进制数
    我正在寻找一个输入(n,r)并输出我们可以从n个对象的字符串中选取r个对象的所有方法的函数。此外,我希望这个列表是一个递增的二进制序列。例如:(5,2)将输出:[00011,00101,00110,01001,01010,01100,10001,10010,10100,11000]我尝试通过考虑最右边的1并检查......
  • 【嵌入式开发之标准I/O】二进制文件的读写及实验
    文本文件和二进制的区别文本文件和二进制文件的区别主要在于它们的编码方式和数据组织方式。‌编码方式:‌文本文件是基于字符编码的文件,‌常见的编码有ASCII编码、‌UNICODE编码等。‌这些编码将字符映射到特定的二进制值,‌使得字符可以在计算机中存储和传输。‌相比之下,‌......
  • 在Python多处理中执行二进制信号量或互斥体以进行上下文切换操作
    我正在尝试自动化win应用程序和java应用程序之间的同步关系。我的标准是:启动win和jav应用程序在jav应用程序中执行命令等待jav应用程序的响应使用jav应用程序的响应到Windows应用程序作为输入。在jav应用程序中执行命令win应用程序......
  • 常见的FTP软件的二进制方式上传图文指导
    常见FTP软件有FlashFXP、CuteFTP、LeapFTP等。不同FTP软件略有差别,用户应结合自身软件情况找到“二进制”处进行设置。英文版的FTP软件,选择设置传输类型为binary(image)。FlashFXP软件进行二进制上传,方法是:点击“会话”——选择“传送模式”——“二进制”即可:CuteFTP软件进行......
  • DASCTF 2023六月挑战赛|二进制专项 PWN (下)
    DASCTF2023六月挑战赛|二进制专项PWN(下)1.can_you_find_me检查保护意料之中64位ida逆向只有add,和del功能不能show先看add吧最多申请10个堆块存在off_by_null漏洞,可以考虑unlink来进行堆块重叠del函数就没有UAF漏洞了1.首先想办法泄露出libc地址,因为本题libc是2.27......
  • 【待做】【攻防技术系列+Linux后门】alias
    alias用法系统默认别名:alias设置别名:aliasls='ls-laih'删除别名:unaliasls加参数:aliasls='ls-laih;pwd'❗注意系统启动默认加载的配置文件:/etc/profile切换用户就会执行/etc/profile/etc/bashrcbashshell~/.bash......
  • Luogu P4310 绝世好题 题解 [ 绿 ] [ 线性 dp ] [ 单调队列优化 ] [ 二进制优化 ]
    题目:绝世好题。暴力dp显然\(O(n^2)\)转移即可。单调队列优化观察到只有某二进制位两个数都为\(1\)时才能转移,因此我们把每个二进制位开一个单调队列,然后对于一个数\(a\),找到它是\(1\)的二进制位并选其单调队列的队头进行转移,在这之后把这个数加入符合要求的单调队列......
  • DASCTF 2023六月挑战赛|二进制专项 PWN (上)
    DASCTF2023六月挑战赛|二进制专项PWN(上)1.easynoteedit函数对长度没有检查free函数存在UAF漏洞思路:1.通过堆溢出,UAF,修改size位达到堆块重叠,使用fastbinattack,把__malloc_hook,写入one_gadget2.通过unlink修改freegot表为systemexp:frompwnimport*context(log_lev......
  • DASCTF 2023六月挑战赛|二进制专项 PWN (上)
    DASCTF2023六月挑战赛|二进制专项PWN(上)1.easynoteedit函数对长度没有检查free函数存在UAF漏洞思路:1.通过堆溢出,UAF,修改size位达到堆块重叠,使用fastbinattack,把__malloc_hook,写入one_gadget2.通过unlink修改freegot表为systemexp:frompwnimport*context(lo......
  • 安装程序运行所需的二进制文件的最用户友好的方式是什么?
    我正在创建一个使用curses模块的python程序,该模块本身不能在Windows上运行。值得庆幸的是,您可以在Windows上安装一个现有的二进制文件以便能够使用Curses,但这对用户来说很不方便。我的问题是为用户安装Curses-for-Windowss的最简单方法是什么?计划的一部分?我应该编写自己......