IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    dingjiacan@antvsion.com发表于 2025-01-10 05:58:45
    love 0

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

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

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

    1、初次分析

    0地址异常反调试

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

    故意访问0地址

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

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

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

    处理函数也是完整nop

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

    main函数

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

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



    做法很简单:直接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:


      



沪ICP备19023445号-2号
友情链接