首页 文章 精选 留言 我的

精选列表

搜索[Harness工程],共10000篇文章
优秀的个人博客,低调大师

iOS逆向工程之Reveal工具的安装、配置与使用

一、在越狱设备上配置Reveal 下方的内容是基于越狱的设备操作的,设备的系统版本为iOS9.2.1越狱版。 1. Reveal Loader安装 首先我们打款越狱设备的Cydia,然后在搜索中输入Reveal Loader,并且进行安装即可,下方是安装后的效果。这一步比较简单,安装后重启SpringBoard即可。 2.导入libReveal.dylib 这一步也是比较关键的一步,安装完上述的Reveal Loader后请查看是否有/Library/RHRevealLoader这个文件夹,并且确定该文件夹中是否有libReveal.dylib这个文件,如果有的话,请跳过这一步,如果没有,那么就往下看吧。 (1)操作越狱设备文件所需的工具 当然,本部分需要对越狱设备中的文件系统进行操作,并且将Mac上的文件夹导入到设备中。当然你可以使用OpenSSH来连接你的设备,但是要是将Mac中的文件导入到越狱设备相应的文件夹中,还是使用下方的可视化工具更直观一些。 下方是我本地装的两个工具,当然其中任何一个都可以操作iOS设备的文件系统,不过iExplorer这个工具的功能更强大一些。iExplorer可以查看你的Mac上所有iOS设备的备份文件,当然也包括非越狱设备的备份文件。 (2)libReveal.dylib 我们Mac上的Reveal自带了两个库,一个是libReveal.dylib,一个是Reveal.framework。在未越狱的设备上使用库是后者,本篇博客中使用的是前者。这两个文件位于Reveal中的iOS Library中。Reveal菜单->Help->Show Reveal Library in Finder ->iOS Library。通过上述目录就可以找到我们需要的文件,当然本篇博客中我们只需要libReveal.dylib这一个文件。 找到上述的libReveal.dylib文件后,使用IExplorer拷到我们的设备中相应的目录下即可。如下所示。 至此,我们的Reveal配置工作就结束了,接下来就是使用Reveal来做一些事情了。 二、Reveal的使用 1.在设备上选择可以Reveal的App 我们在越狱设备上安装完Reveal Loader后就可以在设置中找到Reveal的配置项,在该配置项中我们可以去选择要Reveal的App, 当然对于越狱手机,手机上安装的所有App都可以Reveal。当然也包括从AppStore下载的,也包括iOS系统自带的。如下所示: 2.查看系统App"股市"的UI层级 上面Reveal的配置工作就以及配置好了,接下来的时间就是Reveal的使用时间了。Mac上Reveal查看设备上App的UI层级时是不需要使用USB进行连接的,但要保证你的iOS设备与你的Mac在同一个局域网内。下方这个截图就是我在使用Reveal时的一个截图,DecoupleDemo on 呵呵(iOS 9.3.2)这个设备是我一个同事的,当然他的手机是未越狱的设备,不过他的App中引入了Reveal.framework这个包,所以我在这边也是可以看到的。下方是我的越狱设备,当然这个“股市”App是iOS系统自带的App, 接下来就看一下如何去使用Reveal在越狱设备上来查看第三方App的UI层级。 在上方截图中,我们点击下方的股市这条就可以Reveal“股市”这个App了。下方就是“股市”这App的UI层级图。 本文转自zsdnr 51CTO博客,原文链接:http://blog.51cto.com/12942149/1929661,如需转载请自行联系原作者

优秀的个人博客,低调大师

HDS工程师手记——用“数据”遇见可知的未来

美国物理学会院士巴拉巴西的《爆发》,在最新的时间、最新的领域,讨论了一个最古老的问题:到底应该用决定论的观点,还是用非决定论的观点,看待人类行为?作为复杂网络研究的权威,巴拉巴西在大数据的新背景下,认为数据、科学以及技术的合力,会使得人类变得比预期中容易预测得多。就象泰勒格迪做到的那样。在日趋精密的数字技术条件下,有了从四处搜集来的信息,我们不会再把人类的行为视为互不相关、随意偶然的独立事件。《爆发》作者的观点:人类行为93%是可以预测的。例如,通过对大量数据的分析追踪和预测每个公民的行踪。比如电梯摄像头拍到你11点20分离开了公寓大楼,那么10分钟后在你家附近地铁站的监视画面中就很有可能搜寻到你。这并不只是科幻故事,而更可能是大数据时代人类真实的生存现状。在大数据时代,通过对各种数据的充分了解,预测个体的行为可以变得非常容易。 遇见可知的未来 如果最变化无常的人类行为93%是可以预测的,那么,未来其它的事情是不是也可以预测呢,是不是预测的准确率也能达到93%呢。假设未来能预测93%,我们是不是可以认为我们的未来是可知的,我们能遇见可知的未来? 在不远的未来,未来世界的预测准确率将超过93%,天气能预测准确率能达到93%, 地震能预测准确率超过93%,疾病预测准确率超过93%,甚至股市准确率超过93%。我们的未来就是可知的未来。 有数据才能遇见未来 大家都对遇见可知的未来充满期待,但怎么才能遇见可知的未来呢?这就是时下非常热门的话题:大数据分析。大数据分析流程如下图所示: 大数据分析流程 从上图可以看出,对于大数据我们期待商业智能,就像我们想吃美味可口的食物,我们需要厨房(分析平台),需要厨师(行业知识和分析算法),但最重要的是我们要有食材(数据),食材才是最根本、最重要的东西。我们要知道数据在哪里,并且知道如何从浩如烟海的数据中挑选出对我们有用的数据。例如食材很多,要能精确的挑选出哪些食材是做宫保鸡丁的最佳食材。 传统的数据仓库技术,如BA存在了几十年,但是它主要是处理结构化数据,主要提供商业分析,而现在发展为BI,Business Intelligence的英文缩写,中文解释为商务智能。BI最终展现给用户的信息就是报表或图视,数据集合就象玩具“魔方”一样,可以任意快速的旋转组合报表或视图。从内容上BI除了包含结构化数据,还包含非结构化数据,如互联网,社交媒体和物联网(IOT)数据。这是大数据的特点。 IOT – 是Internet Of Things的缩写,字面翻译是“物体组成的因特网”,准确的翻译应该为“物联网”。物联网(Internet Of Things)又称传感网,“物联网”(Internet Of Things)指的是将各种信息传感设备,如射频识别装置、红外感应器、全球定位系统、激光扫描器等种种装置与互联网结合起来而形成的一个巨大网络。其目的是让所有的物品都与网络连接在一起,方便识别和管理。物联网的兴起将带来数据爆炸增长,也将对我们大数据分析和未来社会的预测产生影响。 数据处理的关键- ETL 使用数据最关键是数据梳理 – ETL。从浩如烟海的数据中,提取对我们有价值的数据和信息。ETL,(Extract Transform Load),它实现数据的抽取,转换及装载工作。ETL在技术上主要涉及增量、转换、调度和监控等几个方面的处理: 抽取:将数据从各种原始的业务系统中读取出来。 转换:按照预先设计好的规则将抽取的数据进行转换、清洗,以及处理一些冗余、歧义的数据,使本来异构的数据格式能统一起来。 装载:将转换完的数据按计划增量或全部导入到目标数据库中。 现在的大数据分析中,ETL是基础也是关键,HDS公司最近收购的Pentaho就能够实现各种数据的ETL整合。如下图所示: 从上图可以看出,Pentaho可以将传统的客户信息,交易信息等结构化数据,ETL(PDI)到标准的DW库中,也可以将IOT数据,地理位置信息(Location), 互联网和社交媒体信息ETL(PDI)到规定的目标中,如MongoDB和Hadoop中,并且能够集成传统数据和新的社交数据,为大数据分析提供全新视角。 拥有大量的数据,我们可以遇见可知的未来,数据ETL加工、转换、调度和处理是大数据分析的基础,HDS的Pentaho能够实现各种数据的ETL加工、转换、调度和处理,为企业客户大数据分析助一臂之力。 本文作者:谢勇 来源:51CTO

优秀的个人博客,低调大师

Android 图解逆向工程中ARM常用汇编指令(一)

我们走得太快,灵魂都跟不上了。 微小的幸福就在身边,容易满足就是天堂。 在逆向和爆破中我们经常会在IDA中接触到汇编,一般做安卓的不会太了解VB回编等,不太了解的同学可以先查看上篇文章 《Android ARM常用的汇编指令合集》 再来继续我们的学习,我们先来看张图。 这个view里面有 PUSH/LDR/SUB/MOVS/BLX/SUBS/BEQ/CMP ,这些差不多都是常见的,不过也不需要看得懂,理解这个指令即可,接下来我们就来分析下这些指令分别有什么作用吧。 先引入 概念性 东西,免得大家后面被搞混,那就是为什么会有S和!。 S:指令执行后程序状态寄存器的条件标志位将被刷新 , 如ADDS R1,R0,#2 ! :指令中的地址表达式中含有!后缀时,指令执行后,基址寄存器中的地址值将发生变化,变化的结果是:基址寄存器中的值(指令执行后)=指令执行前的值 + 地址偏移量,如 LDR R3,[R0,#2]! 指令执行后,R0 = R0 + 2 接下来分别讲解这个View里面的指令分别有什么作用。 PUSH,顾名思义,直接PUSH进栈了。相反的,POP则为出栈了。 指令示例: PUSH{cond} reglist PUSH将寄存器推入满递减堆栈 PUSH {r0,r4-r7} 将R0,R4-R7寄存器内容压入堆栈 POP{cond} reglist POP从满递减堆栈中弹出数据到寄存器 POP {r0,r4-r7} 将R0,R4-R7寄存器从堆栈中弹出 LDR,指令语法:LDR{条件} 目的寄存器,<存储器地址>,LDR指令用于从存储器中将一个32位的字数据传送到目的寄存器中。该指令通常用于从存储器中读取32位的字数据到通用寄存器,然后对数据进行处理,当程序计数器PC作为 目的寄存器时,指令从存储器中读取的字数据被当作目的地址,从而可以实现程序流程的跳转。该指令在程序设计 中比较常用,且寻址方式灵活多样。 详情可见上篇文章中 Ctrl + F 搜索《Android ARM常用的汇编指令合集》:加载/存储指令 指令示例: LDR R0,[R1] ;将存储器地址为R1的字数据读入寄存器R0。 LDR R0,[R1,R2] ;将存储器地址为R1+R2的字数据读入寄存器R0。 MOVS 、LDR 这些是跳转指令,直接向程序计数器PC写入跳转地址值,通过向程序计数器PC写入跳转地址值,可以实现在4GB的地址空间中的任意跳转,那有人会问,如果说从当前指令向前或向后的32MB的地址空间的跳转是怎么个实现原理?其实在 上篇文章中提及到了,它们是B\BL\BLX\BX 四大指令,这个我们最后才来讲解,其实它们有点像我们常说的分支结构,我们从图片里面选第四条指令作为查看数据。 则可以看到,R5是原地址,其实为0xFF8->0x104A,复制返回地址到PC,实现子的返回,做安卓的同学可能会有个疑问,为什么有个S,因为语法就是 MOV{条件}{S} 目的寄存器+源操作数。 看到这里大家可能会头晕,怎么感觉都是看不懂的数字,那其它那些,如ADD、等就给大家整理了一份表格。 助记符 指令功能描述 助记符 指令功能描述 ADD 加法指令 MRS 传送CPSR或SPSR的内容到通用寄存器指令 ADC 带进位加法指令 MRC 从协处理器寄存器到ARM寄存器的数据传输指令 AND 逻辑与指令 MSR 传送通用寄存器到CPSR或SPSR的指令 B 分支指令 MUL 32位乘法指令 BL 带返回的分支指令 BIC 位清零指令 BLX 带返回和状态切换的分支指令 MLA 32位乘加指令 BX 带状态切换的分支指令 MVN 数据取反传送指令 TST 位测试指令 ORR 逻辑或指令 CDP 协处理器数据操作指令 RSC 带错位的逆向减法指令 RSB 逆向减法指令 SBC 带错位减法指令 CMN 比较反值指令 CMP 比较指令 STC 协处理器寄存器写入存储器指令 EOR 异或指令 STM 批量内存字写入指令 LDC 存储器到协处理器的数据传输指令 STR 寄存器到存储器的数据存储指令 LDM 加载多个寄存器指令 SUB 减法指令 LDR 存储器到寄存器的数据加载指令 SWI 软件中断指令 MCR 从ARM寄存器到协处理器寄存器的数据传输指令 TEQ 相等测试指令 MOV 数据传送指令 SUBS 从表中可以看到,SUB是减法指令,如SUB R0,R1,R2则对应了R0 = R1 - R2,SUB R0,R1,#1 则是R0 = R1 -1,要注意的是 SUBS 是低32位相减。 那 BEQ 呢?!不要着急,来看下图 BEQ 指令是跳转指令,但是跳转要满足一定的条件,满足则跳转执行,看下图红框部分。 那就只剩下 CMP 了,CMP是比较指令,指令格式:CMP{条件} 操作数1,操作数2。 指令示例: 如 CMP R1,#10,则等于比较R1和10,并设置CPSR的标志位。 CMP R1,R0 ;将寄存器R1的值与寄存器R0的值相减,并根据 结果设置CPSR的标志位 CMP R1,#100 ;将寄存器R1的值与立即数100相减,并根 据结果设置CPSR的标志位 如果和BEQ一起使用话则是:CMP R1,#0 换行 BEQ Label ;当CPSR寄存器中的Z条件码置位时,程序跳转到标号Label处执行 OK , 从第一张图中我们看到后面跟的是两位,那如果是复杂一点的两位以上怎么看? 指令示例: 先来看MOV的,如MOV R0,R1 , LSL R3 ,这个又是何解?其实它是将R1的值左移R3位,然后将结果存放到R0中 。 再来看LDR的,LDR R0,[R1],R2 ,这个何解? 它是将存储器地址为R1的字数据读入寄存器R0,并将新地址R1+R2写入R1 , 要记住,R1是最终落地的地址 。 上篇文章中提及了其它更复杂的指令示例,不太明白这些可以看上篇文章的《Android ARM常用的汇编指令合集》,然后Ctrl + F 搜:数据加载/存储指令 或者搜索 数据处理指令,又或者搜索 自己需要的指令。 || 版权声明:本文为博主杜锦阳原创文章,转载请注明出处。http://blog.csdn.net/DJY1992/article/details/71404947

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册