新手逆向练习与详解(3)(详解带有源文件)39-creakme

百度云盘 链接 密码:1npk

现在本菜鸡头大死了 想写一个壳的 但是无奈自己有点菜 现在还不能写出来  唉  头大 只能没事来写一篇博客维持一下生活了  今天分析的CreakMe 有点难 真的很难 用的API断点比较多 而且这次自己参考了别人的博客(老脸一红 还是脸皮厚的写了原创) 然后我们看的这个其实我还没有写完 还有个替换的功能我还没有实现 瑟瑟发抖 看了别人的博客还是有点懵 所以不打算 自己写了   若是有想知道怎么替换的 可以私聊  我把那篇博客私发 因为作者并没有说可以转载 所以在这里我就先不写了

我这里和大家声明一下 我这个是文件 是来自吾爱破解的creakme 160   导航链接  帖子里面有更厉害的思路  

本帖是编号为39的creakme  

然后我们先看这个程序

大概就是这个页面 然后我们想观察这个程序 首先想到的就是F12 其实Windows API 查找也是可以的 看自己喜欢哪一个吧  然后我们就开始观察这个程序 用  GetDlgItemTextA  用   来断点 然后最后找到算法分析部分

上面的都有注释 这是处理name 然后算出key 

其实想爆破也很简单  

但是不能在窗口该跳转 也可能是我的跳转改的不对 在消息队列一直说我注册成功了!!然后程序就在那出不来了。。。。

然后下面就是写出代码的注册机部分  这里本来我是打算用纯c++写的 但是我发现  自己现在的编程能力下降的太快了  然后 我就去看了别人的贴子  人家用了c++嵌入汇编写的  在这里我就、粘贴出来按照大牛的思路敲出的代码!

#include "stdafx.h"
#include "windows.h"
#include "algorithm"
#include "iostream"
using namespace std;
void ror(DWORD *my,unsigned char n)
{
	_asm
	{
		mov ebx, my;
		mov eax, [ebx];
		mov cl, n;
		ror eax, cl;
		mov[ebx], eax;
	 }

}
int main()
{  
	unsigned long int key = 0x44414D4E;
	unsigned long int sum = 0;
	char name[256];
	printf("输入您想输入的名字!\n");
	cin >> name;
	int len = strlen(name);
	for (int i = 0; i<len; i++)
	{
		sum += name[i];
		ror(&key, 1);
		ror(&key, i);
		key ^= sum;
	}
	key |= 0x10101010;
	printf("%0x\n", key);
	system("pause");
    return 0;
}

vs 系列 亲测有用 然后难就难在 还要改图片 这个我看了一会没有理解 等我理解再更吧  听说重点在这

具体函数<user32.LoadBitmapA>

有什么错误还请指教!!!

猜你喜欢

转载自blog.csdn.net/qq_41071646/article/details/81364180