首页
社区
课程
招聘
[原创]Crackme_081124欢迎测试(已爆)
发表于: 2008-11-25 22:46 9944

[原创]Crackme_081124欢迎测试(已爆)

2008-11-25 22:46
9944
比较无聊的一个crackme。
欢迎测试,如果哪位朋友给出建议,将非常感谢。
无anti,防爆性能也有点差。算法是抄的,几乎没有改动。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (29)
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
好累,休息几天。
2008-11-25 22:51
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
3
你这个虚拟机引擎是工作代码还是唬人的。。。

我把解密后的数据从内存中抓出来,有256K那么大,解析出来一千多条“伪”指令。

当然,是按照我发明的格式书写的。

不过今天可真没心情看它了。

另外,那个any pass的解密代码是哪来的,我谷歌了半天也没找到。。。
2008-11-26 06:36
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
4
工作代码。
any pass是什么?里面有aplib的解压代码,是说这个?
2008-11-26 13:10
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
5
原来这个压缩算法是叫aplib啊,我看到有固定的文件头的结构,就把它拿到TrID上检测,它告诉我结果是:

Identification results:
File size: 121KB

Match Ext File type Related URL Def's author
100.0% APW Any Password data http://www.romanlab.com/apw/ Marco Pontello


而且是100%匹配,我就以为是用了any pass的加密。结果后来发现解压时也没要求密码,所以就拿不准了,来问问。

原来是个压缩的库。。。

好,我试着理解那些“伪”指令去了,希望自己运气好一点。。。
2008-11-26 21:32
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
没有mm和偶像们的crackme支持率下载率高。 自己顶下。
2008-11-28 12:04
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
7
虚拟机的结构已经完全搞清楚了,虚拟机指令解析也完成了。

现在你那个key.dat已经可以在我自己实现的引擎上跑了,也能弹出一个什么都没有的MessageBox.

但是逆向解析的语义分析和逻辑运算化简遇到了麻烦。

本人不是科班出身,对于这方面没能力。

只用 and_or_not 和 移位 可以实现任意的算术逻辑运算,让我从算术表达式化成and_or_not与移位运算组合的正向的变换我还有点想法,但要从and_or_not 和 移位运算的组合中还原出原来的表达式,我有点吃力。

我可不想人式阅读两万多行由and_or_not 和 循环移位 组成的“汇编代码”。

再过几天吧,看能不能有点突破。

说实话这是我第一次碰VM的东西,以前一看VM,就直接PASS了。不过这次我一定要做到底,不管能不能成功。
2008-11-28 21:41
0
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
8
破解成功的标准是啥? 替换掉MessageBox算不算?
2008-11-28 22:44
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
9
搞VM原来要做这么多工作的
2008-11-28 22:44
0
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
10
正在看你推荐的系列文章,只看完了第一篇。觉得你不去做教师真的是浪费材料了~~~~~

睡觉去了,老了,开始注意养生了~~~~
2008-11-28 23:50
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
11
很可怕。vm只是个折磨cracker耐心的东东,就怕不放弃的。



原则上不算。不过如果已经知道成功的messagebox的提示内容,也可以吧。
2008-11-28 23:56
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
12
成功的MessageBox的内容,难道不是"OK"??

对程序的分析,猜测出的。

不过我还是认为只有算法才算是成功。
2008-11-29 15:29
0
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
13
不会只是"OK"吧?key.day里难道没有“恭喜发财”之类的提示?
2008-11-29 23:55
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
14
以后的crackme会。或加上“钱钱”。
2008-11-30 00:33
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
15
这东西不错
不知狼兄是否方便事后将 0 ' 2 变换成[I]各种运算[/I]的方式分享出来吗 ?
Ex: ((a&b) | (c&d))'   , if a or b=0  , c=d ,then Y= c'
再经过一连串的类似过程变成其实是 a+b 或 a xor b 之类的

这有点类似变形HASH
2008-12-2 11:01
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
16
爆了
2处比对点
上传的附件:
2008-12-2 16:32
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
17
膜拜。又没能逃脱sessiondiy的魔爪。
非常感谢所有下载并帮忙测试的朋友,多谢书呆彭、nkspark、sessiondiy的反馈。

下面给出算法简单说明,想自己跟的可先跳过。

算法是抄袭ccfer的,几乎没有改动,只是将它的一个常数0xBADC0DE改为0x900DC0DE。
一组有效注册码为:shellwolf    cfc9fa64482c946f
我的c比较差,下面一个实现很丑陋,
void main()
{
        char name[12]="shellwolf";
        DWORD name_v=0;
        DWORD reg_v[2];
        int tmpi;
        for(tmpi=0;tmpi<strlen(&name[0]);tmpi++)
        {
                name_v=(name_v>>1)|(name_v<<31);
                name_v=name_v+name[tmpi];
                name_v=(name_v>>3)|(name_v<<29);
                name_v=name_v^name[tmpi];
        }
        reg_v[0]=name_v^0x900dc0de;
        reg_v[1]=(name_v-0x53589793)^0x31415926;
        getch();
}
2008-12-2 22:14
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
18
这东西我有看到
但不是很清楚在做什么
vm扭曲就是有差
2008-12-2 23:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
.................
比较牛

搞不定
2008-12-5 19:12
0
雪    币: 227
活跃值: (86)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
..是版主删除了吗?不是给出算法了?怎么我没看到..别删除啊..学习下嘛
2008-12-6 08:13
0
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
不好意思  小菜我没搞定。。。。。。。。。
2008-12-6 22:45
0
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
22
高人说说爆的过程啊~~~~~

我完全看不懂这个程序,不过在JMP MessageBox下断点,然后改改堆栈,也能弹一个类似的框出来的哦~~~~
2008-12-6 23:45
0
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
23
主流的VM到底保护的是啥? 数据还是流程? 还是不同的VM有不同的侧重?

VM能自己完成API的功能吗? 在VM中调用API是不是VM不可克服的软肋?
2008-12-6 23:51
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
24
没记错的话, 比对错误是至 2a350

爆的方法可为:

  1. 你可以将 2a350 改成下一条的差距, 将会变成类似如下的流程: (类似 nop)
        401000:  jnz 401002
        401002:

  2. 将上一条指令的变量赋于值由 0 改为 -1, 将会变成类似如下的流程:(流程相反了)
        401000:  jz 401234
        401002:

要再往更前的地方改其他的变量也行. 不过这不在讨论范围.
不管那一种, 反正这东西有二处就对了.
第1处是比对后8, 第2处是比对前8

以上纯属回忆, 所有数值纯属虚构

所改数据可用aPLib压回, 不过应该没人会真的这么做.
2008-12-7 06:52
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
25
这叫乱改
123
2008-12-7 06:57
0
游客
登录 | 注册 方可回帖
返回
//