• [转]How to create an anonymous IDA PRO database (.IDB)


    Source: http://www.0xebfe.net/blog/2013/01/13/how-to-create-an-anonymous-ida-pro-database-dot-idb/

    Probably it’s not secret for you that every .IDB files contains header with your license information.

    There are two “netnodes” in every .IDB file that reveals your identity. Basically “netnode” is block with some data, check: idasdkinclude etnode.hpp for more info.

    So there are two netnodes:

    ”$ user1” - contains plaint text info about your license.
    ”$ original user” - contains encrypted info about your license.

    Actually you can freely delete “$ user1” netnode without any consequences, because IDA doesn’t check it at all. But “$ original user” netnode has strategic meaning for IDA PRO. This netnode contains RSA-1024 encrypted license information, same info that you have in “ida.key” file. When you open .IDB database IDA reads “$ original user” value, decrypts it with public RSA-1024 key and checks your license against MD5 hashes of blacklisted “pirated” licenses.

    So what we can do? We can’t delete it, because IDA checks this netnode on every opening. We can’t generate own value, because we don’t have private RSA key. But we can copy this value from another .IDB file :)

    I googled and found this .IDB file from Trustwavehere

    So let’s dump “$ original user” netnode in source .IDB file with following python script:

    netnode_dumper.py
    1
    2
    3
    
    import idaapi
    import binascii
    print(binascii.hexlify(idaapi.netnode('$ original user', 0, False).supval(0)))
    

    After that insert dumped value into this script and run it in IDA in destination .IDB:

    netnode_updater.py
    1
    2
    3
    4
    5
    
    import idaapi
    import binascii
    dumped_netnode_value ='111insert_your_hex_value_here111'
    idaapi.netnode('$ user1', 0, False).kill() # deleting netnode with plain text info
    idaapi.netnode('$ original user', 0, False).supset(0, binascii.unhexlify(dumped_netnode_value))
    

    Save, re-open database. Let’s check:

    Yep, we have .IDB file from Trustwave now :)

    And when IDA shows you this message:

    or “Sorry, this database has been created by a pirate version of IDA”.

    This means that “$ original user” netnode contains banned license info. But you still can copy this value from legit .IDB with hex editor.

     

  • 相关阅读:
    JAVA_SE基础——59.权限访问修饰符
    JAVA_SE基础——58.如何用jar命令对java工程进行打包
    JAVA_SE基础——57.有了包之后类与类之间的访问使用import语句
    JAVA_SE基础——56.包的创建
    JAVA_SE基础——55.自定义异常类
    JAVA_SE基础——54.异常
    JAVA_SE基础——53.什么是异常?
    Spring整合Mybatis
    Mybatis的ResultMap结果集映射、日志、分页
    Java中的值传递机制
  • 原文地址:https://www.cnblogs.com/Proteas/p/4031660.html
Copyright © 2020-2023  润新知