IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 1 160Crackme第一个之Acid_burn 和 自动注册程序 -> 正文阅读

[C++知识库]1 160Crackme第一个之Acid_burn 和 自动注册程序

1 实现打开软件熟悉下

在这里插入图片描述

先分析第一个 注册码和名称
在这里插入图片描述

发现不正确会提示
在这里插入图片描述

2 x96Dbg附加
将MessageBox -A -W -ExA -ExW 全都下断点 注意下到返回的地方
在这里插入图片描述

在MessageBoxA 断下了 然后我们F7

我们到了这个地方 

在这里插入图片描述

先观察下 发现并没有检测

3 然后 ctrl+F9 跳到上一级

在这里插入图片描述

明显是判断的
#1 简单方法直接nop

`0042FAFE                                  | E8 F93EFDFF               | call acid burn.4039FC`                              |

在这里插入图片描述
在这里插入图片描述

2 分析下名称和注册码

在这里插入图片描述

edx 是我写的 猜测eax=CW-4018-CRACKED 是注册码 在之前改调edx的内容改为 eax
发现也成功的 然后我们改变名称 发现 注册码不一样了

4 在这一级观察发现 注册码是在上面得出 在这一级的头部下断点

在这里插入图片描述

F8往下跟
看传参和返回
在这里插入图片描述

这里出现的4018注册码
进来函数发现是得到eax的

在这里插入图片描述

确定eax=431750然后高亮[431750]
在这里插入图片描述

重新来一遍 在42F9B5下断点 在内存查看431750 记得刷新 可以使用CE 和内存断点’
这边使用的是内存断点
#define [431750] 值

在这里插入图片描述

=41  // ov dword ptr ds:[0x00431750], 0x29

在这里插入图片描述

这里开始
movzx一般用于将较小值拷贝到较大值中
eax=0x31 ==‘1’
imul 有符号乘法,将被乘数与乘数均作为有符号数

=*第一个字符  =2009  本例中 第一个字符是'1'=0x31=49

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

检验

在这里插入图片描述

第一个字符是’2’==50
(41*50)*2=4100

在这里插入图片描述

成功

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

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

下面源码

#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");
}

运行即
在这里插入图片描述

7 第二个简单提下
仿造上面即可 serial=Hello Dude!

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 21:33:09  更:2022-03-13 21:34:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:02:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码