越狱检测/越狱检测绕过——xCon
原文http://blog.csdn.net/zkdemon/article/details/8242064
越狱检测/越狱检测绕过——xCon
<p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="str" style="line-height: 25px;">/Library/</span><span class="typ" style="line-height: 25px;">MobileSubstrate</span><span class="pun" style="line-height: 25px;">/</span><span class="typ" style="line-height: 25px;">MobileSubstrate</span><span class="pun" style="line-height: 25px;">.</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">dylib </span><span class="pun" style="line-height: 25px;">最重要的越狱文件,几乎所有的越狱机都会安装</span><span class="typ" style="line-height: 25px;">MobileSubstrate</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun" style="line-height: 25px;">/</span><span class="typ" style="line-height: 25px;">Applications</span><span class="pun" style="line-height: 25px;">/</span><span class="typ" style="line-height: 25px;">Cydia</span><span class="pun" style="line-height: 25px;">.</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">app</span><span class="str" style="line-height: 25px;">/ </span><span class="str" style="line-height: 25px;">/</span><span class="kwd" style="line-height: 25px;">var</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">lib</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">cydia</span><span class="pun" style="line-height: 25px;">/</span><span class="pun" style="line-height: 25px;">绝大多数越狱机都会安装</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun" style="line-height: 25px;">/</span><span class="kwd" style="line-height: 25px;">var</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">cache</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">apt </span><span class="pun" style="line-height: 25px;">/</span><span class="kwd" style="line-height: 25px;">var</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">lib</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">apt </span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">etc</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">apt</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">bin</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">bash </span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">bin</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">sh</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">usr</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">sbin</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">sshd </span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">usr</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">libexec</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">ssh</span><span class="pun" style="line-height: 25px;">-</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">keysign </span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">etc</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">ssh</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">sshd_config </span></p>
ENOENT 参数file_name指定的文件不存在
ENOTDIR 路径中的目录存在但却非真正的目录
ELOOP 欲打开的文件有过多符号连接问题,上限为16符号连接
EFAULT 参数buf为无效指针,指向无法存在的内存空间
EACCESS 存取文件时被拒绝
ENOMEM 核心内存不足
ENAMETOOLONG 参数file_name的路径名称太长
dev_t st_dev; //文件的设备编号
ino_t st_ino; //节点
mode_t st_mode; //文件的类型和存取的权限
nlink_t st_nlink; //连到该文件的硬连接数目,刚建立的文件值为1
uid_t st_uid; //用户ID
gid_t st_gid; //组ID
dev_t st_rdev; //(设备类型)若此文件为设备文件,则为其设备编号
off_t st_size; //文件字节数(文件大小)
unsigned long st_blksize; //块大小(文件系统的I/O 缓冲区大小)
unsigned long st_blocks; //块数
time_t st_atime; //最后一次访问时间
time_t st_mtime; //最后一次修改时间
time_t st_ctime; //最后一次改变时间(指属性)
};
代码如下:
这种方法是目前最靠谱的方法,调用_dyld_image_count()和_dyld_get_image_name()来看当前有哪些dylib被加载
<p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="com" style="line-height: 25px;">#include</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="str" style="line-height: 25px;"><string.h></span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="com" style="line-height: 25px;">#import </span><span class="com" style="line-height: 25px;"><mach-o/loader.h></span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="com" style="line-height: 25px;">#import </span><span class="com" style="line-height: 25px;"><mach-o/dyld.h></span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="com" style="line-height: 25px;">#import </span><span class="com" style="line-height: 25px;"><mach-o/arch.h></span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="kwd" style="line-height: 25px;">void</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> printDYLD</span><span class="pun" style="line-height: 25px;">()</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun" style="line-height: 25px;">{</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="com" style="line-height: 25px;">//Get count of all currently loaded DYLD</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="typ" style="line-height: 25px;">uint32_t</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> count </span><span class="pun" style="line-height: 25px;">=</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">_dyld_image_count</span><span class="pun" style="line-height: 25px;">();</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="kwd" style="line-height: 25px;">for</span><span class="pun" style="line-height: 25px;">(</span><span class="typ" style="line-height: 25px;">uint32_t</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> i </span><span class="pun" style="line-height: 25px;">=</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="lit" style="line-height: 25px;">0</span><span class="pun" style="line-height: 25px;">;</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> i </span><span class="pun" style="line-height: 25px;"><</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> count</span><span class="pun" style="line-height: 25px;">;</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> i</span><span class="pun" style="line-height: 25px;">++)</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pun" style="line-height: 25px;">{</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="com" style="line-height: 25px;">//Name of image (includes full path)</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="kwd" style="line-height: 25px;">const</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="kwd" style="line-height: 25px;">char</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pun" style="line-height: 25px;">*</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">dyld </span><span class="pun" style="line-height: 25px;">=</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">_dyld_get_image_name</span><span class="pun" style="line-height: 25px;">(</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">i</span><span class="pun" style="line-height: 25px;">);</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="com" style="line-height: 25px;">//Get name of file</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="kwd" style="line-height: 25px;">int</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> slength </span><span class="pun" style="line-height: 25px;">=</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">strlen</span><span class="pun" style="line-height: 25px;">(</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">dyld</span><span class="pun" style="line-height: 25px;">);</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="kwd" style="line-height: 25px;">int</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> j</span><span class="pun" style="line-height: 25px;">;</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="kwd" style="line-height: 25px;">for</span><span class="pun" style="line-height: 25px;">(</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">j </span><span class="pun" style="line-height: 25px;">=</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> slength </span><span class="pun" style="line-height: 25px;">-</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="lit" style="line-height: 25px;">1</span><span class="pun" style="line-height: 25px;">;</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> j</span><span class="pun" style="line-height: 25px;">>=</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="lit" style="line-height: 25px;">0</span><span class="pun" style="line-height: 25px;">;</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pun" style="line-height: 25px;">--</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">j</span><span class="pun" style="line-height: 25px;">)</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="kwd" style="line-height: 25px;">if</span><span class="pun" style="line-height: 25px;">(</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">dyld</span><span class="pun" style="line-height: 25px;">[</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">j</span><span class="pun" style="line-height: 25px;">]</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pun" style="line-height: 25px;">==</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="str" style="line-height: 25px;">'/'</span><span class="pun" style="line-height: 25px;">)</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="kwd" style="line-height: 25px;">break</span><span class="pun" style="line-height: 25px;">;</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">printf</span><span class="pun" style="line-height: 25px;">(</span><span class="str" style="line-height: 25px;">"%s\n"</span><span class="pun" style="line-height: 25px;">,</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> dyld</span><span class="pun" style="line-height: 25px;">);</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pun" style="line-height: 25px;">}</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">printf</span><span class="pun" style="line-height: 25px;">(</span><span class="str" style="line-height: 25px;">"\n"</span><span class="pun" style="line-height: 25px;">);</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun" style="line-height: 25px;">}</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="kwd" style="line-height: 25px;">int</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> main</span><span class="pun" style="line-height: 25px;">(</span><span class="kwd" style="line-height: 25px;">int</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> argc</span><span class="pun" style="line-height: 25px;">,</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="kwd" style="line-height: 25px;">char</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pun" style="line-height: 25px;">*</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">argv</span><span class="pun" style="line-height: 25px;">[])</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun" style="line-height: 25px;">{</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">printDYLD</span><span class="pun" style="line-height: 25px;">();</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"> </p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="typ" style="line-height: 25px;">NSAutoreleasePool</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pun" style="line-height: 25px;">*</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">pool </span><span class="pun" style="line-height: 25px;">=</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pun" style="line-height: 25px;">[[</span><span class="typ" style="line-height: 25px;">NSAutoreleasePool</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">alloc</span><span class="pun" style="line-height: 25px;">]</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">init</span><span class="pun" style="line-height: 25px;">];</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="kwd" style="line-height: 25px;">int</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> retVal </span><span class="pun" style="line-height: 25px;">=</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="typ" style="line-height: 25px;">UIApplicationMain</span><span class="pun" style="line-height: 25px;">(</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">argc</span><span class="pun" style="line-height: 25px;">,</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> argv</span><span class="pun" style="line-height: 25px;">,</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="kwd" style="line-height: 25px;">nil</span><span class="pun" style="line-height: 25px;">,</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="kwd" style="line-height: 25px;">nil</span><span class="pun" style="line-height: 25px;">);</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="pun" style="line-height: 25px;">[</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">pool </span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">release</span><span class="pun" style="line-height: 25px;">];</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> </span><span class="kwd" style="line-height: 25px;">return</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;"> retVal</span><span class="pun" style="line-height: 25px;">;</span></p> <p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun" style="line-height: 25px;">}</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"></p>
下图显示了我的iOS设备当前加载的dylib的路径,最下面就可以看到xCon
<p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0);">DANI</span><span class="pun">-</span><span class="pln" style="color: rgb(0, 0, 0);">LEE</span><span class="pun">-</span><span class="lit">2</span><span class="pun">:</span><span class="pln" style="color: rgb(0, 0, 0);">iostools danqingdani$ otool </span><span class="pun">-</span><span class="pln" style="color: rgb(0, 0, 0);">tV xCon</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">dylib </span><span class="pun">></span><span class="pln" style="color: rgb(0, 0, 0);">xContextsection </span></p>
可以根据文件中的函数名,同时结合该工具的原理以及越狱检测的一些常用手段(文章第一部分有介绍)来猜其逻辑,例如越狱检测方法中的文件系统检查,会根据特定的文件路径名来匹配,我们可以使用strings查看文件中的内容,看看会有哪些文件路径名。
<p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pln" style="color: rgb(0, 0, 0);">DANI</span><span class="pun">-</span><span class="pln" style="color: rgb(0, 0, 0);">LEE</span><span class="pun">-</span><span class="lit">2</span><span class="pun">:</span><span class="pln" style="color: rgb(0, 0, 0);">IAP tools danqingdani$ strings xCon</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">dylib </span><span class="pun">></span><span class="pln" style="color: rgb(0, 0, 0);">xConReadable</span></p>
以下是xCon中会匹配的文件名
<p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="str">/usr/</span><span class="pln" style="color: rgb(0, 0, 0);">bin</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">sshd</span> <span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">usr</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">libexec</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">sftp</span><span class="pun">-</span><span class="pln" style="color: rgb(0, 0, 0);">server</span> <span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">usr</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">sbin</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">sshd</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">bin</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">bash</span> <span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">bin</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">sh</span> <span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">bin</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">sw</span> <span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">etc</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">apt</span> <span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">etc</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">fstab</span> <span class="pun">/</span><span class="typ">Applications</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">blackra1n</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">app</span> <span class="pun">/</span><span class="typ">Applications</span><span class="pun">/</span><span class="typ">Cydia</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">app</span> <span class="pun">/</span><span class="typ">Applications</span><span class="pun">/</span><span class="typ">Cydia</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">app</span><span class="pun">/</span><span class="typ">Info</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">plist</span> <span class="pun">/</span><span class="typ">Applications</span><span class="pun">/</span><span class="typ">Cycorder</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">app</span> <span class="pun">/</span><span class="typ">Applications</span><span class="pun">/</span><span class="typ">Loader</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">app</span> <span class="pun">/</span><span class="typ">Applications</span><span class="pun">/</span><span class="typ">FakeCarrier</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">app</span> <span class="pun">/</span><span class="typ">Applications</span><span class="pun">/</span><span class="typ">Icy</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">app</span> <span class="pun">/</span><span class="typ">Applications</span><span class="pun">/</span><span class="typ">IntelliScreen</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">app</span> <span class="pun">/</span><span class="typ">Applications</span><span class="pun">/</span><span class="typ">MxTube</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">app</span> <span class="pun">/</span><span class="typ">Applications</span><span class="pun">/</span><span class="typ">RockApp</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">app</span> <span class="pun">/</span><span class="typ">Applications</span><span class="pun">/</span><span class="typ">SBSettings</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">app</span> <span class="pun">/</span><span class="typ">Applications</span><span class="pun">/</span><span class="typ">WinterBoard</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">app</span> <span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">bin</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">bash</span><span class="pun">/</span><span class="typ">Applications</span><span class="pun">/</span><span class="typ">Cydia</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">app</span> <span class="pun">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">LaunchDaemons</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">com</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">openssh</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">sshd</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">plist</span> <span class="pun">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">Frameworks</span><span class="pun">/</span><span class="typ">CydiaSubstrate</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">framework</span> <span class="pun">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">MobileSubstrate</span> <span class="pun">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">MobileSubstrate</span><span class="str">/</span> <span class="str">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">MobileSubstrate</span><span class="pun">/</span><span class="typ">DynamicLibraries</span> <span class="pun">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">MobileSubstrate</span><span class="pun">/</span><span class="typ">DynamicLibraries</span><span class="str">/</span> <span class="str">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">MobileSubstrate</span><span class="pun">/</span><span class="typ">DynamicLibraries</span><span class="pun">/</span><span class="typ">LiveClock</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">plist</span> <span class="pun">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">MobileSubstrate</span><span class="pun">/</span><span class="typ">DynamicLibraries</span><span class="pun">/</span><span class="typ">Veency</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">plist</span> <span class="pun">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">MobileSubstrate</span><span class="pun">/</span><span class="typ">DynamicLibraries</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">xCon</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">plist</span> <span class="pun">/</span><span class="kwd">private</span><span class="pun">/</span><span class="kwd">var</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">lib</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">apt</span> <span class="pun">/</span><span class="kwd">private</span><span class="pun">/</span><span class="kwd">var</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">lib</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">apt</span><span class="str">/</span> <span class="str">/</span><span class="kwd">private</span><span class="pun">/</span><span class="kwd">var</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">lib</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">cydia</span> <span class="pun">/</span><span class="kwd">private</span><span class="pun">/</span><span class="kwd">var</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">mobile</span><span class="pun">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">SBSettings</span><span class="pun">/</span><span class="typ">Themes</span> <span class="pun">/</span><span class="kwd">private</span><span class="pun">/</span><span class="kwd">var</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">stash</span> <span class="pun">/</span><span class="kwd">private</span><span class="pun">/</span><span class="kwd">var</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">tmp</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">cydia</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">log</span> <span class="pun">/</span><span class="typ">System</span><span class="pun">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">LaunchDaemons</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">com</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">ikey</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">bbot</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">plist</span> <span class="pun">/</span><span class="typ">System</span><span class="pun">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">LaunchDaemons</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">com</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">saurik</span><span class="pun">.</span><span class="typ">Cydia</span><span class="pun">.</span><span class="typ">Startup</span><span class="pun">.</span><span class="pln" style="color: rgb(0, 0, 0);">plist</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span lang="EN-US" style="font-family: 宋体; font-size: 10.5pt;"><span class="pln" style="color: rgb(0, 0, 0);">NzI0MS9MaWJyYXJ5L01vYmlsZVN1YnN0cmF0ZQ</span><span class="pun">==</span><span class="pln" style="color: rgb(0, 0, 0);"> </span><span class="pun">(</span></span><span style="font-family: 宋体; font-size: 10.5pt;"><span class="pun">对应</span><span lang="EN-US"><span class="lit">7241</span><span class="pun">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">MobileSubstrate</span></span><span class="pun">)</span></span></p>
通过分析,xCon会绕过以下越狱检测方法
(1) 根据是否存在特定的越狱文件,及特定文件的权限是否发生变化来判断设备是否越狱
fileExistsAtPath:
fileExistsAtPath:isDirectory:
filePermission:
fileSystemIsValid:
checkFileSystemWithPath:forPermissions:
mobileSubstrateWorkaround
detectIllegalApplication:
(2) 根据沙箱完整性检测设备是否越狱
canUseFork
(3) 根据文件系统的分区是否发生变化来检测设备是否越狱
partitionsModified
(4) 根据是否安装ssh来判断设备是否越狱
ssh root@127.0.0.1
<p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="str" style="line-height: 25px;">/Library/</span><span class="typ" style="line-height: 25px;">MobileSubstrate</span><span class="pun" style="line-height: 25px;">/</span><span class="typ" style="line-height: 25px;">MobileSubstrate</span><span class="pun" style="line-height: 25px;">.</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">dylib </span><span class="pun" style="line-height: 25px;">最重要的越狱文件,几乎所有的越狱机都会安装</span><span class="typ" style="line-height: 25px;">MobileSubstrate</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun" style="line-height: 25px;">/</span><span class="typ" style="line-height: 25px;">Applications</span><span class="pun" style="line-height: 25px;">/</span><span class="typ" style="line-height: 25px;">Cydia</span><span class="pun" style="line-height: 25px;">.</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">app</span><span class="str" style="line-height: 25px;">/ </span><span class="str" style="line-height: 25px;">/</span><span class="kwd" style="line-height: 25px;">var</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">lib</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">cydia</span><span class="pun" style="line-height: 25px;">/</span><span class="pun" style="line-height: 25px;">绝大多数越狱机都会安装</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun" style="line-height: 25px;">/</span><span class="kwd" style="line-height: 25px;">var</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">cache</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">apt </span><span class="pun" style="line-height: 25px;">/</span><span class="kwd" style="line-height: 25px;">var</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">lib</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">apt </span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">etc</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">apt</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">bin</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">bash </span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">bin</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">sh</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">usr</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">sbin</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">sshd </span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">usr</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">libexec</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">ssh</span><span class="pun" style="line-height: 25px;">-</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">keysign </span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">etc</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">ssh</span><span class="pun" style="line-height: 25px;">/</span><span class="pln" style="color: rgb(0, 0, 0); line-height: 25px;">sshd_config </span></p>
<p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="str">/Applications</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="str">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">Ringtones</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun">/</span><span class="typ">Library</span><span class="pun">/</span><span class="typ">Wallpaper</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">usr</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">include</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">usr</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">libexec</span></p><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 0px; margin-bottom: 10px;"><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">usr</span><span class="pun">/</span><span class="pln" style="color: rgb(0, 0, 0);">share</span></p>
越狱检测/越狱检测绕过——xCon相关推荐
- 越狱检测/越狱检测绕过—xCon
http://www.freebuf.com/articles/wireless/6318.html 一直忽略了越狱检测与越狱检测绕过的问题,因为我认为在app争抢装机率的环境下,是不会在乎对方的设备 ...
- iOS逆向(10)-越狱!越狱!远程连接登录手机
之前的九篇文章讲述的是在不越狱的情况下,详细的讲解了对APP重签名的原理,如何动态库注入,以及之后的各种调试技巧.这些功能其实已经很强大了,能够帮助咱们在绝大多数情况下去分析并且更改对方的APP了.这 ...
- [免费专栏] ATTACK安全之Android车机证书攻击场景检测「检测系统代理」
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 ATTACK付费专栏长期更新,本篇最新内容请前往: [车联网 ...
- matlab瓶盖盖严检查,盖检机|瓶盖检测|外观检测设备|誉阵科技
盖检机--五加仑盖系列 设备型号YZ-JPG10K-1YZ-JPG10K-5YZ-JPG10K-6相机组数1组5组6组检测速度10000个/小时检测位置瓶盖正面瓶盖正面,360°外圆面及盖耳朵 瓶盖正 ...
- yolo 负样本_SSD——样本正负比控制+多尺度检测 (目标检测)(one-stage)(深度学习)(ECCV 2016)...
SSD--样本正负比控制+多尺度检测 (目标检测)(one-stage)(深度学习)(ECCV 2016) 发布时间:2018-11-23 20:57, 浏览次数:1399 , 标签: SSD one ...
- DBnet检测知识蒸馏+tensorrt推理(文字检测+条形码检测)
向AI转型的程序员都关注了这个号???????????? 人工智能大数据与深度学习 公众号:datayx 一.DBnet 提出了 Differentiable Binarization (DB),它 ...
- 有未经处理的异常(在 xx.exe 中): 堆栈 Cookie 检测代码检测到基于堆栈的缓冲区溢出。
有未经处理的异常(在 xx.exe 中): 堆栈 Cookie 检测代码检测到基于堆栈的缓冲区溢出. 参考文章: (1)有未经处理的异常(在 xx.exe 中): 堆栈 Cookie 检测代码检测到基 ...
- 行人检测/人体检测综述
行人检测/人体检测综述 更详细的资料整理到了个人的github上,地址为 https://github.com/whitenightwu/11-Algorithm_and_Data\11-Paper ...
- VJ框架 与 人脸检测/物体检测 详解
Viola-Jones Object Detection Framework 1. VJ Framework 1.1 Overview 本文详细阐述 Viola-Joines 人脸检测/物体检测 实时 ...
最新文章
- qlabel 边加载边更新_王者荣耀:9月版本更新,九位英雄调整,三大战边回归,飞牛笑了...
- 最大调用堆栈大小超出错误
- (转载)各Linux发行版本 网络配置文件
- 2021高考成绩查询时间 新闻,教育资讯:2021高考成绩一般公布时间 多久出成绩...
- 线程池的几个重要参数?—— 七大参数
- 基因组与数据整合:DNA应用开发正在临近
- button 和input 的区别及在表单form中的用法
- 【软件开发底层知识修炼】十八 快速学习GDB调试五 使用GDB进行调试的一些小技巧
- 《DSP using MATLAB》示例Example7.25
- 2018 ios开发者账号同意新协议加联系电话教程
- WPF 入门笔记之基础
- 高德地图偏移android,关于JS接高德地图API,以及坐标偏移坐标转换(示例代码)
- centos7内网穿透(frp、zerotier)
- win7 系统盘 减肥
- MetaFun 小传
- S2e-env环境及编译学习1
- 清华张敏教授:个性化推荐研究进展(可解释性、鲁棒性和公平性)
- 外企工作日常:全英文CrossTalk反串讲-讲前紧张,讲后淡定
- 如何隐藏TPageControl Delphi控件的选项卡
- 已解决for example: not eligible for auto-proxying
热门文章
- mysql 存储过程学习
- 如何成为有效学习的高手
- 我的世界服务器加皮肤不显示不出来,我的世界启动器添加皮肤,启动器为什么换不了皮肤...
- 联想Lenovo 小新Pro-13 AIR 2020 Windows 10 间歇性 蓝屏 的解决方法 : 又一个AI变成 人工智障的失败案例?
- 计算机博士英文复试自我介绍,博士生面试英文自我介绍范文
- 面试题-100盏灯问题
- IBM 2022年关于安全的五大预测;美通社推出2022年巴塞罗那世界移动通信大会整合传播方案 | 全球TMT...
- 军犬舆情:从京东美妆口红事件看企业舆情监测的重要性
- 安装Ubuntu后必须要做的几件事(二)--开发工具篇
- php 获取短信验证码