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: idasdk\include\netnode.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.

 

最新文章

  1. Blackfin DSP(七):用SPORT口模拟SPI
  2. Particles.js基于Canvas画布创建粒子原子颗粒效果
  3. Unity3d之音效播放和调用手机震动
  4. Unix文件操作
  5. python 函数形参四种格式
  6. pom.xml配置文件配置jar(不用记,快速配置)
  7. springmvc基础学习3---注解简单理解
  8. PAT 1003. Emergency 单源最短路
  9. 南京邮电大学java第二次实验报告
  10. Linux Centos7.x下安装部署Jira和confluence以及破解方法详述
  11. Microsoft SQL Server 17导出xlsx文件时报错:The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. (System.Data)
  12. Postman & API
  13. P2P的原理和常见的实现方式
  14. JAVA自学笔记24
  15. unity中Event Trigger组件应用代码
  16. ELF格式探析之三:sections
  17. java框架篇---Struts2 本地化/国际化(i18n)
  18. hadoop -- fsck
  19. JBoss服务器优化
  20. 你了解for循环吗

热门文章

  1. KafkaOffsetMonitor
  2. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(11)-验证码实现和底层修改
  3. shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、功能、select
  4. cocos2d-x多分辨率和随后的自适应CCListView的bug修复
  5. [ 单例、代理 & 通知 ]
  6. HDU 1251 统计拼图 Trie解决问题的方法
  7. 20款最好的免费的IDES和编辑器
  8. ApacheBench(ab)使用简介
  9. 原生态纯JavaScript 100大技巧大收集---你值得拥有
  10. oracle中的DECODE