况雪柳 发表于 2025-9-28 19:00:53

破解练习-CRACKME001

001-注册算法分析

一、工具和调试环境


[*]动态调试工具:x64dbg
[*]系统环境:win10 1909
二、分析Serial/name的算法

由于Serial里面就是一个字符串比较,没有啥算法,这里就不详细说了,大概就是通过搜索字符串Failed,就能定位到关键位置,Serial直接可以在栈中观察到,为:Hello Dude!。所以我们主要分析Serial/name的注册算法。
直接使用提示字符串验证,得到错误提示如下

那么我们直接搜索字符串Sorry,得知有两个地方使用该字符串,都设置上断点,然后重新验证,成功断在0x0042F826处,先分析这个,另一个后面再说

断下之后向上定位到关键算法如下
0042FA87   | 8B45 F0         | mov eax,dword ptr ss:      | :"Please enter your name !" ; 获取name首地址
0042FA8A   | 0FB600          | movzx eax,byte ptr ds:      | ; eax = name 取出name的第一个字符存放在eax中
0042FA8D   | F72D 50174300   | imul dword ptr ds:         | 00431750:L")"; ")" aiscii码为 0x29eax = name * 0x29
0042FA93   | A3 50174300       | mov dword ptr ds:,eax      | ; key = name * 0x29
0042FA98   | A1 50174300       | mov eax,dword ptr ds:      | ;
0042FA9D   | 0105 50174300   | add dword ptr ds:,eax      |        ; key = name * 0x29 * 2通过算法key = name * 0x29 * 2算出key后,紧接着拼接得到Serial,格式为:CW-key-CRACKED
三、算法核心代码模拟

char* GetSerial(char* szName)
{
    static char szSerial = {};
    if (strlen(szName) < 4)
    {
      MessageBox(NULL, "Name至少需要4位", "温馨提示", MB_OK);
      return nullptr;
    }

    int key = szName * 0x29 * 2;
       
    sprintf(szSerial, "CW-%d-CRACKED", key);
    return szSerial;
}
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

时思美 发表于 2025-11-18 12:55:41

谢谢楼主提供!

殳世英 发表于 2025-12-5 14:39:23

用心讨论,共获提升!

红弘丽 发表于 2025-12-15 19:07:57

不错,里面软件多更新就更好了

蓬庄静 发表于 2025-12-31 21:56:09

懂技术并乐意极积无私分享的人越来越少。珍惜

姊囝 发表于 2026-1-14 04:31:59

用心讨论,共获提升!

窖咎 发表于 2026-1-14 14:30:48

收藏一下   不知道什么时候能用到

貊淀 发表于 2026-1-20 01:07:43

东西不错很实用谢谢分享

僻嘶 发表于 2026-1-21 06:38:57

前排留名,哈哈哈

挫莉虻 发表于 2026-1-21 18:20:14

不错,里面软件多更新就更好了

瘴锲如 发表于 2026-1-25 03:04:22

过来提前占个楼

频鹏凶 发表于 2026-1-27 14:31:16

感谢发布原创作品,程序园因你更精彩

扎先 发表于 2026-1-28 05:14:11

谢谢分享,辛苦了

步雪卉 发表于 2026-1-29 02:07:54

谢谢分享,辛苦了

毡轩 发表于 2026-1-29 07:41:59

感谢分享

吕梓美 发表于 2026-1-31 19:30:45

感谢,下载保存了

窝酴 发表于 2026-2-1 04:07:31

感谢分享,学习下。

滥眩 发表于 2026-2-4 07:13:07

谢谢分享,辛苦了

周冰心 发表于 2026-2-7 11:32:47

谢谢分享,试用一下

益竹月 发表于 2026-2-8 01:55:53

热心回复!
页: [1] 2
查看完整版本: 破解练习-CRACKME001