crackme2
2020-02-13 02:21:36 Author: bbs.pediy.com(查看原文) 阅读量:230 收藏

[原创]crackme2

2020-2-3 21:04 429

Crackme2

Lixu

2020年2月3日 19:27:05

还是来自看雪的一个crack,小弟在这里献丑了,希望大佬纠正错误

工具:OD,peid

1. 使用PEID瞅一下,编写的难不成是个汇编大佬?直接进OD,

 

2.进来一看,那是相当的熟悉,前面啥都没有,

 

3.查找一下所有模块所使用的API函数,试试GetDlgItemTextA,很显然使用了

 

4. 定位过来之后,我们就要开始分析算法了。

  1 先获取name的大小,name<4的话就直接结束,提示错误

  2 第一个循环是将每个字母的hex值*4再进行累加,也就是说你可以输入好多字母,但是不会加空格 的hex值。

  3 第二个循环进行strlen(name)次,每次循环都是((ebx-1)*2+(ebx-1))-1计算后再放入ebx,然后进行下一次循环,最后放在ebx

 

5. 然后将上两次的计算结果按照 BS-%lx-%lu 的格式存入一个缓冲区,%lu是将第一次的循环结果按照无符号长整形十进制输出,%lx是按照长整形16进制输出,然后就是获取第二个对话框的数据和wsprintf缓冲区的数据进行比较。

 

6. 注册机:这次的算法比较简单,不足的是这个crack的密码只能是大写,小弟这里献丑了

#include "stdafx.h"

#include "string.h"

#include <stdlib.h>

void main()

{  

unsigned long a,b=0x654789;

 int len,num=0,num2=0;

 char str[50];

 printf("请输入Name(大于3)\n");

 scanf("%s",str);

 len=strlen(str);

 for (int i=0;i<len;i++)

 {

a = str[i]*4;

num+=a;

b = ((b-1)*2+(b-1))-1;

 }

 printf("BS-%x-%d\n",b,num);

getchar();

}

2020安全开发者峰会(2020 SDC)议题征集 中国.北京 7月!


文章来源: https://bbs.pediy.com/thread-257471.htm
如有侵权请联系:admin#unsafe.sh