本文主要是介绍4 160Crackme第四个之ajj.1 和 自动注册程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 打开软件熟悉
发现没有提示
看下介绍信息
2 找到切入
发现是Delphi编写
没有 接触过 搜索下Delphi反汇编
发现有个工具叫DeDeDark 中文的 下载然后分析
发现有点击的事件 是0x457E7C 和 0x457FB8 其中叫chkcode 是0x457C40 有点可疑
打开x96dbg看下 在单击的地方下个断点 然后稍微看下
3 具体分析
名称注册码使用 12345678 987654321
然后 Enter 确定
发现出来一串奇怪字符串
黑头Sun Bird14dseloffc-012-OK123456789 输入注册码
发现出现了图片
好的我们重新回去尝试破解
4 开始破解
1 直接在这个函数的入口下断点
发现自己出现的我们的注册码 我们思考 这个教chkcode 应该是检测通过一些手段返回 成功是否
我们找到会传递我们的注册码的
这个明显可以猜想是比较的 先nop下 证明是的 所以我们需要研究
“黑头Sun Bird14dseloffc-012-OK123456789” 是怎样来的
重新回到开头
我们在这就可以看出 不对劲 它先是分开 这个注册码的 中间的14 和后面的123456789都没有
这不就是说明那个是根据名称得到的吗
我们看验证下 就可以知道 14是名称的长度 后面是名称
先往下看
这先把14转位字符串 如果不确定据把这个改掉(前面数据)
又单独来个 名称 然后拼接 就不难知道注册码的规律
5 加密总结
注册码=黑头+ Sun Bird+(长度+5)+dseloffc-012-OK名称
6 编写程序(获得类名和窗口名称 可以使用spy++开源项目)
#include <Windows.h>
#include <iostream>
#include <atlstr.h>
using namespace std;
int main()
{srand(time(NULL));HWND Handle = FindWindowW(L"TForm1", L"快想办法注册呀! Ver: 1.0版");HWND HandleRegistration = FindWindowExW(Handle, NULL, L"TEdit", NULL);HWND HandleName = FindWindowExW(Handle, HandleRegistration, L"TEdit", NULL);HWND HandleCliek = FindWindowExW(Handle, NULL, L"TPanel",NULL);CString str = L"天晨";int Name = rand();CString str2;str2.Format(L"%d", Name*1000);CString str3;//注册码=黑头+ Sun Bird+(长度+5)+dseloffc-012-OK名称str3.Format(L"黑头Sun Bird%ddseloffc-012-OK%s", str2.GetLength()+5, str2.GetBuffer());//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_LBUTTONDBLCLK, 0, NULL);//Sleep(10);//SendMessageW(HandleCliek, WM_LBUTTONDBLCLK, 0, NULL);
}
需要自己点 …我有时自己点都没有用 不太明白
7 其他
1 其实可以自己查找字符串 一样的 有个注册成功
这篇关于4 160Crackme第四个之ajj.1 和 自动注册程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!