首页
社区
课程
招聘
终于跟踪分析出算法了
2005-1-23 09:00 17016

终于跟踪分析出算法了

2005-1-23 09:00
17016
非常感谢大家,是你们的鼓励,让我不厌其烦地多次细致地跟踪分析,终于得出了算法。

真正尝到了破解的辛酸苦辣!

现在是到了写注册机的时候了,但有了个问题,请大家帮助。

算法是这样的:

密码是一个8位数,要求符合:

(百万位数 - 十万位数)*1000  + (个位数 - 千万位数)*100 + (百位数 - 千位数)*10 + 万位数 - 十位数 =123

如何求得此8位整数?列出全部符合条件的8位数

我摸索了好长时间,没能写出,请大家帮助我看看。

我只能用循环语句进行穷举,但太慢了,不符合常理。

小弟太菜了。盼!

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞7
打赏
分享
最新回复 (30)
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qwert 2005-1-23 09:47
2
0
除了穷举,还有其他方法吗?
雪    币: 515
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
RoBa 16 2005-1-23 11:04
3
0
百万位=十万位
个位=千万位+1
百位=千位+2
万位=十位+3

穷举四位就可以了,这样不算很慢。
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qwert 2005-1-23 11:06
4
0
谢谢!太谢谢了!
雪    币: 515
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
RoBa 16 2005-1-23 11:20
5
0
不对不对,还有相减为负的情况,有点麻烦了……

不过为什么非得把所有的都求出来呢?
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
lzqgj 6 2005-1-23 11:23
6
0
构造数字:0*1000+1*100+2*10+3=123
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
东方青石 2005-1-23 11:37
7
0
为什么要穷举呢?
只要部分都行
雪    币: 176
活跃值: (117)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
larblue 2 2005-1-23 12:44
8
0
int main(int argc, char *argv[])
{
	int a,b,c,d,e,f,g,h;
	int key;
	long i;
	printf("有效的序列号:\n");
	for (i=10000000;i<=99999999 ; i++)
	{
		a=i/10000000%10;
		b=i/1000000%10;
		c=i/100000%10;
		d=i/10000%10;
		e=i/1000%10;
		f=i/100%10;
		g=i/10 %10;
		h=i%10;
key= (b-c)*1000+(h-a)*100+(f-e)*10+d-g;
 if (key==123)
 {
	 printf("%d\n",i);
 }
	}
return 0;
}


共8887个耗时41秒计算比你的穷举快多了
下面是算出来的序列号
附件:key.rar
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qwert 2005-1-23 12:59
9
0
太感谢各位!谢谢
雪    币: 233
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dssz 2005-1-25 02:18
10
0
最初由 larblue 发布
[CODE]
int main(int argc, char *argv[])
{
int a,b,c,d,e,f,g,h;
int key;
........


兄弟的代码也是穷举啊,范围从10000000到99999999
雪    币: 175
活跃值: (211)
能力值: ( LV12,RANK:330 )
在线值:
发帖
回帖
粉丝
DonQuixote 8 2005-1-27 22:33
11
0
设:
百万位数a,十万位数b,个位数c,千万位数d,百位数e,千位数f,万位数g,十位数h

那么问题等价于求
(a-b)*1000+(c-d)*100+(e-f)*10+(g-h)=123
的所有解,其中所有未知数取值范围是0~9

上式可以写成:
(a*1000+c*100+e*10+g)-(b*1000+d*100+f*10+h)=123

设:x=a*1000+c*100+e*10+g , y=b*1000+d*100+f*10+h

那么方程为x-y=123,其中x,y都是4位整数,这样就可以看成两个4位数相减

不知道有没有百万位!=0的要求,这里假设没有

那么y=x+123,定义域是0~9876,值域是123~9999

求出所有的(x,y),这样就知道abcdefgh,交换位置重新排列即可

个数为9877个,如果考虑百万位!=0还要少1000个左右,结果和larbule兄弟的应该差不多
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
注定我不平凡 2005-3-1 11:39
12
0
强,学习了
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
魔度众生 2005-5-1 13:58
13
0
好东西,谢谢分享
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
liuh 2005-5-1 14:10
14
0
强,学了不少!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lmcz716 2005-5-7 23:48
15
0
厉害 ,学习
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Napeleon 2005-5-20 11:13
16
0
看完有点收获,谢谢!
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
aNUiz 2005-6-26 17:41
17
0
我觉得还可以优化:
设这个数是hgfedcba,那么:
1000(g-f)+100(a-h)+10(c-d)+(e-b)=123
设 M=g-f  N=a-h  I=c-d J=e-b (-10<M,N,I,J<10,是整数(-9,-8,...8,9))
那么:M=0,1
|_M=0时:100(a-h)+10(c-d)+(e-b)=123
| |_N=1,2
| |__N=1: 10I+J=23 -> (I,J)={(2,3),(3,-7)}
| |__N=2: 10I+J=-77 -> (I,J)={(-7,-7),(-8,3)}
|
|_M=1时:100(a-h)+10(c-d)+(e-b)=-877
  |_N=-8:  10I+J=-77 -> (I,J)={(-7,-7),(-8,3)}
  |_N=-9:  10I+J=23 -> (I,J)={(2,3),(3,-7)}
于是(M,N,I,J)一共有这么几中情况:
(0,1,2,3)
(0,1,3,-7)
(0,1,-7,-7)
(0,1,-8,3)
(1,-8,-7,-7)
(1,-8,-8,3)
(1,-8,2,3)
(1,-8,3,-7)
从 M=g-f  N=a-h  I=c-d J=e-b
就很好找了吧:
g=f,a-h=1,c-d=2,e-b=3;
或.....
或.....
好了,把结果一组合,简单多了。
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
aNUiz 2005-6-26 17:42
18
0
我觉的没分析错吧?
这样一看,结果还不少呢!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
addresses 2005-8-7 00:45
19
0
算出来的怎么都是按顺序呀~~!
何意思呀。不大懂啊~~!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pbstudy 2005-8-8 21:20
20
0
不懂你写些什么?????
雪    币: 419
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sgzwiz 2005-8-23 19:51
21
0
goooooooooood
雪    币: 419
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sgzwiz 2005-8-23 19:51
22
0
看完有点收获,谢谢!
雪    币: 419
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sgzwiz 2005-8-23 19:52
23
0
看完有点收获,谢谢!!!!!!!!!!
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
networks 2005-10-17 19:09
24
0
好好学习,真强
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
oakyong 2005-11-10 22:46
25
0
这才是交流。
游客
登录 | 注册 方可回帖
返回