吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 1693|回复: 9

[原创] CrackMe-001 Acid burn.exe

[复制链接]
比海更深 发表于 2020-1-13 16:12
本帖最后由 比海更深 于 2020-2-2 14:05 编辑

运行程序,有弹框
1.png

软件界面
2.png

serial/Name有用户名密码登录
3.png

Senial有注册码登录
4.png

目标:
1.去掉弹框
2.逆向得出账号密码
3.逆向得出正确注册码

1.去掉弹框程序加载OD,搜索字符串找到弹框信息Welcome to this Newbies 所在位置,查看调用
5.png
在42F797下断,重新运行,确认是该函数调用弹框,程序返回到425643
6.png
直接把调用弹框的42563D函数Nop即可去掉弹框
7.png

2.逆向账号密码随意输入账号密码,失败后弹框“Sorry,The serial is incorect!”,OD字符串搜索,去到字符串调用处
8.png
往上看发现有一个函数调用,之后比较,结果大于或等于则跳转,猜测是比较用户名长度需要大于或等于4,在函数调用处下断,重新运行,分别输入123和123456进行验证,发现用户名长度不足4的直接弹框错误,满足条件的往下跳转对密码进行验证 9.png
去用户名一字节赋值给eax,这里我输入的用户名是123456,取一字节也就是"1"的Ascll 31,31*29*2,也就是FB2,结果存放在0x431750处
10.png
IMUL DWORD PTR DS:[0x431750]  这个寻址方式表明0x431750是一个全局变量,往上翻找到赋值的地方
11.png

接着就是字符串赋值,分别是"CW","-","CRACKED",之后将计算结果FB2转换的10进制4018与前面的字符串进行拼接,拼接结果是“CW-4018-CRACKED”,存放在Local.3中,之后用输入的密码654321和CW-4018-CRACKED作比较,即可成功
12.png
密码计算方式是用户名首字的Ascll码*29*2转十进制,替换%d即可CW-%d-CRACKED

3.逆向得出正确注册码
13.png
看着反汇编猜测 将Hello 和 Dude! 字符串拼接,然后和用户输入内容作比较
14.png
验证发现的却如此
15.png

注册算法补充:
[C++] 纯文本查看 复制代码
int main()
{
	char szTemp[MAX_PATH] = { 0 };
	printf("请输入账号:");
	scanf_s("%s",szTemp,MAX_PATH);
	long data=(long)szTemp[0];
	printf("序列号为");
	data = data * 0x29 * 2;
	printf("CW-%d-CRACKED\n",data);
	return 0;
}


文件下载:
链接:https://pan.baidu.com/s/1vA5M0dgKS4cCrw8X4TqMzw
提取码:runx
复制这段内容后打开百度网盘手机App,操作更方便哦

免费评分

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

查看全部评分

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

薛定谔消失的弦 发表于 2020-1-13 20:13
楼主可以发下到蓝奏云盘分享嘛
 楼主| 比海更深 发表于 2020-1-14 09:37
这个论坛里面有啊,多得是,你去找一下就能找到了
 楼主| 比海更深 发表于 2020-1-14 09:37
薛定谔消失的弦 发表于 2020-1-13 20:13
楼主可以发下到蓝奏云盘分享嘛

论坛里面有这个资源,你去找找看吧
薛定谔消失的弦 发表于 2020-1-15 22:28
比海更深 发表于 2020-1-14 09:37
论坛里面有这个资源,你去找找看吧

那个软件就是crackme软件么?? 谢谢楼主百忙之中回复
 楼主| 比海更深 发表于 2020-1-16 21:30
薛定谔消失的弦 发表于 2020-1-15 22:28
那个软件就是crackme软件么?? 谢谢楼主百忙之中回复

就是《》160个crackme》系列中的第一个
YenKoc 发表于 2020-2-10 22:20
老哥,那段分析注册码的中间的好几个函数,是怎么看出它的功能是啥的,我是个小白,单独拆开看汇编一行一行能懂,但是联系起来就不知道咋办了。。。求楼主解答,感谢
 楼主| 比海更深 发表于 2020-2-10 23:22
YenKoc 发表于 2020-2-10 22:20
老哥,那段分析注册码的中间的好几个函数,是怎么看出它的功能是啥的,我是个小白,单独拆开看汇编一行一行 ...

其实没有必要每个函数都仔细分析的,我这里看到字符串,就直接输入尝试了。一般注册码都会有一个比较,找到那个比较函数,就能知道正确的注册码,这里的字符串比较地址是42F4D0,函数是CALL 4039FC,当程序运行到这里,EAX存放的是我们输入的注册码“123456”,而EDX是字符串“Hello Dude!”,如果两者相等,程序继续执行,如果不相等,跳转到42F4F1处,执行42F504的地址,弹出“Try Again!!”窗口,这里可以通过修改42F4D5的JNZ标志位,将ZF置1,这是,程序就会弹框“God Job dude!!=)”,表示你输入正确,当然,你也可以直接输入正确注册码“Hello Dude!”
YenKoc 发表于 2020-2-11 09:48
老哥,我的意思就是那个几个比如十六进制转成十进制的汇编函数,这个是怎么分析出来的,是直接分析汇编,分析出来的吗,那可能是我汇编太菜了。。。。
hua111 发表于 2020-2-11 11:52
非常看看看
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2020-8-10 09:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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