逆向和越狱开发
喜欢雨天的我
爱技术,爱生活.
展开
-
IOS逆向--ARM/THUMB解读
ARM处理器用到的指令集分为*ARM和THUMB两种;ARM指令长度均为32bit,THUMB指令长度均为16bit。所有指令可大致分为3类,分别是数据操作指令,内存指令和分支指令。*数据操作指令 数据操作指令有一下2条规则 1. 所有操作数均为32bit 2. 所有结果均为32bit,且只能存放在寄存器中。 总的来说,数据指令的基本格式是:op (cond) {s} Rd原创 2017-08-16 15:47:23 · 890 阅读 · 0 评论 -
IOS逆向--使用IDA的Patch更改汇编或二进制码并写入项目和deb重新打包
本次遇到一个项目,因为是逆向 不能拿到项目的源码,需要改的也是很简单的判断语句,但是也把我这个菜逼弄懵逼了。还好有个如师长的逆向大佬指导,我才去了解这个Patch的功能。接下来我以一个小案例来实现。小案例需求加我们有这样一个判断 int i = 4;if(i == 3){ // 做一些事情}我们想要把 ==号换为 >=号。当然如果你有源码的话改起来很方便,但是可惜我们没有源码。我写原创 2017-09-17 13:52:28 · 8669 阅读 · 0 评论 -
IOS逆向--进行dylib的重新签名
为何我要说明这个呢! 因为项目中逆向打包时候后运行,控制台出现了[MetricsController] Connection refused because entitlements are missing。 这个原因是签名无效了。 那么知道原因了 ,我们应该如何进行签名呢答案就是ldidldid我们以AppStore为例。比如我写了一个dylib 想要优化AppStore的下载按键 让我在原创 2017-09-18 00:24:00 · 4710 阅读 · 0 评论 -
IOS逆向--performSelector动态调用
performSelector和直接调用方法的区别performSelector: withObject:是在iOS中的一种方法调用方式。他可以向一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以这也是runtime的一种应用方式。所以performSelector和直接调用方法的区别就在与runtime。直接调用编译是会自动校验。如果方法不存在,那么直接调用 在编译时候就能够发现,编译转载 2017-09-01 16:15:55 · 698 阅读 · 0 评论 -
dumpdecrypted对系统ios9.3.2以上的版本砸壳失败
报错在9.3系统以上 执行dumpdecrypted会出现killed:9的问题。如图:解决方法我们切换回mobile用户执行su mobile //在你砸壳前切换用户权限 继续准备dumpdecrypted,编译好~远程自己的设备:ssh root@设备IP 执行命令:su mobile 查看砸壳APP路径命令:ps -e | grep AppName。查看APP的Documents路原创 2017-09-11 11:44:34 · 925 阅读 · 0 评论 -
IOS逆向--iOSOpenDev进行开发tweak
初来乍到研究越狱开发,昨天中午开始上网搜索越狱环境搭建,后来查到iosOpenDev软件,是个很方便的编写插件,而且可以直接用Xcode创建的工具,便开始着手学习如何去安装集合了网上的方法后,我安装的时候发现:1.作者最后更新的时间是四个月前,而且并未适配Xcode 6之后的版本,所以在当前OS X 10.11.1 和Xcode 7 下造成了很多问题尤其是大量的安装失败却得不到解答方法,很是让我懊转载 2017-09-11 13:11:31 · 1861 阅读 · 0 评论 -
IOS逆向--Tweak和app交互方案【进程通信】
Tweak端:CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), NULL, &NotificationReceivedCallback,原创 2017-09-11 15:06:49 · 9998 阅读 · 0 评论 -
IOS逆向--手动忽略clang编译器警告
在iOS开发过程中, 我们可能会碰到一些系统方法弃用, weak、循环引用、不能执行之类的警告。 有代码洁癖的孩子们很想消除他们, 今天就让我们来一次Fuck 警告!!首先学会基本的语句#pragma clang diagnostic push#pragma clang diagnostic ignored "-Wdeprecated-declarations"这里写出现警告的代码#pragma转载 2017-09-12 11:42:54 · 2533 阅读 · 0 评论 -
Theos MakeFile的内容
theos 是初期ios插件开发者经常使用的工具,现在被集成在iosOpenDev的logos所实现,不需要再自己写makefile来实现程序的自动编译。不过这里还是要简单的介绍一下如何写一个插件的makefile,这样更有利于理解编译机制. 1 # 2 # Use this makefile to compile service project. 3 # When change SDK转载 2017-10-18 11:26:25 · 1082 阅读 · 0 评论 -
makefile管理的项目转Cmake必看的一些资料
作为经常使用make的朋友 想要使用简化的命令可以使用Cmake进行管理跨平台项目。因此Cmake的学习必不可少,这是我收集的2个转Cmake的文章。Convert Makefile to CMakeLists.txt manually用CMake代替makefile进行跨平台交叉编译原创 2017-12-19 19:30:08 · 7692 阅读 · 0 评论 -
ios11版本越狱
最近国外大牛公布的视频,和其对应的项目链接。ios11以上越狱介绍:https://www.youtube.com/watch?v=NuiwJBtVA54Xcode越狱项目地址:https://github.com/iabem97/topanga原创 2017-12-25 11:34:54 · 2060 阅读 · 0 评论 -
Andorid-逆向之路(相关文章收集)
前段时间一直是从零接触了IOS并进行IOS逆向相关开发,最近一段突然想了解一下Android的逆向之路。虽然有相近的 但是Android我觉得体系更加庞大,牵扯Java和JNI。所以 我为了了解Hacker们注入Android的方法 ,因此在网上找了几篇 推荐大家看一下。Hook方式使用Xposed 进行Hook源程序的函数上。介绍文章 此篇主要介绍Java层面上的入门实例。同样的另一篇文章最原创 2017-12-25 20:58:21 · 299 阅读 · 0 评论 -
IOS-反调试与绕过的技巧
出自IOSRe论坛的一篇干货 收藏起来以免忘记。原创 2017-12-25 21:09:46 · 1660 阅读 · 0 评论 -
LLDB在IOS断点调试
LLDB阐述LLDB 是一个有着 REPL 的特性和 C++ ,Python 插件的开源调试器。LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。(摘自 与调试器共舞)它的基本语法为 [ [...]] [-options [option-value]] [argu转载 2017-08-28 18:12:42 · 2083 阅读 · 0 评论 -
LLDB与debugserver
配置debugserver默认情况下iOS上并没有安装debugserver,因此需要设备链接一次Xcode,并在Window->Devices菜单中增加此设备后。会被安装到IOS的Developer/usr/bin/目录下。瘦身 接下来我们将当前设备进行从IOS拷贝到我们的mac系统上,进行对debugserver进行瘦身lipo -thin armv7s ~/debugserver -ou原创 2017-08-22 16:43:11 · 1838 阅读 · 0 评论 -
iOS逆向--dumpdecrypted砸壳
一、前提介绍1,有些从 APPStore 商店下载安装的APP 默认都被苹果加了一层壳,加了壳后我们就无法使用dump导出头文件等其它操作,多亏了大神给我们提供了工具Dumpdecrypted让我们能够砸了这个壳。编译后的Dumpdecrypted工具的下载地址:https://github.com/DaSens/Crack-file使用的脚本下载地址https://github.com/DaSe转载 2017-08-15 17:49:27 · 908 阅读 · 0 评论 -
iOS逆向工程之App脱壳
本篇博客以微信为例,给微信脱壳。"砸壳"在iOS逆向工程中是经常做的一件事情,,因为从AppStore直接下载安装的App是加壳的,其实就是经过加密的,这个“砸壳”的过程就是一个解密的过程。未砸壳的App是无法在Class-dump、Hopper等工具中使用的。所以我们要将App进行砸壳处理。在Android开发中也存在App加壳的处理,比如什么360加固了,其实就是给App加一层壳。本篇博客转载 2017-08-10 10:19:27 · 1671 阅读 · 0 评论 -
Theos--定制工程文件(MakeFile篇)
介绍 MakeFile文件指定工程用到的文件、框架、库等信息,将整个过程进行自动化。theos中.mk的说明这里我就拿theos生成的模板中的 MakeFile文件进行对应的介绍、include theos/makefiles/common.mk #固定写法TWEAK_NAME = iOSREProject #项目创建时候的项目名称iOSREProject_FILES = Tweak.原创 2017-08-11 11:11:11 · 3223 阅读 · 0 评论 -
Theos--语法篇
介绍 用theos创建tweak工程,默认生成的源文件是tweak.xm 。 “xm”中的“x”代表这个文件支持Logos语法,如果后缀名是单独一个“x”,说明云文件支持Logos和C语法;如果后缀名是“xm”,说明源文件支持Logos和C/C++语法,与“m”和“mm”的区别类似。语法介绍%hook 指定需要hook的class,必须以%end结尾,如下: %hook SpringBo原创 2017-08-11 12:23:08 · 3822 阅读 · 0 评论 -
IOS逆向需要的工具
以下进行罗列一些IOS逆向需要的帮助工具,加快我们的逆向过程,和方便我们进行相应的逆向操作。同时可以起到画点成面的效果。这正是我们再分析和理清思路的必要过程。接下来我只进行罗列。后期有时间 我会把对应的工具 做成相应博客进行介绍。工具列表 工具名 作用 详细介绍地址 Reveal 可以直观的进行查看App的UI布局 IDA 笼统的说,IDA是一个支持Windows、原创 2017-08-11 18:41:06 · 894 阅读 · 0 评论 -
IOS逆向之汇编语言程序入门
原文地址一、寻址方式1、概念: 一条指令由操作码和操作数构成,操作码是系统定义好的符号,执行指定的操作,操作数即是指令的对象,而寻址方式就是操作数的指定方式操作码 目的操作数,源操作数 2、寻址方式的三种情况:(1)CPU中(2)储存器(3)I/O中 3、寻址方式分类(1)隐含寻址: 指令中只有操作码没有指定的操作数,但是根据操作码就可确定相应的操作数MUL BL; DIV B转载 2017-08-12 20:50:52 · 2575 阅读 · 0 评论 -
IOS逆向之汇编基础
原文出处学习汇编前你应该知道的知识 1、汇编需要什么工具和程序,到哪里下载? 目前阶段,汇编程序仅需要两个程序就够了。masm.exe,link.exe。 前者是编译程序,后者是链接程序。另外,为了验证和调试程序,还需要一个程序debug.exe,该程序由windows本身就提供。 将二者下载后,放到某一个目录中(任意目录都可以),考虑到很多命令需要通过键盘敲入,所以建议你不要把文件放转载 2017-08-12 23:33:45 · 1399 阅读 · 0 评论 -
IOS逆向--工具和必备知识
Ios进行抓包dpkg -i /包.deb进行安装deb的包。雷锋源设置cydia的软件源。原创 2017-08-21 11:49:04 · 588 阅读 · 0 评论 -
IOS逆向--MSHookFunction使用
MSHookFunction的三个参数作用分别为:替换的原函数,替换函数,以及MobileHooker保持的原函数。介绍使用#import <substrate.h>returnType (* old_symbol)(args);returnType new_symbol(args){ // Whatever}void InitializeMSHookFunction(void)原创 2017-08-14 17:06:37 · 7011 阅读 · 0 评论 -
IOS逆向--Cydiassubstrate API地址
Cydiassubstrate API地址 http://www.cydiasubstrate.com/inject/darwin/原创 2017-08-14 17:11:03 · 1457 阅读 · 0 评论 -
IOS逆向--Safe mode
此模式是为了避免我们寄生在程序里而导致整个系统进程崩溃,虽然不是高枕无忧的方法,但方便我们进行调试错误。 CydiaSubstrate引用了Safe mode,它会捕获SIGTRAP, SIGABRT , SIGILL ,SIGBUS , SIGSEGV ,SIGSYS这6中信号,然后会进入安全模式。 注意:在安全模式里,所有基于CydiaSubstrate的第三方dylib均会被禁用,便于原创 2017-08-14 17:38:24 · 717 阅读 · 0 评论 -
IOS逆向--调试别人项目之准备debugserver
debugserver是运行在ios上,作为服务端,实际上执行LLDB(作为客户端)传过来的没命令,再把执行结果反馈给LLDB,显示给用户,即所谓的”远程调试”。在默认情况下,ios上并没有安装debugserver。需要设备连接Xcode,在window-->Devices菜单中增加此设备后,debugserver才会被Xcode安装到IOS设备的/Developer/usr/bin/目录下。注意原创 2017-08-15 10:37:22 · 3103 阅读 · 0 评论 -
iOS 逆向--ARM汇编
最近对iOS逆向工程很感兴趣。目前iOS逆向的书籍有: 《Hacking and Securing IOS Applications》, 《iOS Hacker's Handbook》中文书籍有《iOS应用逆向工程:分析与实战》中文博客有: 程序员念茜的《iOS安全攻防系列》 英文博客有:Prateek Gianchandani的iOS 安全系列博客这些资料中都涉及到有ARM汇编,但都只是很泛地用转载 2017-08-15 11:37:18 · 1113 阅读 · 0 评论 -
IOS-10.0~10.2越狱后使用ssh链接
由于IOS10以上越狱后内置了一个yalu102的app 它占用了22端口,导致ssh无法链接。如何进行ssh链接首先手机要先进行越狱,并在Cydia下载一个Terminal的软件,去查找dropbear.plist文件。 我使用的命令行find / -name "dropbear.plist" 找到对应的目录然后手机链接PP助手或者爱思助手,去找/private/var/container原创 2017-12-29 10:35:36 · 4122 阅读 · 0 评论