首页
社区
课程
招聘
Riijj crackme 12
发表于: 2007-1-28 13:29 12606

Riijj crackme 12

2007-1-28 13:29
12606

名字 : Riijj crackme 12
作者 : riijj
任务 : 检出序号
难度 : 中级
描述 : 对初入门的新手,这个 crackme 比较特别
限制 : 不支援win98/me .  管理员权限.
资讯 : 没有加壳,没有修改 IAT

提示 : 玩此 crackme 时,请先把重要的程序和文件关闭,此 crackme 含有内核部份,提防系统重启带来损失


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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (24)
雪    币: 47147
活跃值: (20450)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
带驱动的
2007-1-29 09:50
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
3
最初由 riijj 发布
提防系统重启带来损失


完不起
2007-1-29 10:07
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
4
最初由 fonge 发布
完不起

2007-1-29 10:15
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
带驱的就不玩乐,观望,
2007-1-29 10:20
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
6
很温和的  
2007-1-29 10:24
0
雪    币: 214
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
绫濑遥
YIBTYKXUZDGIKYIUJEAA

我没运行过主程序, IDA下看的, 应该是这个了
2007-1-29 12:09
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
8
最初由 绫濑遥 发布
绫濑遥
YIBTYKXUZDGIKYIUJEAA

我没运行过主程序, IDA下看的, 应该是这个了

恭喜 !
2007-1-29 12:37
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
9
//3 < name length < 20
void keygen(const char* name, char* code)
{
        __asm
        {
                                push        ebx

                mov     ebx, [name]               
                push    esi                                 
                push    edi                                 
                mov     edi, ebx                             
                or      ecx, 0FFFFFFFFh                     
                xor     eax, eax                             
                push    1                                    
                repne scasb                                 
                not     ecx                                 
                dec     ecx                                 
                pop     esi                                 
                xor     edx, edx                             
                mov     eax, esi                             
                test    ecx, ecx                             
                jle     short loc_10779                     
                                                            
                                                            
loc_10764:                              
                movsx   edi, byte ptr [edx+ebx]              
                lea     eax, ds:1[eax*4]                     
                imul    edi, eax                             
                add     esi, edi                             
                inc     edx                                 
                cmp     edx, ecx                             
                jl      short loc_10764                     
                                                            
                                                            
loc_10779:                           
                mov     ecx, esi                             
                imul    ecx, esi                             
                imul    ecx, esi                             
                xor     esi, esi                             
                                                            
                                                            
loc_10783:      
                push    1Ah                                 
                mov     eax, ecx                             
                xor     edx, edx                             
                pop     edi                                 
                div     edi                                 
                mov     eax, [code]                  
                push    7                                    
                add     dl, 41h                              
                mov     [esi+eax], dl                        
                mov     eax, ecx                             
                cdq                                          
                pop     ecx                                 
                idiv    ecx                                 
                mov     ecx, eax                             
                imul    ecx, eax                             
                imul    ecx, eax                             
                inc     esi                                 
                cmp     esi, 14h                             
                jl      short loc_10783

                                pop                esi
                                pop                edi
                                pop                ebx
        }
}
2007-1-29 12:53
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
10
这个 crackme 对我是比较深刻的

因为制作的过程很辛苦,花的时间最长, vmware 也 reboot 了无数次  
2007-1-29 13:01
0
雪    币: 214
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
好多地址硬编码
2007-1-29 13:05
0
雪    币: 272
活跃值: (143)
能力值: ( LV15,RANK:930 )
在线值:
发帖
回帖
粉丝
12
我刚开始费了一些事,
机器不知什么原因无法使用 softice,
我把驱动改为 od 可加载的类型,然后等它恢复 code, 然后 dump 下,在使用 ida 分析。

2007-1-29 13:20
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
13
最初由 dummy 发布
我刚开始费了一些事,
机器不知什么原因无法使用 softice,
我把驱动改为 od 可加载的类型,然后等它恢复 code, 然后 dump 下,在使用 ida 分析。


嗯,修改它的 PE 属性, OD 便可以玩它了

我没有好的方法预防  
2007-1-29 13:23
0
雪    币: 82
活跃值: (10)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
14
............
2007-2-16 15:37
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
15
最初由 riijj 发布
嗯,修改它的 PE 属性, OD 便可以玩它了

我没有好的方法预防


新手,没做过Ring0下的调试,不知如何下手。请问如何修改PE属性,使OD可以玩它?
对于Ring0下的调试,不知各位老手对我等新手有什么好的建议,从何入门?
如果可能,还请老手不辞辛苦,写一篇破文,好让我们管窥一二。

要是riijj能再次写一篇像【原创】riijj Crackme (1) 的详解 那样的经典教程就好了。
2007-3-6 10:38
0
雪    币: 242
活跃值: (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
最初由 hawking 发布
新手,没做过Ring0下的调试,不知如何下手。请问如何修改PE属性,使OD可以玩它?


把驱动的PE属性里,SUBSYSTEM 改为 2(WINDOWS GUI),把导入表的RVA和SIZE记下来,然后都设置为 0。如果Characteristics属性的DLL标志被加上了,去掉

这样修改后,驱动就变成了一个不需要导入任何API的“应用程序”,用OD加载吧。在解压代码的后面下断点,然后执行。中断后DUMP出来(注意不要让OD自动修复输入表),把DUMP的文件的PE属性修改为原来的(SUBSYSTEM,导入表,Characteristics标志)

然后,载入IDA,就可以看见这个PE文件没穿什么衣服了
2007-3-6 22:28
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
17
谢谢楼上的兄弟解惑,我试试
2007-3-7 10:02
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
18
最初由 whtyy 发布
在解压代码的后面下断点,然后执行。中断后DUMP出来(注意不要让OD自动修复输入表

whtyy兄台,小弟愚笨 ,不知如何在解压代码后面下断点?还有如何让OD不自动修复输入表,还请明示。先谢过了。
2007-3-7 19:50
0
雪    币: 242
活跃值: (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
反汇编中可以猜出来 初始化DRIVER_OBJECT前面的那个 call    sub_109D6 应该是解码函数。
所以在000109A1下断点

用OLLYDUMP DUMP的时候,不要选“Rebuild Import",OEP也不要改
DUMP出来再用IDA分析就可以了
2007-3-7 20:24
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
20
按照whtyy兄台的指示一修改了文件的PE属性后,OD载入提示"不知如何继续,因为内存地址77E71AB4不可读,请尝试更改EIP或忽略程序异常",请问是不是因为驱动的PE文件头长度和EXE的不一样所致?
再弱弱地问一声,为什么要重新DUMP出来再用IDA分析?直接用IDA分析为什么不行呢?
超级菜菜问题,真的因为不了解
有什么好的Ring0调试的入门文章还请推荐推荐。
2007-3-7 20:32
0
雪    币: 242
活跃值: (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
21
驱动是标准的PE格式的。
请确认是不是完全按照我说的那种操作方法。
因为驱动的导入表导入的都是NTOSKRNL的 NTDLL HAL.SYS等的导出的函数,所以,不能让WIN32的加载器试图加载,导入表必须清空,否则必定加载出错。

可以搜下对于“Rustock.B Rootkit"的分析《A Journey to the Center of the Rustock.B Rootkit》。里面有借助OD加载驱动来UnPACK的介绍

你可以用IDA分析下试试,虽然能简单分析DRIVERENTRY和几个DISPATCH历程,但是重要的真正的负责注册处理的代码却无法识别
如果你功底不错且时间很充裕的话,可以利用IDC解码。不需要DUMP也一样

不过只是玩玩的话,利用驱动自己解码还是比较方便的。
2007-3-7 21:17
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
22
文章正在拜读中,谢谢指点。
2007-3-8 10:18
0
雪    币: 242
活跃值: (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
23
今天不上课,完成了个东西,哈心情不错

顺手逆了下CRACKME,
代码比较简单

一点看法
1)Unpack函数放在 DriverEntry的开头太招摇了。
2)其实,如果在Unpack的过程中引用一些内核函数或者系统变量,或者把RING3的一些手段(SEH,调试寄存器)用进来,对静态分析能起点作用,也可以避免简单的OD加载解码。虽然也有办法,避过起码繁琐点
3)可能LZ认为没必要,如果是我,我会把在UNLOAD时创建线程
2007-3-13 15:45
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
24
最初由 whtyy 发布
今天不上课,完成了个东西,哈心情不错

顺手逆了下CRACKME,
代码比较简单

........

嗯,第一个内核 crackme 只希望顺利运行,没有设计太复杂

解密部份我希望写得比较有深度,但制作很复杂, vmware 也重启了超过 100 次,没有气力

2007-3-16 13:16
0
雪    币: 269
活跃值: (906)
能力值: ( LV12,RANK:345 )
在线值:
发帖
回帖
粉丝
25
很怀疑楼上,竟然用IDA看能看出来,
我的IDA载入驱动部分后,代码部分明显能看出做了反静态反编译处理显示为浮点操作
经过WinDBG调出来的,正好学习了下WinDBG调试驱动部分。感觉很爽,特此感谢riijj
上图

用户名:AJISky
密码:   EIBDNMTWSVFIMXWDVYBZ
分析过程http://bbs.pediy.com/showthread.php?t=161890
上传的附件:
2013-1-19 00:35
0
游客
登录 | 注册 方可回帖
返回
//