能力值:
(RANK:350 )
2 楼
带驱动的
能力值:
( LV9,RANK:210 )
3 楼
最初由 riijj 发布 提防系统重启带来损失
完不起
能力值:
(RANK:300 )
4 楼
最初由 fonge 发布 完不起
能力值:
( LV9,RANK:170 )
5 楼
带驱的就不玩乐,观望,
能力值:
(RANK:300 )
6 楼
很温和的
能力值:
( LV4,RANK:50 )
7 楼
绫濑遥
YIBTYKXUZDGIKYIUJEAA
我没运行过主程序, IDA下看的, 应该是这个了
能力值:
(RANK:300 )
8 楼
最初由 绫濑遥 发布 绫濑遥 YIBTYKXUZDGIKYIUJEAA 我没运行过主程序, IDA下看的, 应该是这个了
恭喜 !
能力值:
( 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
}
}
能力值:
(RANK:300 )
10 楼
这个 crackme 对我是比较深刻的
因为制作的过程很辛苦,花的时间最长, vmware 也 reboot 了无数次
能力值:
( LV4,RANK:50 )
11 楼
好多地址硬编码
能力值:
( LV15,RANK:930 )
12 楼
我刚开始费了一些事,
机器不知什么原因无法使用 softice,
我把驱动改为 od 可加载的类型,然后等它恢复 code, 然后 dump 下,在使用 ida 分析。
能力值:
(RANK:300 )
13 楼
能力值:
(RANK:210 )
14 楼
............
能力值:
(RANK:550 )
15 楼
最初由 riijj 发布 嗯,修改它的 PE 属性, OD 便可以玩它了 我没有好的方法预防
新手,没做过Ring0下的调试,不知如何下手。请问如何修改PE属性,使OD可以玩它?
对于Ring0下的调试,不知各位老手对我等新手有什么好的建议,从何入门?
如果可能,还请老手不辞辛苦,写一篇破文,好让我们管窥一二。
要是riijj能再次写一篇像【原创】riijj Crackme (1) 的详解 那样的经典教程就好了。
能力值:
( 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文件没穿什么衣服了
能力值:
(RANK:550 )
17 楼
谢谢楼上的兄弟解惑,我试试
能力值:
(RANK:550 )
18 楼
最初由 whtyy 发布 在解压代码的后面下断点,然后执行。中断后DUMP出来(注意不要让OD自动修复输入表
whtyy兄台,小弟愚笨
,不知如何在解压代码后面下断点?还有如何让OD不自动修复输入表,还请明示。先谢过了。
能力值:
( LV4,RANK:50 )
19 楼
反汇编中可以猜出来 初始化DRIVER_OBJECT前面的那个 call sub_109D6 应该是解码函数。
所以在000109A1下断点
用OLLYDUMP DUMP的时候,不要选“Rebuild Import",OEP也不要改
DUMP出来再用IDA分析就可以了
能力值:
(RANK:550 )
20 楼
按照whtyy兄台的指示一修改了文件的PE属性后,OD载入提示"不知如何继续,因为内存地址77E71AB4不可读,请尝试更改EIP或忽略程序异常",请问是不是因为驱动的PE文件头长度和EXE的不一样所致?
再弱弱地问一声,为什么要重新DUMP出来再用IDA分析?直接用IDA分析为什么不行呢?
超级菜菜问题,真的因为不了解
有什么好的Ring0调试的入门文章还请推荐推荐。
能力值:
( 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也一样
不过只是玩玩的话,利用驱动自己解码还是比较方便的。
能力值:
(RANK:550 )
22 楼
文章正在拜读中,谢谢指点。
能力值:
( LV4,RANK:50 )
23 楼
今天不上课,完成了个东西,哈心情不错
顺手逆了下CRACKME,
代码比较简单
一点看法
1)Unpack函数放在 DriverEntry的开头太招摇了。
2)其实,如果在Unpack的过程中引用一些内核函数或者系统变量,或者把RING3的一些手段(SEH,调试寄存器)用进来,对静态分析能起点作用,也可以避免简单的OD加载解码。虽然也有办法,避过起码繁琐点
3)可能LZ认为没必要,如果是我,我会把在UNLOAD时创建线程
能力值:
(RANK:300 )
24 楼
最初由 whtyy 发布 今天不上课,完成了个东西,哈心情不错 顺手逆了下CRACKME, 代码比较简单 ........
嗯,第一个内核 crackme 只希望顺利运行,没有设计太复杂
解密部份我希望写得比较有深度,但制作很复杂, vmware 也重启了超过 100 次,没有气力
能力值:
( LV12,RANK:345 )
25 楼