001/160 CrackMe Acid burn

Nag

以前没注意还有个 Nag 需要去掉,就是这个
在这里插入图片描述
现在补一下:
出现 Nag 窗口时暂停,查看堆栈,定位到 0x0042A1A9 下断点并重新运行
在这里插入图片描述
程序刚好断在这里,带参数一起 nop 掉即可
在这里插入图片描述

  • 右键-二进制-使用 nop 填充
  • 右键-复制到可执行文件
  • 右键-保存文件
    在这里插入图片描述
    运行保存出来的文件发现 Nag 已经去除。

Name Serial

先随便输入点东西试试
在这里插入图片描述
直接搜索字符串发现有2个,进入打上断点
在这里插入图片描述
程序在第二个断点处停下
堆栈中有一个疑似注册码的东西
在这里插入图片描述
直接粘贴进去验证通过
在这里插入图片描述

Serial

和之前的操作相同,都是搜索字符串下断点
序列号都是明文比较,直接就可以看到
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Name Serial 算法分析

虽然可以看到序列号,或者更暴力一点把跳转 nop 掉,但是那样就不好玩了,所以还是研究研究算法吧,用 IDA 分析简单一些
在这里插入图片描述
C语言写的简易注册机:
注意:username 必须使用 unsigned char,否则中文用户名会出错

#include <stdio.h>

int main()
{
	unsigned char username[200];
	int id;
	scanf("%s",username);
	id=41*username[0]*2;
	printf("CW-%d-CRACKED",id);
	return 0;
}

注册效果:
在这里插入图片描述

发布了32 篇原创文章 · 获赞 104 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/csg999/article/details/104031918