吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2345|回复: 3
收起左侧

[原创] 160个CrakeMe之Acid_burn

[复制链接]
WUXING_TIANCHEN 发表于 2022-3-11 22:05
1  实现打开软件熟悉下

先分析第一个 注册码和名称

发现不正确会提示

2 x96Dbg附加
    将MessageBox -A -W -ExA -ExW 全都下断点   注意下到返回的地方
image.png
在MessageBoxA 断下了 然后我们F7

我们到了这个地方
image.png
先观察下 发现并没有检测
3 然后 ctrl+F9 跳到上一级
image.png
明显是判断的   
#1  简单方法直接nop
[C++] 纯文本查看 复制代码
0042FAFE    | E8 F93EFDFF               | call acid burn.4039FC            

image.png
image.png
#2 分析下名称和注册码
image.png
edx 是我写的  猜测eax=CW-4018-CRACKED 是注册码 在之前改调edx的内容改为 eax
发现也成功的 然后我们改变名称  发现 注册码不一样了
4 观察发现 注册码是在上面得出  在这一级的头部下断点
image.png
F8往下跟
看传参和返回
image.png
这里出现的4018注册码
进来函数发现是得到eax的
image.png
确定eax=431750然后高亮[431750]
image.png
重新来一遍 在42F9B5下断点 在内存查看431750 记得刷新  可以使用CE 和内存断点'
这边使用的是内存断点
#define [431750]  值
image.png
[C++] 纯文本查看 复制代码
值=41  // ov dword ptr ds:[0x00431750], 0x29      

image.png
这里开始
movzx一般用于将较小值拷贝到较大值中
eax=0x31 =='1'
imul 有符号乘法,将被乘数与乘数均作为有符号数
[C++] 纯文本查看 复制代码
值=值*第一个字符  =2009  本例中 第一个字符是'1'=0x31=49

mov eax, 50dword ptr ds:[0x00431750]
add dword ptr ds:[0x00431750], eax
这二句应该都看得懂 就是 值=值+值 就是值*2  
完整得出答案  

检验   
image.png
第一个字符是'2'==50  
(41*50)*2=4100

image.png

成功

算法   注册码=CW-(string_name[0]*41)*2-CRACKED

5 我们最后做个一键填写名称和注册码的机器 下面源码

[C++] 纯文本查看 复制代码
#include <Windows.h>
#include <iostream>
#include <atlstr.h>
using namespace std;
int main()
{
    srand(time(NULL));
    HWND Handle = FindWindowW(L"TNS", L"Name Serial");
    HWND HandleRegistration = FindWindowExW(Handle, NULL, L"TEdit", NULL);
    HWND HandleName = FindWindowExW(Handle, HandleRegistration, L"TEdit", NULL);
    HWND HandleCliek = FindWindowExW(Handle, NULL, L"TBitBtn",L"&Check it Baby !");
    CString str = L"天晨";
    int Name = rand();
    CString str2;
    str2.Format(L"%d", Name);
        CString str3;
    str3.Format(L"CW-%d-CRACKED", (str2[0] * 41) * 2);
    //int i = ::SetWindowTextA(HandleName,(LPSTR)str.c_str());
    SendMessageW(Handle, WM_SETTEXT, 0, (LPARAM)str.GetBuffer());
    SendMessageW(HandleName, WM_SETTEXT, 0, (LPARAM)str2.GetBuffer());
    SendMessageW(HandleRegistration, WM_SETTEXT, 0, (LPARAM)str3.GetBuffer());
    SendMessageW(HandleCliek, WM_LBUTTONDOWN, 0, NULL);
    Sleep(10);
    SendMessageW(HandleCliek, WM_LBUTTONUP, 0, NULL);
    int erro=GetLastError();
    system("pause");
}

运行即
image.png
7 第二个简单提下
    仿造上面即可 serial=Hello Dude!
image.png
image.png
image.png
image.png

免费评分

参与人数 1威望 +1 吾爱币 +20 热心值 +1 收起 理由
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

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

oclassic 发表于 2022-3-13 08:15
可惜我连c++都不会,只会vb
 楼主| WUXING_TIANCHEN 发表于 2022-3-13 09:44
oclassic 发表于 2022-3-13 08:15
可惜我连c++都不会,只会vb

额 核心功能是操作系统的API 其他函数vb应该有吧(不清楚)
cjc3528 发表于 2022-3-15 18:20
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-16 02:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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