复现 010 editor 最新版 (绕注册)

admin 2022年6月5日11:11:18评论3 views字数 3612阅读12分2秒阅读模式
# 事由 #

好好的010 说不行就不行了 一脸懵逼

复现 010 editor 最新版 (绕注册)

发现原来是之前送了一个月试用期现在已经到期了

充钱?那必然是不可能的

你说巧不巧 我正想找点软件可以练手re一下呢

那就让我们一起看一看这款神奇的软件

# 开始 #

基本面

复现 010 editor 最新版 (绕注册)

无壳 64位看起来应该没啥问题

静态分析

复现 010 editor 最新版 (绕注册)

这文件一大分析起来确实挺费劲的哈

信息检索

根据我们一开始的注册信息

复现 010 editor 最新版 (绕注册)

搜索一下字符串

复现 010 editor 最新版 (绕注册)

找到了主要的数据段但目前是图形视图界面

复现 010 editor 最新版 (绕注册)

反编译

反编译下去看看C的伪代码

复现 010 editor 最新版 (绕注册)

关键信息

往上翻翻可以看到明显的成功提示

复现 010 editor 最新版 (绕注册)

 v11 = sub_140009EA8(qword_14074D860, 12i64, 18535i64); v12 = qword_14074D860;   } if ( v11 == 0xDB )         {           sub_1400051A5(v12, v39);           v36 = QString::fromAscii_helper("MMMM d, yyyy", 12i64);           v20 = (const struct QString *)QDate::toString(v39, v40, &v36);           v21 = (const struct QString *)QString::fromUtf8(                                                     &v37,                                                                                         "Password accepted. This license entitles you to:n"                                                                                         "n"                                                                                         "  - Free Upgradesn"                                                                                         "  - Free Supportn"                                                                                         "  - Free Repository Updatesn"                                                                                         "n"                                                                                         "until ",                                                                                         0xFFFFFFFFi64);

代码分析

可以看出关键就是当if语句成立即可

也就是让v11=219(0xDB)

又因为 v11 = sub_140009EA8(qword_14074D860, 12i64, 18535i64);

那我们继续追踪sub_14009EA8函数

复现 010 editor 最新版 (绕注册)

没有啥内容继续跟踪

复现 010 editor 最新版 (绕注册)

找到了算法的主要过程

__int64 __fastcall sub_14032F1A0(__int64 a1, __int64 a2, __int64 a3){  unsigned int v3; // edi  __int64 result; // rax  int v6; // eax  int v7; // eax  int v8; // eax  unsigned int v9; // ecx  int v10// eax  unsigned int v11; // ecx  int v12; // eax  unsigned int v13; // ecx  v3 = a2;  if ( *(_DWORD *)(a1 + 60) )    return 275i64;  v6 = sub_140007CC5(a1, a2, a3);  switch ( v6 )  {    case 45:      return 219i64;    case 78:      v12 = sub_14000A880(a1, v3);      v13 = 524;      if ( v12 != 23 )        v13 = 237;      result = v13;      break;    case 231:      return 375i64;    default:      v7 = sub_14000A880(a1, v3);      if ( v7 == 23 )        return 113i64;      if ( v7 != 42 )      {        if ( v7 == 312 )        {          v8 = sub_14000775C(a1);          v9 = 47;          if ( v8 == 419 )            v9 = 249;          return v9;        }        return 375i64;      }      v10 = sub_14000775C(a1);      v11 = 375;      if ( v10 == 419 )        v11 = 249;      result = v11;      break;  }  return result;}

虽然它写了这么多算法过程但是最主要的就是最终返回的结果了

没错就是return result

我们将鼠标指针移到return result一行

按tab转为图形界面

复现 010 editor 最新版 (绕注册)

mov     eax, 113hmov     rbx, [rsp+28h+arg_0]add     rsp, 20hpop     rdiretn

可以清晰看到在这程序框中一定是包含了result的

又因为在这几行汇编中只有一个113h的十六进制数字被送到了eax中

可以猜测这个eax最终就会被赋值到v11中并成为v11的最终结果进行比较

eax往往也是具有这样的作用

很多程序通用的做法就是把计算的结果(函数的返回值)放到eax里面

在这个程序框的上层函数是有一个判断分支的

很明显这个分支不是我们想要的

所以我们要解决了它

复现 010 editor 最新版 (绕注册)

sub_14032F1A0 proc neararg_0= qword ptr  8mov     [rsp+arg_0], rbxpush    rdisub     rsp, 20hcmp     dword ptr [rcx+3Ch], 0mov     edi, edxmov     rbx, rcxjz      short loc_14032F1C5

最后判断条件jz      short loc_14032F1C5

若相等(cmp     dword ptr [rcx+3Ch], 0)

就会转跳到short loc_14032F1C5所以我们只要将这个函数给nop掉的话

这个程序一定会运行我们想要的程序

打补丁

复现 010 editor 最新版 (绕注册)

鼠标移动到这个函数位置

右键 找到  Keypatch -> patcher

复现 010 editor 最新版 (绕注册)

也可以用快捷键alt+ctrl+k来打开

复现 010 editor 最新版 (绕注册)

输入nop(no operation)点击patch

patch之后的样子

复现 010 editor 最新版 (绕注册)

接下来我们再将eax的值修改为我们想要的数值0DBh(219)

复现 010 editor 最新版 (绕注册)

点击patch

完成

复现 010 editor 最新版 (绕注册)

保存程序

复现 010 editor 最新版 (绕注册)

edit->patch progeam->apply patches to input file...

复现 010 editor 最新版 (绕注册)

ok

# 见证奇迹 #

           复现 010 editor 最新版 (绕注册)                  

自己动手破解软件还是非常好玩的

感谢b站up主和吾爱破解论坛的大佬提供的思路

在这谢过了

十分感谢

# 感谢 #

参考 :最新版010editor破解 - 哔哩哔哩 (bilibili.com)

参考:秒X 010Editor - 『脱壳破解区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

原文始发于微信公众号(齐鲁师院网络安全社团):复现 010 editor 最新版 (绕注册)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月5日11:11:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   复现 010 editor 最新版 (绕注册)http://cn-sec.com/archives/1088610.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息