首页
社区
课程
招聘
[求助]第一阶段第二题答案提交
发表于: 2008-10-7 11:34 2646

[求助]第一阶段第二题答案提交

2008-10-7 11:34
2646
函数跟出来了,但是不会写注册机,最后追出来一个注册码,变了下用户名继续用上个注册码不知道算不算偷懒,本来想追一个不一样的,时间快到了,只好这样提交了
abcdefghijkl
301202120221112123131212223231100010201020102110001021
efghabcdijkl
301202120221112123131212223231100010201020102110001021
具体步骤如下:
1。程序运行起来后,下断bp GetWindowTextA点确定后返回用户代码,到达得到注册码处
2。跟进00403C8C  |.  E8 82D4FFFF   call    00401113
3。进入0040326C   .  E8 26060000   call    00403897 ;这里,发现为检验INT3和是否修改代码,找到关键跳转处nop掉,从而方便后续调试下断。
4。这段代码对name字段作变换,要求name为12个字符,且后续判断必须为abcdefghijkl,对name字段作判断,根据每个字母在abcdefghijkl中的顺序,产生一个name数组,参与后续运算
5。判断密码,密码为0123几位数字,且为54位
6。00403624   .  E8 5EDAFFFF   call    00401087                         ;  keycall
这个call为关键比较call,函数写出来了,但是没能写出逆算法,输入分别为name变换过的数组,一个输出数组,pass变换过的数组,要求最后得到的缓冲区数组为原始name+name。就目前观察得到的结论为密码第一位不能为0,第二,第三不能一样且不能为3,第不知道判断是否有误。
7。
比较晚了,又没写出注册机,分数应该非常低,不过作这样的题很有趣,谢谢诸位评委了

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 11394
活跃值: (3391)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
2
根据您的提交时间,您的分数是: 27.76 分。

注册码可以有多组,例如:
301 20 21 2022111212313120221322001101020102010200200102
看这个注册码,把20 和21 换个位置就又组新的了
301 21 20 2022111212313120221322001101020102010200200102

对于只判断等与不等的结点,两个字符互换可以得倒新的注册码

如有疑问请跟贴说明,感谢参与!
2008-10-7 19:21
0
游客
登录 | 注册 方可回帖
返回
//