申请会员ID:zwo【申请通过】
1、申 请 I D:zwo2、个人邮箱:z3241280@gmail.com
3、原创技术文章:运行时注入方式破解最新Mac版010 Editor v9.0.1
流行的二进制编辑器 010 Editor已经更新到了9.0的大版本,这次大版本更新了模版和脚本功能,对于繁琐的二进制修改任务可以通过脚本化来实现,可谓大利器。
论坛之前已经有Mac版的7.0和8.0的破解,破解方式都是通过hopper硬改可执行文件。这次我破解的方式是动态库注入,好处有两点:1、不需要修改原版的一个字节 2、不需要额外对程序的自我完整性检测做工作。
首先根据购买的关键词buy,搜索定位到了核心逻辑函数 sub_10036c9b0,如图1
如图1
这是个相当复杂的逻辑,有接近100个逻辑块,幸好每个关键节点都会通过lea指令加载字符串,且字符串未经加密,简直就是送分题!
不难通过图2发现两处核心函数,并且如果这两函数返回特定的值,程序就会一直通往认证成功。
第一个函数sub_1000e9760为在线认证,返回0xe7后,变为本地认证。
第二个函数sub_1000e9680为认证状态,返回0xdb后,为已认证。这个返回值也跟前面的v8版本认证一致。
图2
最后编写代码hook掉原函数
void override(void) __attribute__ ((constructor));
int sub_1000e9680_tweak(int arg0, int arg1){
return 0xdb;
}
int sub_1000e9760_tweak(int arg0, int arg1, int arg2){
return 0xe7;
}
void override()
{
unsigned longsub_1000e9680 = image_vmaddr_slide(0) + 0x1000e9680; //auth status
unsigned longsub_1000e9760 = image_vmaddr_slide(0) + 0x1000e9760; // network
int (*orig_fun)(int arg0, int arg1, int arg2);
mach_hook_ptr((void*)sub_1000e9680, (void*)&sub_1000e9680_tweak, (void**)&orig_fun);
mach_hook_ptr((void*)sub_1000e9760, (void*)&sub_1000e9760_tweak, (void**)&orig_fun);
}
通过clang编译成dylib,得到EditorHack.dylib。
使用方法有两个,第一种:环境变量注入
DYLD_INSERT_LIBRARIES=./EditorHack.dylib /Applications/010\ Editor.app/Contents/MacOS/010\ Editor
第二种,通过注入原app内部的其它动态库实现。当然你也可以通过insert_dylib注入主程序自身。我选择的是QT动态库的其中一个libquazip.1.dylib。
在/Applications/010\ Editor.app/Contents/Frameworks目录下,把EditorHack.dylib放入,并替换libquazip.1.dylib即可。
自此,010 Editor成功破解。因为函数偏移计算的关系,附件中的破解补丁只适用于9.0.1。
附上补丁文件和相关分析的逻辑图。
I D:zwo
邮箱:z3241280@gmail.com
申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息。
ps:过程有些简单,鼓励原创期待以后有更好的作品,登录后把文章整理下发到脱壳破解区吧。 前来报道。以发布到脱壳破解区。
大佬新年快乐! zwo 发表于 2019-2-3 11:40
前来报道。以发布到脱壳破解区。
大佬新年快乐!
欢迎大佬!期待你的精彩表现!!!
页:
[1]