
沙箱
breaksoftware
这个作者很懒,什么都没留下…
展开
-
一种注册表沙箱的思路、实现——注册表的一些基础知识
要做注册表沙箱,就必须要了解部分注册表知识。而注册表的知识很多,本文主要讲述如何在win32系统是上识别注册表映射的。(转载请指明出处) 在我的xp 32bit系统上,Win+R regedit之后打开注册表管理器。我们可以看到如下主键:HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USERS和HKEY_C原创 2012-06-11 00:15:08 · 3744 阅读 · 7 评论 -
一种注册表沙箱的思路、实现——研究Reactos中注册表函数的实现4
今天为了KPI,搞了一天的PPT,搞得恶心想吐。最后还是回到这儿,这儿才是我的净土,可以写写我的研究。 这儿讲一些Reactos中一些明显的错误。(转载请指明出处) 在Reactos的RegQueryInfoKeyW中有段这样的实现 if (lpcbMaxSubKeyLen != NULL) { *lpcbMa...原创 2012-06-26 21:17:50 · 2041 阅读 · 0 评论 -
一种注册表沙箱的思路、实现——研究Reactos中注册表函数的实现3
这篇我们看一个”容错“”节省“的实例。一下是一个Win32API的声明(转载请指明出处)LONG WINAPI RegEnumKeyEx( __in HKEY hKey, __in DWORD dwIndex, __out LPTSTR lpName, __inout LPDWORD lpcName, ...原创 2012-06-12 21:19:54 · 2085 阅读 · 0 评论 -
一种注册表沙箱的思路、实现——研究Reactos中注册表函数的实现2
上一篇博文中主要介绍了Reactos中大部分函数的思路和HKEY和HANDLE之间的关系,本文将介绍一些Reactos中有意思的函数和存在bug的函数。(转载请指明出处) CreateNestedKey是一个辅助创建键的函数,比如我们要创建\Regsitry\User\3\2\1,而我们只是存在\Regsitry\User\,我们最终将调用此函数将在User下创建键3...原创 2012-06-12 20:28:05 · 1895 阅读 · 0 评论 -
一种注册表沙箱的思路、实现——研究Reactos中注册表函数的实现1
因为我们沙箱注入了一个DLL到了目标进程,并且Hook了一系列NtXX(NtOpenKey)函数,所以我们在注入的代码中是不能使用RegXX(RegOpenKey等)这类函数的。因为RegXX系列函数在底层使用了NtXX系列函数,如果在注入DLL执行Hook后的逻辑中使用了RegXX系列函数,将会导致递归调用的问题,就让程序产生“蛋生鸡,鸡生蛋”这样的“思考”,可是程序不知道停止,...原创 2012-06-11 23:21:59 · 3289 阅读 · 10 评论 -
一种注册表沙箱的思路、实现——Hook Nt函数
Nt函数是在Ring3层最底层的函数了,选择此类函数进行Hook,是为了提高绕过门槛。我的Hook方案使用的是微软的Detours。(转载请指明出处) Detours的Hook和反Hook的写入如下:DetourTransactionBegin();DetourUpdateThread(GetCurrentThread());DetourAttach(lpOriF...原创 2012-06-11 01:18:31 · 5694 阅读 · 9 评论 -
一种注册表沙箱的思路、实现
从今年4月份开始,我接触到一个沙箱项目。该项目的需求要求我们的沙箱具有良好的安全性和兼容性。当时我们研究了SandBoxIE和360的沙箱,基本确定通过“重定向”思路来实现这款沙箱。而我主要负责研究注册表这块。(转载请指明出处) 在操作系统中,我们对一个对象(文件、注册表键等)的操作存在“创建”、“打开”、“关闭”、“修改”、“删除”和“查询”等。这些操作的源便是那个...原创 2012-06-10 19:18:44 · 3858 阅读 · 0 评论