• AliCTF2014题目解析之<reverse-300>


    reverse-300

    3.jpg


    工具:IDA pro、WinDbg、UPX、Resource Hacker


    先运行程序看效果



    点击按钮直接崩溃,同时由于程序放到32位的xp虚拟机中不能运行,判断是64位程序。
    根据提示程序本身就是有问题的,所以直接上IDA pro,发现是用UPX加了壳的:



    使用UPX脱壳看看



    成功!运行Ch3_d.exe看看效果



    这效果。。。直接不能运行了,脱壳之前还可以弹出窗口来着!再从新脱一次壳,还这样,好吧,it's a trap!
    用windbg分析一下崩溃的原因:把windbg注册为及时调试器,再运行Ch3_d.exe



    崩溃的地址为
    00000001`3fc81dcd 85c0 test eax,eax
    IDA pro中视图导航到该地址,发现载入的基址不对(往下看就知道原因了),在windbg中用LM命令看一下模块情况

    基址为13fc80000,在IDA pro中rebase后,查看崩溃点


    *
    和windbg中看到的情况一致,调用_initterm_e函数后就崩溃了,崩溃指令位于_initterm_e:
    call rcx ;rcx=0x140001f2c
    到这里我困惑好久(唉,菜啊),分析过程如下:
    搜索一下 initterm函数,功能大体是执行给定的函数,call rcx出错,估计rcx的值应该就是Ch3_d.exe传递给initterm的参数了,是个函数地址,因此在IDA中搜索2c 1f 00,确实找到了0x140001f2c,0x140000000是64程序的默认加载地址,看来Ch3_d.exe还以为自己被加载到默认地址了呢。
    分析到这里(还要分析才明白,一个字,菜!),就很明白了,是vista之后引入的随机基址的问题,依稀记得《0day安全》那本书上讲了相关内容(13章,ASLR),看了一眼,改下注册表就行了(这里就不写具体操作了,需要的可以自己去查,另:改PE头也可以避免这个问题)。


    改完注册表,重启,运行程序,成功!激动地去点【Find The Key】,崩~~,windbg弹出来了,又崩溃了!什么情况?没办法,继续分析,看一下崩溃点附近的情况



    加载DecryptDll.dll,导入RASDecrypt函数,DecryptDll.dll在哪?还能在哪,估计就在Ch3_d.exe的"肚子里了",用resource hacker看一眼



    果然有个DLL,导出来重命名一下,再运行,我看你还崩!?
    额,好吧,果断的。。。windbg又弹出来了,不费话了,看看什么情况,



    崩在DecryptDll的RSADecrypt函数里了,用IDA加载DecryptDll看一眼(注意基址),



    是崩在memcpy函数了,根据64位程序的调用约定,memcpy的三个参数依次为rcx(dst),rdx(src),r8(len),使用windbg跟踪到call memcpy



    寄存器情况如图,rcx=0,rdx=21dc56,r8=15,可见是目的地址rcx的问题,在IDA中跟踪rcx,最跟踪到
    DecryptDll!RSADecrypt的r8参数,r8应该是个有效的地址。
    看一眼Ch3_d.exe调用DecryptDll!RSADecrypt时的参数情况



    好吧r8=0,怪不得呢,看源码是故意用xor给清空了
    那么只要在调用DecryptDll!RSADecrypt之前把r8改成一个可写的地址就行了,在该地址得到如下字符串



    但是弹出的对话框中没有任何内容,但是看大神说这就是flag,就不继续分析了。


    1. k*&>(da30_q-(pkd23@,

    最后总结一下“考点”吧(菜鸟观点):

    • UPX脱壳
    • 64位程序的调试
    • ASLR机制
    • 资源提取




  • 相关阅读:
    换盘符cd的用法
    matplotlib.pyplot 属性用法
    类 __init__的注意事项
    Python File(文件) 方法
    Spyder 快捷键
    python路径引用r的含义
    VBA+SQL transform pivot union联合查询的基础应用
    Box-Cox变换
    静态字段引用的对象为什么不会被GC回收
    编译hotspot8
  • 原文地址:https://www.cnblogs.com/Wrong-Side/p/4334411.html
Copyright © 2020-2023  润新知