Changes

820 bytes added ,  14:16, 26 May 2013
no edit summary
Line 1: Line 1: −
漏洞是在N3DS上用来运行非官方代码(homebrew)的一种方式。这个页面记录已经发现的3DS模式下的漏洞。
+
漏洞可以用于在N3DS上用来运行非官方代码(homebrew 自制程序)。本页面记录已经发现的3DS模式下的漏洞,译自[[3DS_exploits]]。
    
==N3DS漏洞列表==
 
==N3DS漏洞列表==
目前在3DS模式下无可行漏洞。
      
==失败的尝试==
 
==失败的尝试==
 
这里是之前发现的漏洞以及它们的具体信息。
 
这里是之前发现的漏洞以及它们的具体信息。
   −
* Pushmo(3DSWare软件) QR码:关卡名称很可能限制在16个字符长。名字过长后游戏并不崩溃,仅在超出外部极限值的情况下崩溃,并不能用于运行程序。
+
* Pushmo(3DSWare软件) QR码:关卡名称很可能限制在16个字符长。名字过长不能造成游戏崩溃。唯一可能由溢出而触发的崩溃,是应用程序尝试从位于NULL的缓冲区加载一个指针。
 
* Pyramids(3DSWare软件) QR码:没有字符串,LZ10的压缩算法也不能用于运行程序。仅在超出外部极限值的情况下崩溃(类似于背景数据),同样不能用于运行程序。
 
* Pyramids(3DSWare软件) QR码:没有字符串,LZ10的压缩算法也不能用于运行程序。仅在超出外部极限值的情况下崩溃(类似于背景数据),同样不能用于运行程序。
 
* 3DS网络浏览器。在输入2^32长度字符串后崩溃,目前仍不了解漏洞表现。目前不清楚是否是人为因素造成的(Webkit浏览器内核的代码可能造成假崩溃)但是无论如何这个漏洞是不能用于运行程序的。
 
* 3DS网络浏览器。在输入2^32长度字符串后崩溃,目前仍不了解漏洞表现。目前不清楚是否是人为因素造成的(Webkit浏览器内核的代码可能造成假崩溃)但是无论如何这个漏洞是不能用于运行程序的。
 +
 +
漏洞定位到了 [http://git.chromium.org/gitweb/?p=external/Webkit.git;a=commitdiff;h=ec471f16fbd1f879cb631f9b022fd16acd75f4d4 这里], concat-large-strings-crash2.html 触发崩溃,这和2^32触发崩溃一样。 多数时候这个漏洞造成内存分页权限错误,因为webkit厂商复制字符串数据到只读内存的缓冲区。区别只在前者企图复制原字符串长(比如一个text字符为“x”,4个就是“xxxx”),而后者尝试复杂超过12MB的数据。在一些少见的情况里,崩溃的是复制字符串的线程,但是这没用,因为它是一个少见的情况。
    
==正在进行的努力==
 
==正在进行的努力==
Line 17: Line 18:     
==技巧和信息==
 
==技巧和信息==
N3DS内部的信息是比较稀缺的。这里是3DS编程的一些有用信息,除了3DS提供的基本信息之外,也可以利用泄露的信息和逆向工程进行积累。
+
3DS使用的ARM处理器XN功能的唯一一个应用程序,头部有必要的权限可以设置为可执行的内存。这意味着一个可用的缓冲区溢出漏洞,虽然是有用的, it would not go the entire way towards allowing code to be run in an easy/practical fashion (ie an actual homebrew launcher) - for that, an exploit in the system is required. A buffer overflow exploit does, however, provide enough wriggle room through the use of return-oriented programming to potentially trigger a system exploit.
   −
这就是说,就算我们找到了一个漏洞,利用它运行自制程序也是很难的。现在正在进行的工作,主要是要找出3DS的奇怪之处,同时寻找可以利用的漏洞。可以参看本文的[[#正在进行的努力|正在进行的努力]] 章节来寻找例子和更多的信息。
+
游戏机的console-unique [[Nand/private/movable.sed|movable.sed]] dumpe后,SD 卡 [[extdata]] 和 SD [[游戏存档]] 可以用于攻击。
155

edits