zoukankan      html  css  js  c++  java
  • CrackRTFwp 顺便讲讲如何在pe文件中看资源

    32位exe,拖进ida

     

     要求输入两次密码,先看第一处

    可以看到CryptCreateHash的ALG_ID为0x8004,可知道是sha1,且输入为6位数字大与100000

    ALG_ID可在此处查:https://docs.microsoft.com/zh-cn/windows/win32/seccrypto/alg-id

    import hashlib
    a="@DBApp"
    for i in range(100000,999999):
        m=str(i)+a
        c=hashlib.sha1(m.encode())
        if(c.hexdigest()=="6e32d0943418c2c33385bc35a1470250dd8923a9"):
            print(m)

    得到第一部分123321

    再看第二处

     0x8003,MD5,只知道是六位,难以爆破,不过有另一个函数sub_40100f

    可以知道第二次输入密码与资源异或后为dbapp.rft,所以找到对应资源就行了。

    a="{\rtf1"
    b="x05x7dx41x15x26x01"
    flag=""
    for i in range(6):
        flag+=chr(ord(a[i])^ord(b[i]))
    
    print(flag)

    ==================================================================================

    下面是如何找资源

    ==================================================================================

    先用010打开

    pe文件开头是MS-DOS头,在0x3c处可找到PE文件头40,数据目录表的第三个成员指向资源结构,位于PE头的88h偏移处,在这个文件里位置就是40h+88h=c8h处,此处为2F000,不过因为010好像是以binary形式表现的,所以我用了DIE

     42f000就是资源的根目录处,共三个资源,此处看到的IMAGE_RESOURCE_DIRECTORY_ENTRY结构如下:

    看第一个结构的名字为80000118h,可得名字在2f000+118h的位置,

    第一个03表示长度,从这就可看出第一个结构就是要找的AAA

    继续往下看,OffectToData为 80000028h,80h二进制为10000000b,最高位为1,表示有下一层目录,而低位数28h就是偏移,可得下一层目录为42f028

    从此处可看到OffectToData为80000078h,和上面方法相同,找到42f078,

    这次没有下层目录了,找到42f0d8,

    2f260就是资源的实际位置

     

    ==================================================================================

    对于不想知道原理的,下面是更好的方式(~_~)

    ==================================================================================

    用DIE

     

  • 相关阅读:
    Windows 7 Phone 文档数据库Rapid Repository正式发布
    Adobe展示HTML5动画制作IDE
    详解Android实现全屏正确方法
    qtform.com计划
    Adobe加速布局移动开发:Flash Builder+Flex+AIR+Catalyst
    预览:Visual Basic与C#中的异步语法
    Windows 7主题中的壁纸从哪里来?
    F#的编译器及标准库使用Apache 2.0协议开源(暂时还没有看到未来)
    开发者谈Symbian、iPhone、Android、MeeGo平台
    MeeGo 1.1发布
  • 原文地址:https://www.cnblogs.com/harmonica11/p/12809430.html
Copyright © 2011-2022 走看看