吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1639|回复: 5
收起左侧

[CrackMe] 编译时字符串加密,试一下强度

[复制链接]
mmffddyy 发表于 2023-11-25 22:22
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

项目地址 https://github.com/llxiaoyuan/oxorany

试一下强度如何

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

hunfeifei 发表于 2023-11-27 18:04
我可能有点投机取巧         ds:[77D00DB0]=77260DC0 (KernelBa.SetConsoleTextAttribute)  打个断点 追回去 上面的CMP 就是明文

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x
wtujoxk 发表于 2023-11-27 18:17
本帖最后由 wtujoxk 于 2023-11-27 18:21 编辑

楼上给了密码,算法在这里。断点打在 00A64710,寄存器就是明码!
[C++] 纯文本查看 复制代码
bool __thiscall sub_A64710(_DWORD *this, const char *a2)
{
  const char *v2; // esi
  _DWORD *v3; // edx
  unsigned int v4; // edi
  unsigned int v5; // edx
  unsigned int v6; // edx
  bool v7; // cf
  unsigned __int8 v8; // al
  unsigned __int8 v9; // al
  unsigned __int8 v10; // al
  int v11; // eax

  v2 = a2;
  v3 = this;
  v4 = strlen(a2);
  if ( this[5] >= 0x10u )
    this = (_DWORD *)*this;
  v5 = v3[4];
  if ( v5 != v4 )
    return 0;
  v7 = v5 < 4;
  v6 = v5 - 4;
  if ( v7 )
  {
LABEL_7:
    if ( v6 == -4 )
      goto LABEL_16;
  }
  else
  {
    while ( *this == *(_DWORD *)v2 )
    {
      ++this;
      v2 += 4;
      v7 = v6 < 4;
      v6 -= 4;
      if ( v7 )
        goto LABEL_7;
    }
  }
  v7 = *(_BYTE *)this < *v2;
  if ( *(_BYTE *)this != *v2
    || v6 != -3
    && ((v8 = *((_BYTE *)this + 1), v7 = v8 < (unsigned int)v2[1], v8 != v2[1])
     || v6 != -2
     && ((v9 = *((_BYTE *)this + 2), v7 = v9 < (unsigned int)v2[2], v9 != v2[2])
      || v6 != -1 && (v10 = *((_BYTE *)this + 3), v7 = v10 < (unsigned int)v2[3], v10 != v2[3]))) )
  {
    v11 = v7 ? -1 : 1;
    return !v11;
  }
LABEL_16:
  v11 = 0;
  return !v11;
}
lws0318 发表于 2023-11-28 10:17
lvbuqing 发表于 2023-11-29 09:59
代码写得有点问题,if的时候,把input变量通过oxorany()再比较,这样就是逆向oxorany算法了,不然都是在test的时候去取寄存器得值,没意思
 楼主| mmffddyy 发表于 2023-12-4 21:30
lvbuqing 发表于 2023-11-29 09:59
代码写得有点问题,if的时候,把input变量通过oxorany()再比较,这样就是逆向oxorany算法了,不然都是在tes ...

编译时字符串加密,只能应用于编译时常量啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 11:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表