新CrackMe160之139 - crackme%20n

OD载入程序, 搜索界面定位到成功关键词004012B4,向上找到00401142处GetDlgItemInt读取文本框数据处, 下好断点开始分析算法

  1. 00401152 数字需要>10000000
  2. 004011F0 ~ 0040121E 注册码从自身除到1都不能有余数,那就是需要1千万以上的质数
    注册机:
#include <stdio.h>

int IsPrime(int n);

int main() {
	int i;
	for(i=10000001; i<20000000; i++){
		if(IsPrime(i))
		{
			printf("注册码: %d\n", i);
			//break; 
		}
	}
	
	getchar(); return 0;
}

int IsPrime(int n)
{
    int i;
    if(n<2||(n!=2&&n%2==0))//n小于2或者n是不等于2的偶数,必然非素数
        return 0;
    else//这里n都是奇数
    {//这里使用上面刚提到的写法,用i代替开根号的过程
        for(i=3;i*i<=n;i+=2)//这里注意循环条件
        {//2必然不是因子,从3开始,每次递增2,直到sqrt(n)为止
            if(n%i==0)
                return 0;
        }
        return 1;
    }
}

运行示例:
注册码: 10000019
注册码: 10000079
注册码: 10000103
注册码: 10000121
注册码: 10000139
注册码: 10000141
注册码: 10000169
注册码: 10000189

 
 
本节高手录制的视频,点击前往查看

 
 
 
使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载

下面是我的OD的界面布局,我觉得这4个是最常用的界面,其它的我基本上没用到~
OD界面布局

posted @ 2024-12-30 14:35  hankerstudio  阅读(19)  评论(0)    收藏  举报