吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1741|回复: 7
上一主题 下一主题
收起左侧

[CrackMe] 【Web】CrackMe 花费了我一下午

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

后天就开学了,想着再上上论坛,发现好久没写Crackme了,于是就有了这个作品。
还是老样子,密码唯一,有很多提示(密码提示很多次了)。

没有Edge的用win10版本
两个一样的





本帖子中包含更多资源

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

x

免费评分

参与人数 5吾爱币 +4 热心值 +5 收起 理由
collinchen1218 + 3 + 1 祝楼主20250607好运!加油!
DRZH + 1 用心讨论,共获提升!
celiuo + 1 + 1 谢谢@Thanks!
RustAbra + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Issacclark1 + 1 谢谢@Thanks!

查看全部评分

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

推荐
Arcticlyc 发表于 2024-7-27 19:52


以下来自通义千问

为了找到满足条件的输入值,我们需要逆向工程函数 complexLogic 的操作,并找到使得函数返回 true 的初始值 t

我们首先回顾一下函数中的关键步骤:

  1. 输入值 t 被转换成整数 r
  2. e = ~r (按位取反 r)。
  3. o = 31 * e (将 e 乘以 31)。
  4. n = o - 2024 (从 o 中减去 2024)。
  5. W = n << 2 (将 n 左移 2 位)。
  6. d = W / 7 (将 W 除以 7)。
  7. a = d + 50 (向 d 加上 50)。
  8. u = Math.floor(13 * a) (将 a 乘以 13 并向下取整)。
  9. 如果 u 不等于 3312927722,则返回 false
  10. 循环计算 r 直到 c 达到 18。
  11. v = r
  12. 如果 v 等于 314937684510,则返回 true

现在,让我们从步骤 8 开始逆向操作,因为我们已经知道了 uv 的目标值。

逆向步骤 8:

  • u = Math.floor(13 * a)
  • a = (u / 13)
  • d = a - 50
  • W = 7 * d
  • n = W >> 2 (右移 2 位,相当于除以 4)
  • o = n + 2024
  • e = o / 31
  • r = ~e

逆向步骤 10:

  • 我们需要找到一个 r 的值,使得经过循环之后 v = r 等于 314937684510。

我们首先计算 uv 的逆向过程,然后再考虑循环的影响。

计算 u 的逆向过程:

  • u = 3312927722
  • a = (u / 13) = 254840594
  • d = a - 50 = 254840544
  • W = 7 * d = 1783883808
  • n = W >> 2 = 445970952
  • o = n + 2024 = 446173404
  • e = o / 31 = 14392690
  • r = ~e = -14392691

计算 v 的逆向过程:

  • v = 314937684510

我们需要找到一个初始值 r,使得在执行循环后得到 v

循环逆向:

  • 循环中 r 的变化由以下公式给出:
    • r = (r + c) * (c % 2 === 0 ? 2 : 3)

由于循环是从 c = 8c = 18,我们可以尝试逆向执行这个循环来找出原始的 r

让我们先尝试逆向执行循环,看看能否找到原始的 r

逆向循环:

  • 我们需要从 v = 314937684510 开始逆向。
  • c = 18c = 8,对每个 c 执行逆向操作。
  • 如果 c 是偶数,我们用 r / 2 - c 替代 r
  • 如果 c 是奇数,我们用 Math.floor(r / 3) - c 替代 r

现在我们开始逆向循环。

逆向循环示例:

  • c = 18: r = Math.floor(v / 3) - 18
  • c = 17: r = Math.floor(r / 3) - 17
  • c = 16: r = r / 2 - 16
  • c = 15: r = Math.floor(r / 3) - 15
  • c = 14: r = r / 2 - 14
  • c = 13: r = Math.floor(r / 3) - 13
  • c = 12: r = r / 2 - 12
  • c = 11: r = Math.floor(r / 3) - 11
  • c = 10: r = r / 2 - 10
  • c = 9: r = Math.floor(r / 3) - 9
  • c = 8: r = r / 2 - 8

现在我们将计算逆向循环的每一步。

let v = 314937684510;

// 逆向循环
for (let c = 18; c >= 8; c--) {
    if (c % 2 === 0) {
        v = v / 2 - c;
    } else {
        v = Math.floor(v / 3) - c;
    }
}

console.log(v);

让我们计算出这个逆向循环的结果。


以上来自通义千问




本帖子中包含更多资源

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

x

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
QwindF + 1 + 1 多谢解答,我果然还是留情了太心软了

查看全部评分

3#
 楼主| QwindF 发表于 2024-7-27 19:21 |楼主
好像忘记处理其他情况了,没有输出验证成功的都算失败吧(
图中有提示

本帖子中包含更多资源

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

x
4#
RustAbra 发表于 2024-7-28 00:42
1、格式化js会陷入无限正则解析;
2、debugger可以通过修改if条件强制绕过(typeof _0x585341 === _0x208e4a(539, "*kVT")处);
3、complexLogic是扔到console一行一行反混淆的
耗时接近2.5小时。
我牛逼!楼主更牛逼!
头像被屏蔽
5#
chenxingfeng 发表于 2024-7-28 08:06
提示: 该帖被管理员或版主屏蔽
6#
han5562877 发表于 2024-7-28 10:21
还是可以c一下的哈哈, 好久没做题了, 没想到是个exe

本帖子中包含更多资源

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

x
7#
DRZH 发表于 2024-7-28 15:26
Arcticlyc 发表于 2024-7-27 19:52
以下来自通义千问
[md]为了找到满足条件的输入值,我们需要逆向工程函数 `complexLogic` 的操作,并找 ...

大佬好强,学到很多
通义千问计算 u 的逆向过程那部分有点小错误,从n = W >> 2 = 445970952这一步往后按这样推的话最后是推不出r的,已知结果再从前往后推的话会发现1783883808这个数是由-627770872 << 2 得出来的

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Arcticlyc + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

8#
Arcticlyc 发表于 2024-7-28 16:29
DRZH 发表于 2024-7-28 15:26
大佬好强,学到很多
通义千问计算 u 的逆向过程那部分有点小错误,从n = W >> 2 = 445970952这 ...

你才是大佬
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-9-8 10:17

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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