吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2334|回复: 12
收起左侧

[原创] 破解练习-CRACKME010

[复制链接]
逸聆君 发表于 2023-2-10 17:20

010-注册算法分析

一、工具和调试环境

  • PE信息查看工具:Die
  • 动态调试工具:x64dbg
  • 系统环境:win10 1909

二、分析用户名/注册码的算法

2.1运行程序

只有一个key编辑框和ok按钮,直接点击ok按钮会报错

010-01.png

2.2查壳

Die查壳,无壳,vb程序

2.3详细分析

依然是搜索字符串,直接上x64dbg搜索字符串

010-02.png

然后跳转,基本情况和009一样,下面直接放出关键算法位置

010-03.png

其中用到的函数基本在009我们已经熟悉过了,又添加了两个函数rtcBstrFromAnsivbaVarCat,前一个是将ascii字符转换为字符串,后一个是拼接字符串,只不过参数是变体。

这段代码就是将name的每个字符的ascii值加10,组成一个新的字符串

010-04.png

将之前新组成的字符串与上图红框框出来的字符串相比较,如果相等,就提示成功。

所以真正的key只要将上面框出来的字符串每个字符的ascii值减10,就可以得到一个固定的key值,为:aNoThEr oNe cRaCkEd !

三、算法核心代码模拟

char* GetKey9()
{
    char szName[] = "kXy^rO|*yXo*m\kMuOn*+";

    static char szKey[60] = {};

    for (int i = 0; i < strlen(szName); i++)
    {
        szKey[i] = szName[i] - 10;
    }

    return szKey;
}

四、API总结

rtcBstrFromAnsi

// 字符转换为字符串
// 栈传参
char* rtcBstrFromAnsi(char ch);

vbaVarCat

// 变体字符串拼接(pVariant1 = pVariant2 + pVariant3)
// pVariant2 和 pVariant3 字符串拼接在一起,结果放在 pVariant1中
// 返回值等于 pVariant1
Variant* vbaVarCat(Variant* pVariant1, Variant* pVariant2, Variant* pVariant3);

免费评分

参与人数 3吾爱币 +8 热心值 +2 收起 理由
xxyzbddgg218 + 1 谢谢@Thanks!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
夫子点灯 + 1 热心回复!

查看全部评分

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

p紫气东来 发表于 2023-2-10 18:45
来看看下了
戰龍在野 发表于 2023-2-10 21:00
lxhlw 发表于 2023-2-10 21:18
decency 发表于 2023-2-10 22:38
感谢分享,学习学习
zjh889 发表于 2023-2-11 16:43
楼主图文并茂,不错!
yangjunqing 发表于 2023-2-11 21:50
感谢分享,学习学习
0381lxb 发表于 2023-2-12 08:47
感谢分享!
9992979 发表于 2023-2-12 23:30
感谢分享,学习
bfm0755 发表于 2023-2-18 11:49
楼主图文并茂,不错!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-23 02:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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