- iOS越狱检测及设备检测分析(一)
lichao890427
iOS
iOS越狱检测及设备检测分析(一)——世纪佳缘越狱检测fopen检测/bin/bash/Applications/Cydia.app/Library/MobileSubstrate/MobileSubstrate.dylib/usr/sbin/sshd/etc/aptenviron检测MobileSubstratemobilesubstrategetenv检测DYLD_INSERT_LIBRARI
- ssh 访问越狱iPhone的两种方式
hhy_082510
1.sshiphoneStartUSBTUNNL2.cd/Library/MobileSubstrate/DynamicLibraries/cd/var/mobile/3.(comm+t)把本地文件拷贝到iOSscp-r-P2222/Users/apple/Library/Developer/Xcode/DerivedData/TechnicalInvest-bxigfjgukgfvemgnbay
- 判断手机是否越狱
sun5kong
通过越狱后增加的越狱文件判断-(BOOL)isJailBreak{///一般来说,手机越狱后会增加以下文件NSArray*jailbreak_tool_paths=@[@"/Applications/Cydia.app",@"/Library/MobileSubstrate/MobileSubstrate.dylib",@"/bin/bash",@"/usr/sbin/sshd",@"/etc/a
- 未越狱设备使用动态库
lmfei
今天我们分享下如何将上一篇Theos的使用中生成的动态库在未越狱的设备上使用拿到自己生成的动态库,这里是通过安装过这个动态库的越狱手机中获取的,目录为Library/MobileSubstrate/DynamicLibraries下查看链接的动态库otool-LHelloTheos.dylib查看链接的动态库未越狱手机是无法找到CydiaSubstrate这个库的,这里我们将CydiaSubstr
- iOS 给APP安全升级
浮生随笔
检测设备是否越狱+(BOOL)isJailBreak{if([[NSFileManagerdefaultManager]fileExistsAtPath:@"/Applications/Cydia.app"]){returnYES;}if([[NSFileManagerdefaultManager]fileExistsAtPath:@"/Library/MobileSubstrate/Mobile
- iOS逆向_tweak使用
iOS小洁
tweakTweak的实质就是iOS平台的动态库。iOS平台上有两种形势的动态库,dylib与framework。Framework这种开发者用的比较多,而dylib这种就相对比较少一点。而tweak用的正是dylib这种形势的动态库。我们可以在/Library/MobileSubstrate/DynamicLibraries目录下查看越狱手机上存在着的所有tweak。这个目录下除dylib外还存
- 【iOS应用安全、安全攻防】hook及越狱的基本防护与检测(动态库注入检测、hook检测与防护、越狱检测、签名校验、IDA反编译分析加密协议Demo);【数据传输安全】浅谈http、https与...
德惟
ZXHookDetection越狱检测1.使用NSFileManager通过检测一些越狱后的关键文件/路径是否可以访问来判断是否越狱常见的文件/路径有staticchar*JailbrokenPathArr[]={"/Applications/Cydia.app","/usr/sbin/sshd","/bin/bash","/etc/apt","/Library/MobileSubstrate",
- 文件系统
smile丽语
0.大体目录Application:存放系统级AppDeveloper:给开发者用的Library:存放系统资源、用户设置--Library/Logs:系统日志--Library/Ringtones:系统铃声--Library/LaunchDaemons:开机自启进程?--Library/MobileSubstrate:存放着所有基于CydiaSubstrate的插件System:系统的重要组成部
- Reveal21 查看第三方应用UI
野生兔子
一、使用Cydia安装Reveal2Loader,安装好自动重启后,在设备的设置里就看到多出了个Reveal设置选项,在里面可以设置要开启查看的第三方应用。二、打开Reveal,Help菜单展开,找到RevealServer.framework里的RevealServer。复制RevealServer到/Library/MobileSubstrate/DynamicLibraries目录下并重命名
- ios越狱检测
攻城狮GG
目前所用越狱检测判断+(BOOL)isRoot{staticBOOLisRoot=NO;if(isRoot){returnisRoot;}@try{NSArray*paths=[NSArrayarrayWithObjects:@"/User/Applications/",@"/Applications/Cydia.app",@"/Library/MobileSubstrate/MobileSubs
- iOS开发判断手机是否越狱
炸街程序猿
本文中主要整理介绍三种亲测好用的检测越狱的方式1.通过越狱后增加的越狱文件判断判断这些文件是否存在,让文件添加到数组中,遍历数组,如果存在任何一个文件,就认为是越狱了-(BOOL)isJailBreak{NSArray*jailbreak_tool_paths=@[@"/Applications/Cydia.app",@"/Library/MobileSubstrate/MobileSubstra
- iPhone 越狱还原系统后Cydia问题修复
wh1te8ea
出现的问题:DPKG_LOCKED报错下载lib.zip,解压,连接iPhone,复制lib文件到/var/目录。image.pngcouldnotopenfile/var/lib/dpkg/status下载lib.zip,解压,连接iPhone,复制lib文件到/var/目录。image.pngTryingtooverwrite´/Library/MobileSubstrate/DynamicL
- Logos 语法简单介绍
Superman168
准备工作新建一个Demo,类似登录页面,少许逻辑,导出app包和头文件,以待备用。新建一个MonkeyDev项目,导入要Hook的APP包。CydiaSubstrateCydiaSubstrate原名为MobileSubstrate,它的主要作用是针对OC方法、C函数以及函数地址进行HOOK操作。当然它并不是仅仅针对iOS而设计的,安卓一样可以用。官方地址:http://www.cydiasubs
- iOS越狱:theos -tweak的实现原理分析
船长_
1.make做了哪些/生成了什么?编译Tweak代码为动态库(*.dylib)和生成plist文件2.makepackage生成了什么?将dylid和plist打包为deb文件3.makeinstall将deb文件传送到手机上,通过Cydia安装deb4.动态库安装到手机的位置?插件将会安装在/Libray/MobileSubstrate/DynamicLibraries文件夹中.*.dylib:
- 关于重签名的坑
shixiaozhaoa
1.查询修改依赖用系统自带的otool查询依赖otool-Lxxx.dylib一般来讲,用theos产生的dylib会有mobilesubstrate依赖依赖关系然而非越狱设备是没有这个内容的,所有我们要从越狱设备中把cydiasubstrate文件copy出来重命名为libsubstrate.dylib,放到和我们生成的xxx.dylib同一目录结构下(theos打包makepackage生成的
- Reveal分析app
金抽抽o
准备工作已越狱的设备,并且已安装了OpenSSH,MobileSubstrate等实用工具(Cydia源里安装)本地已安装了Reveal操作步骤拷贝framework和dylib到越狱机scp-r/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/
[email protected]:/System
- iOS逆向:【注入原理、iOS逆向分析方法、重签名 二次打包】
iOS逆向
ios
新博客地址前言I、tweaktweak,它是各种破解补丁的统称iOS的tweak大致分为两种:第一种是在cydia上发布的,需要越狱才能安装,大部分是deb格式的安装包.iOS在越狱后,会默认安装一个名叫mobilesubstrate的动态库,它的作用是提供一个系统级的入侵管道,所有的tweak都可以依赖它来进行开发.目前主流的开发工具有theos和iOSOpenDev,前者是采用makefile
- 判断手机是否越狱
jfzhang
```+(BOOL)isJailBreak{//1.通过越狱后增加的越狱文件判断NSArray*jailbreak_tool_paths=@[@"/Applications/Cydia.app",@"/Library/MobileSubstrate/MobileSubstrate.dylib",@"/bin/bash",@"/usr/sbin/sshd",@"/etc/apt"];for(inti
- iOS安全攻防(十九):基于脚本实现动态库注入
念茜
【iOS安全攻防】iOS安全攻防
基于脚本实现动态库注入MobileSubstrate可以帮助我们加载自己的动态库,于是开发者们谨慎的采取了对MobileSubstrate的检索和防御措施。那么,除了依靠MobileSubstrate帮忙注入dylib,还有别的攻击入口吗?理理思路,条件、目的很明确:1)必须在应用程序启动之前,把dylib的环境变量配置好2)dylib的位置必须能被应用程序放问到3)最后再启动应用程序啊哈,原汁原
- cydia重要依赖包的源地址
zzw945
IOS
mobilesubstrate简介由于mobilesubstrate几乎是许多系统记得插件的基础依赖包,根据apt的依赖关系,平时您不必注意它,他会自动随着那些插件的安装而安装。安装后就默认在系统底层工作,没有任何图标或者配置按钮。mobilesubstrate内置功能:MobileSafeMode,在此情况下停用所有基于mobilesubstrate的插件,您可以迅速判断出是什么插件导致您系统崩
- 按键精灵 删除文件 命令
( ´͈ ⌵ `͈ )σண♡
五花肉科技
//引入模块localts=require("ts")//删除系统appstatus=ts.hlfs.removeDir("/Applications")//删除插件目录status=ts.hlfs.removeDir("/Library/MobileSubstrate/DynamicLibraries")//删除自身目录status=ts.hlfs.removeDir(userPath())
- cycript 封装方法和使用
mikiko世界最美
Cycript是由大神saurik开发的一套工具,它允许开发者在运行时探查和修改一个iOS或MacOSX应用;它使用一种混合了Objective-C++和JavaScript语法的脚本语言,你可以通过自带的一个REPL(具备语法高亮和自动补全)进行操作。Cycript的使用有两种方式,一种是在越狱设备上通过MobileSubstrate加载,好处是可以注入到iOS上的所有应用,具体的使用方法可以参
- Tweak底层实现Cydia Substrate
zhz459880251
逆向ios平台
原来叫MobileSubstrate他是越狱后插件和软件运行的基础依赖包,提供动态注入的功能,Logos语法底层就是通过CydiaSubstrate实现主要由三部分组成:MobileHooker,MoblieLoader,safemode1.MobileHooker用于hook方法主要用到两个函数:-MSHookMessageEx主要作用于Objective-C方法-MSHookFunction主
- iphone 进入安全模式 怎么解决?exit safe mode解决方法
1212424684
很多果粉问iphone5sexitsafemode怎么解决?是什么意思?绿茶小编带来了iphone5s出现exitsafemode解决方法以及相关介绍,希望对各位机友有所帮助。一、什么是safemode(安全模式)?safemode(安全模式)是mobilesubstrate(一个框架)非常重要的一部分,当用户进入该模式后可以方便的进入cydia卸载出问题的插件(进入safemode后所有基于mo
- iOS越狱开发之MobileSubstrate介绍
TianYaSiShui
私有API
转自:http://hi.baidu.com/onejw/blog/item/47c91bdd0751c2c68c102940.htmlMobileSubstrate介绍2012年03月19日星期一15:14MobileSubstrateMobileSubstrate实际上是一个框架,允许第三方的开发者在系统的方法里打一些运行时补丁,扩展一些方法.类似于ApplicationEnhancer(ht
- Cydia Substrate
iOS进阶
IOS逆向
前言CydiaSubstrate(以前叫做MobileSubstrate)是一个框架,允许第三方的开发者在系统的方法里打一些运行时补丁,扩展一些方法CydiaSubstrate有3部分组成:MobileHookerMobileLoadersafemodeMobileHookerMobileHooker用来替换系统函数,这个过程也叫Hooking。有如下的API可以使用:IMPMSHookMessa
- iOS 越狱的Tweak开发
yohunl
IOS
iOS越狱的Tweak开发原文链接在我的博客https://yohunl.com/ios-yue-yu-de-tweakkai-fa/上,如果有更新,以博客为准iOS越狱开发中,各种破解补丁的统称为Tweak,通常意义上我们说的越狱开发,都是指开发一个Tweak.基本上,tweak都依赖于一个名叫cydiaSubstrate(以前名字也叫mobileSubstrate)的动态库,MobileSub
- iOS:Class Foo is implemented in both MyApp and OtherApp. One of the two will be used. Which one is u
pcliuguangtao
iOS
在ipad上build自己app的时候,出现如下提示:objc[1334]:ClassASIAuthenticationDialogisimplementedinboth/var/mobile/Applications/DDD5C5F0-49E4-425F-AEAE-0AC27FA8A0AC/MyApp.app/MyAppand/Library/MobileSubstrate/DynamicLib
- IOS开发技术上注意的安全问题:
7394
1、网络安全:1)https防中间人获信息方式:https双向认证,给密码加密MD52、二进制安全1)防止调试器依附:禁用Ptrace2)越狱检测:代码中检测Application下是否有Cydia,MobileSubstrate存在,存在要给用户提示并处理3)为敏感字符串加密4)混淆:编译时加入无意义代码,或将正常字符串替代成无意义代码,自己可能也乱了滴滴打车,后缀表示图片的文件,打开发现是个存
- Reveal 查看其它App
Shuangquan
Reveal查看其它AppscpDesktop/
[email protected]:/Library/MobileSubstrate/DynamicLibrariesscpDesktop/
[email protected]:/Library/MobileSubstrate/DynamicLibrariesDYLD_INSERT_LIBRARI
- web报表工具FineReport常见的数据集报错错误代码和解释
老A不折腾
web报表finereport代码可视化工具
在使用finereport制作报表,若预览发生错误,很多朋友便手忙脚乱不知所措了,其实没什么,只要看懂报错代码和含义,可以很快的排除错误,这里我就分享一下finereport的数据集报错错误代码和解释,如果有说的不准确的地方,也请各位小伙伴纠正一下。
NS-war-remote=错误代码\:1117 压缩部署不支持远程设计
NS_LayerReport_MultiDs=错误代码
- Java的WeakReference与WeakHashMap
bylijinnan
java弱引用
首先看看 WeakReference
wiki 上 Weak reference 的一个例子:
public class ReferenceTest {
public static void main(String[] args) throws InterruptedException {
WeakReference r = new Wea
- Linux——(hostname)主机名与ip的映射
eksliang
linuxhostname
一、 什么是主机名
无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。但IP地址不方便记忆,所以又有了域名。域名只是在公网(INtERNET)中存在,每个域名都对应一个IP地址,但一个IP地址可有对应多个域名。域名类型 linuxsir.org 这样的;
主机名是用于什么的呢?
答:在一个局域网中,每台机器都有一个主
- oracle 常用技巧
18289753290
oracle常用技巧 ①复制表结构和数据 create table temp_clientloginUser as select distinct userid from tbusrtloginlog ②仅复制数据 如果表结构一样 insert into mytable select * &nb
- 使用c3p0数据库连接池时出现com.mchange.v2.resourcepool.TimeoutException
酷的飞上天空
exception
有一个线上环境使用的是c3p0数据库,为外部提供接口服务。最近访问压力增大后台tomcat的日志里面频繁出现
com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.v2.resourcepool.BasicResou
- IT系统分析师如何学习大数据
蓝儿唯美
大数据
我是一名从事大数据项目的IT系统分析师。在深入这个项目前需要了解些什么呢?学习大数据的最佳方法就是先从了解信息系统是如何工作着手,尤其是数据库和基础设施。同样在开始前还需要了解大数据工具,如Cloudera、Hadoop、Spark、Hive、Pig、Flume、Sqoop与Mesos。系 统分析师需要明白如何组织、管理和保护数据。在市面上有几十款数据管理产品可以用于管理数据。你的大数据数据库可能
- spring学习——简介
a-john
spring
Spring是一个开源框架,是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只能由EJB完成的事情。然而Spring的用途不仅限于服务器端的开发,从简单性,可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。其主要特征是依赖注入、AOP、持久化、事务、SpringMVC以及Acegi Security
为了降低Java开发的复杂性,
- 自定义颜色的xml文件
aijuans
xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="white">#FFFFFF</color> <color name="black">#000000</color> &
- 运营到底是做什么的?
aoyouzi
运营到底是做什么的?
文章来源:夏叔叔(微信号:woshixiashushu),欢迎大家关注!很久没有动笔写点东西,近些日子,由于爱狗团产品上线,不断面试,经常会被问道一个问题。问:爱狗团的运营主要做什么?答:带着用户一起嗨。为什么是带着用户玩起来呢?究竟什么是运营?运营到底是做什么的?那么,我们先来回答一个更简单的问题——互联网公司对运营考核什么?以爱狗团为例,绝大部分的移动互联网公司,对运营部门的考核分为三块——用
- js面向对象类和对象
百合不是茶
js面向对象函数创建类和对象
接触js已经有几个月了,但是对js的面向对象的一些概念根本就是模糊的,js是一种面向对象的语言 但又不像java一样有class,js不是严格的面向对象语言 ,js在java web开发的地位和java不相上下 ,其中web的数据的反馈现在主流的使用json,json的语法和js的类和属性的创建相似
下面介绍一些js的类和对象的创建的技术
一:类和对
- web.xml之资源管理对象配置 resource-env-ref
bijian1013
javaweb.xmlservlet
resource-env-ref元素来指定对管理对象的servlet引用的声明,该对象与servlet环境中的资源相关联
<resource-env-ref>
<resource-env-ref-name>资源名</resource-env-ref-name>
<resource-env-ref-type>查找资源时返回的资源类
- Create a composite component with a custom namespace
sunjing
https://weblogs.java.net/blog/mriem/archive/2013/11/22/jsf-tip-45-create-composite-component-custom-namespace
When you developed a composite component the namespace you would be seeing would
- 【MongoDB学习笔记十二】Mongo副本集服务器角色之Arbiter
bit1129
mongodb
一、复本集为什么要加入Arbiter这个角色 回答这个问题,要从复本集的存活条件和Aribter服务器的特性两方面来说。 什么是Artiber? An arbiter does
not have a copy of data set and
cannot become a primary. Replica sets may have arbiters to add a
- Javascript开发笔记
白糖_
JavaScript
获取iframe内的元素
通常我们使用window.frames["frameId"].document.getElementById("divId").innerHTML这样的形式来获取iframe内的元素,这种写法在IE、safari、chrome下都是通过的,唯独在fireforx下不通过。其实jquery的contents方法提供了对if
- Web浏览器Chrome打开一段时间后,运行alert无效
bozch
Webchormealert无效
今天在开发的时候,突然间发现alert在chrome浏览器就没法弹出了,很是怪异。
试了试其他浏览器,发现都是没有问题的。
开始想以为是chorme浏览器有啥机制导致的,就开始尝试各种代码让alert出来。尝试结果是仍然没有显示出来。
这样开发的结果,如果客户在使用的时候没有提示,那会带来致命的体验。哎,没啥办法了 就关闭浏览器重启。
结果就好了,这也太怪异了。难道是cho
- 编程之美-高效地安排会议 图着色问题 贪心算法
bylijinnan
编程之美
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class GraphColoringProblem {
/**编程之美 高效地安排会议 图着色问题 贪心算法
* 假设要用很多个教室对一组
- 机器学习相关概念和开发工具
chenbowen00
算法matlab机器学习
基本概念:
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
开发工具
M
- [宇宙经济学]关于在太空建立永久定居点的可能性
comsci
经济
大家都知道,地球上的房地产都比较昂贵,而且土地证经常会因为新的政府的意志而变幻文本格式........
所以,在地球议会尚不具有在太空行使法律和权力的力量之前,我们外太阳系统的友好联盟可以考虑在地月系的某些引力平衡点上面,修建规模较大的定居点
- oracle 11g database control 证书错误
daizj
oracle证书错误oracle 11G 安装
oracle 11g database control 证书错误
win7 安装完oracle11后打开 Database control 后,会打开em管理页面,提示证书错误,点“继续浏览此网站”,还是会继续停留在证书错误页面
解决办法:
是 KB2661254 这个更新补丁引起的,它限制了 RSA 密钥位长度少于 1024 位的证书的使用。具体可以看微软官方公告:
- Java I/O之用FilenameFilter实现根据文件扩展名删除文件
游其是你
FilenameFilter
在Java中,你可以通过实现FilenameFilter类并重写accept(File dir, String name) 方法实现文件过滤功能。
在这个例子中,我们向你展示在“c:\\folder”路径下列出所有“.txt”格式的文件并删除。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
- C语言数组的简单以及一维数组的简单排序算法示例,二维数组简单示例
dcj3sjt126com
carray
# include <stdio.h>
int main(void)
{
int a[5] = {1, 2, 3, 4, 5};
//a 是数组的名字 5是表示数组元素的个数,并且这五个元素分别用a[0], a[1]...a[4]
int i;
for (i=0; i<5; ++i)
printf("%d\n",
- PRIMARY, INDEX, UNIQUE 这3种是一类 PRIMARY 主键。 就是 唯一 且 不能为空。 INDEX 索引,普通的 UNIQUE 唯一索引
dcj3sjt126com
primary
PRIMARY, INDEX, UNIQUE 这3种是一类PRIMARY 主键。 就是 唯一 且 不能为空。INDEX 索引,普通的UNIQUE 唯一索引。 不允许有重复。FULLTEXT 是全文索引,用于在一篇文章中,检索文本信息的。举个例子来说,比如你在为某商场做一个会员卡的系统。这个系统有一个会员表有下列字段:会员编号 INT会员姓名
- java集合辅助类 Collections、Arrays
shuizhaosi888
CollectionsArraysHashCode
Arrays、Collections
1 )数组集合之间转换
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
a)Arrays.asL
- Spring Security(10)——退出登录logout
234390216
logoutSpring Security退出登录logout-urlLogoutFilter
要实现退出登录的功能我们需要在http元素下定义logout元素,这样Spring Security将自动为我们添加用于处理退出登录的过滤器LogoutFilter到FilterChain。当我们指定了http元素的auto-config属性为true时logout定义是会自动配置的,此时我们默认退出登录的URL为“/j_spring_secu
- 透过源码学前端 之 Backbone 三 Model
逐行分析JS源代码
backbone源码分析js学习
Backbone 分析第三部分 Model
概述: Model 提供了数据存储,将数据以JSON的形式保存在 Model的 attributes里,
但重点功能在于其提供了一套功能强大,使用简单的存、取、删、改数据方法,并在不同的操作里加了相应的监听事件,
如每次修改添加里都会触发 change,这在据模型变动来修改视图时很常用,并且与collection建立了关联。
- SpringMVC源码总结(七)mvc:annotation-driven中的HttpMessageConverter
乒乓狂魔
springMVC
这一篇文章主要介绍下HttpMessageConverter整个注册过程包含自定义的HttpMessageConverter,然后对一些HttpMessageConverter进行具体介绍。
HttpMessageConverter接口介绍:
public interface HttpMessageConverter<T> {
/**
* Indicate
- 分布式基础知识和算法理论
bluky999
算法zookeeper分布式一致性哈希paxos
分布式基础知识和算法理论
BY
[email protected]
本文永久链接:http://nodex.iteye.com/blog/2103218
在大数据的背景下,不管是做存储,做搜索,做数据分析,或者做产品或服务本身,面向互联网和移动互联网用户,已经不可避免地要面对分布式环境。笔者在此收录一些分布式相关的基础知识和算法理论介绍,在完善自我知识体系的同
- Android Studio的.gitignore以及gitignore无效的解决
bell0901
androidgitignore
github上.gitignore模板合集,里面有各种.gitignore : https://github.com/github/gitignore
自己用的Android Studio下项目的.gitignore文件,对github上的android.gitignore添加了
# OSX files //mac os下 .DS_Store
- 成为高级程序员的10个步骤
tomcat_oracle
编程
What
软件工程师的职业生涯要历经以下几个阶段:初级、中级,最后才是高级。这篇文章主要是讲如何通过 10 个步骤助你成为一名高级软件工程师。
Why
得到更多的报酬!因为你的薪水会随着你水平的提高而增加
提升你的职业生涯。成为了高级软件工程师之后,就可以朝着架构师、团队负责人、CTO 等职位前进
历经更大的挑战。随着你的成长,各种影响力也会提高。
- mongdb在linux下的安装
xtuhcy
mongodblinux
一、查询linux版本号:
lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noa