-
-
[原创]010Editor最新版9.0.1超详细分析&&暴力破解&&注册机源码分享
-
发表于:
2019-3-19 21:58
8725
-
[原创]010Editor最新版9.0.1超详细分析&&暴力破解&&注册机源码分享
萌新第一次发帖,
瑟瑟发抖...
以下是对010Editor最新版本v9.0.1的破解过程,因为本人比较菜,所以分析的特别详细..感谢15pb的老师们
010 Editor是一款专业的文本编辑器和十六进制编辑器,它可以编辑文本文件,包括 Unicode 文件、批处理文件、C/C++、XML 等,功能全面且强大,可以说是目前最强大的十六进制编辑器了。
实现平台:
Win7
工具:
Exeinfo PE,OD
首先对010Editor用Exeinfo PE工具进行扫描,发现语言是vs2013版本c++。
运行010Editor,只有30天的免费使用时间。
1. 找到注册的窗口
2. 测试注册窗口的反应
3. 猜测API,API下断动态调试/敏感字符串搜索
4. 动态分析,查找关键跳转,修改代码
5. 查找关键call,修改代码
CreateWindowExW在user32.dll中被调用,所以模块锁定user32.dl,CTRL+N名称搜索CreateWindowExW进行下断。
运行程序,输入名字和密码,点击确定,OD中会断到CreateWindowExW函数。点击K进行栈回溯。
栈回溯,分析得知是Qt进行编写的,但调用CreateWindowExW的是在010Editor中,由于出现的函数较少,分别点击进入查看
根据特殊字符串,定位到函数(寻找此地址时,还可以使用字符串搜索Invalid name or password直接跳转到此处)。
跳转到之前的函数地址
根据跳转继续回溯,cmp edi,0xDB,不相等时,会一直跳转到执行”Invalid name or password...”,那么推测当edi=0xDB时,才会执行正确的语句。
继续回溯,找到关键函数,如果要密码正确,edi=0xDB。经分析1339D3B函数,当eax=0x2D时,edi=0xDB,所以修改函数133A92F,进入133A92F发现有需要重定位的地方,所以先取消重定位。
使用010Editor取消重定位
对133A92F函数直接进行赋值后即返回。
而在1339D3B函数中,当eax=2D时,返回值才会返回DB。中间算法有些长,截取关键的赋值部分。
序列号提交后会联网和官网中的序列号进行比较,如果官网中没有对应的序列号,就会失效。去掉网络验证
经测试,1339D3B函数内这里需要强制跳转,需要强制更改为jmp指令。
有时网络不稳定时,会出现错误,所以要修改网络验证函数的返回值为1。
选中更改区域,右键保存所有更改。
至此,已暴力破解成功。
运行程序,一切正常。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课