[原]调试没有符号的 iOS 应用】的更多相关文章

说明: 这里的调试是指使用 lldb 远程调试 iOS 应用 设置断点是指在 ObjC 方法上设置断点 使用场景: 1.调试被 strip 了的 iOS 应用 2.调试被 strip 了的 iOS 系统 dylib 在调试时没有符号的 iOS 应用时,设置断点非常不方便: 1.App:在没有开启 ASLR 时,需要首先找到方法的地址,然后针对地址设置断点 2.Dylib:在没有开启 ASLR 时,需要找到dylib的基地址,然后计算偏移 如果开启了 ASLR,设置断点会更麻烦. 一直想解决这个问…
原调试debugwindbghangprocess explorer 前言 如果我们自己的程序的CPU Usage(CPU占用率)飙升,并且居高不下,很有可能陷入了死循环.你知道怎么快速定位并解决吗?今天跟大家分享几种定位方法,希望对你有所帮助. 如何判断是否有死循环? 通过电脑风扇的声音猜测. 如果风扇一直响个不停,说明电脑很热.高CPU占用率会导致CPU发热量增大,从而导致风扇狂响.如果听到风扇响个不停,可以打开任务管理器看看CPU占用率是不是很高.如果发现是我们的进程导致的高CPU占用率,…
原调试debugwindbg崩溃crash 前言 最近程序会不定期崩溃,很是头疼!今晚终于忍无可忍,下决心要干掉它!从之前的几个相关的dump可以猜到是有接口未释放导致的问题,但没有确认到底是哪个接口.本篇总结记录了找到这个接口的过程. {% note info %} 这是几年前在项目中遇到的一个问题.我对之前的笔记进行了整理重新发布于此. {% endnote %} 初识问题 用windbg打开dump文件,显示如下: startup 从图中可以很明显的看出来是访问违例(因为红框标识的地址5b…
原调试debugwindbg死锁deadlock 前言 最近我们的程序在退出时会卡住,调查发现是在卸载dll时死锁了.大概流程是这样的:我们的dll在加载的时候会创建一个工作线程,在卸载的时候,会设置退出标志并等待之前开启的工作线程结束.为了研究这个经典的死锁问题,写了一个模拟程序,用到的dump文件及示例代码参考附件. {% note info %} 这也是几年前在项目中遇到的一个问题,我对之前的笔记进行了整理重新发布于此. {% endnote %} 关键代码 主程序 WaitDllUnlo…
原调试debugwindbg死锁deadlock 前言 项目里的一个升级程序偶尔会死锁,查看dump后发现是死在了ShellExecuteExW里.经验少,不知道为什么,于是在高端调试论坛里发帖求助,链接如下http://advdbg.org/forums/6520/ShowPost.aspx 根据张银奎老师的描述可知,应该是拥有关键段的线程意外结束了.仔细检查项目中的代码,发现程序中有使用TerminateThread()来强制杀线程的代码.很可疑,于是写了一个测试程序,还原了这个问题. {%…
原调试debugwindbgcrash崩溃COM 前言 这是几年前在项目中遇到的一个崩溃问题,崩溃在了ComFriendlyWaitMtaThreadProc()里,没有源码.耗费了我很大精力,最终通过反汇编并结合原代码才最终搞清楚了事情的来龙去脉.本文的分析还是基于真实项目进行的,中间略去了很多反汇编的分析工作.文末有我整理的测试代码,大家可以实际体验一把TerminateThread()的杀伤力. 背景介绍 大概情况是这样的:程序启动的时候,会通过LoadLibrary()加载插件模块.其中…
原调试debugwindbg死锁deadlock 前言 这是几年前在项目中遇到的一个死锁问题,在博客园发布过.我对之前的笔记进行了整理重新发布于此. 本文假设小伙伴们知道一些基本概念,比如什么是.dump文件(转储文件,进程在某一时刻的快照),什么是windbg(windows下的调试利器),windbg的基本用法,调用栈,调用约定,等等. 背景介绍 我们的程序会把dll注入到其它进程,然后后调用SetWinEventHook安装进程内钩子.然后专门开启一个线程来分发监听到的事件信息,并在该线程…
首先这篇文章比较长,若想了解Xcode7的免开发者帐号真机调试运行IOS程序的话,直接转到第五部分. 转载请注明原文地址:http://www.cnblogs.com/litou/p/4843772.html 本文章的内容来自于百度.谷歌得到的别人努力成果的基础上,再加上自己的实践总结得出的,截图写字不容易啊.所有的软件安装和IOS程序运行都测试通过. 本文章内容包括 第一部分:软件准备 第二部分:安装VMWare Workstation.解锁VMWare和安装OS X 第三部分:在OS X上安…
关于苹果iOS开发,笔者也是从小白过来的,经历过各种困难和坑,其中就有关于开发证书,生产证书,in_house证书,add_Hoc证书申请过程中的问题,以及上架发布问题.今天就着重说一下关于针对于苹果开发者网站更新之后的真机调试证书申请. 这所有的前提都是:你得有苹果开发者账号个人($99).公司($99).企业($299)账号均可. 工具/原料 能上网的苹果电脑 浏览器 Xcode 5.1.1以上 苹果开发者账号 ITunes软件 iOS设备(iPhone.ipad均可) 方法/步骤 1 首先…
环境: Centos7.3.GCC4.8.5 适用场景: 由于调试信息比较大,通常将程序分离为可执行程序和符号信息文件,只对外发布可执行程序,需要调试时再将符号信息文件附加. 一.创建可执行程序: use_library.cpp #include <iostream> #include "use_library.h" int main() { , ); std::cout << "my_library:" << res <&…
/********************************************************************* * Author  : Samson * Date    : 01/30/2015 * Test platform: *              3.13.0-24-generic *              GNU bash, 4.3.11(1)-release  * *****************************************…
或许这个题目起得有点太高调了,不过我只是想纠正一些童鞋对于autorelease的认识,如果能帮到几个人,那这篇文章也就值得了!当然,高手请绕道 本文主要探讨两个方面:(1)autorelease对象到底是合适被析构的?(2)OC内部是如何处理一个被autorelease掉的对象的? (1)autorelease对象到底是何时被析构的? 这个问题说难不难,但说简单也不简单.我们还是先看一类熟悉的不能再熟悉的代码吧: - (void)viewDidLoad { [super viewDidLoad…
本文转载请注明出处 —— polobymulberry-博客园 问题描述 我在User表中增加了两个列,分别为“我关注的人”(Relation关系)和“我的粉丝”(Relation关系)当我关注某个人的时候,一方面我要添加他到“我关注的人”,另一方面在他的粉丝中要将我添加上去.看起来很简单,但是实际中操作时,使用bmob sdk中的updateInBackgroundWithResultBlock会遇到我想更新别人的User信息,是无法成功的,因为权!限! 解决方法 这里就得使用Bmob给我们提…
本文转载请注明出处 —— polobymulberry-博客园 简介 Bmob中的数据关联分为Pointer和Relation两种(数据关联在我开发app过程中使用还是很频繁的,也算个难点.虽然之前没有学过数据库,但是觉得还是有必要熟悉和掌握它),对此,Bmob官方文档已经介绍得很详细了. 基本上查看文档就可以解决大部分数据关联的问题(Bmob的文档真心要赞一下).这里我记录下当时我最难理解的一个部分——查询关联关系. 还是使用官方文档的事例来学习(这一处官网有些地方的objectId书写错了,…
项目里安装了UIA相关的钩子来监听UIA相关事件,退出的时候偶尔会崩溃在ComFriendlyWaitMtaThreadProc中,如下  从上图可以看出 是访问到无效的地址了,用!address 07acf914看下地址信息  确实是不可访问的,但是为啥呢?用ub看了下前面的代码  从红框中我们可以看出edi是指向第一个参数(ebp+8指向第一个参数),用k命令看下调用栈,如下 原来ComFriendlyWaitMtaThreadProc 是线程回调函数啊,那么edi就指向了传入的参数!通过查…
原调试IDA排错troubleshootsymbolspdbsysinternalprocess monitor 缘起 最近想借助IDA逆向一个函数.在windows下,调试器(比如vs, windbg)可以通过调试符号(PDB)把地址与符号名对应起来,为我们提供更可读的信息.IDA应该也支持加载PDB,通过查看IDA安装目录下的idahelp.chm(打开后搜索PDB即可找到相关说明)发现还真支持.但是当我加载符号的时候,却失败了.本文记录了整个调查过程. 效果对比 先放两张对比图,大家直观感…
Intro 虽然“只有偏执狂才能够生存”这句话已经被假药停给毁了,但是作为一只有逼格的高大上的iOS逆向分析研究员,难道如果有现成的macOS/iOS全版本镜像可以下载并且无限“漫游”,难道你就不想来一套么? 在本文中,你将能够获得的是: macOS:10.12.10.11.10.10.10.9.10.8.10.7:六个版本的虚拟机一键安装: 使用苹果的KDK套件(Kernel Develop Kit)对虚拟机里的macOS Sierra 10.12进行内核调试: iPhone 4s iOS 9…
开发PC页面的时候使用chrome浏览器的开发者工具,可以很容易的捕获到页面的dom元素,并且可以修改样式,方便调试,但是手机上却很麻烦,因为手机上没有办法直接打开开发者工具查看元素.其实可以通过将设备连接到PC,使用PC的开发者工具检测 一.针对android设备 1.在android设备上开始开发者模式 2.将设备连接到PC,在chrome浏览器地址栏输入:chrome://inspect/#devices 3.在手机上打开网页的时候,chrome就会检测到网页,可以直接调试 二.针对IOS…
本文档的主要内容可参考苹果官方资料: http://developer.apple.com/library/ios/#technotes/tn2295/_index.html 1. 买一个CSR蓝牙4.0的usb dongle,这个网上到处都是,大约30多元.下面是图片,这几种都可以.该usb dongle在mac下是免驱动的,所以赠送的光盘没什么用处. 2.此时还无需插入usb dongle.打开OSX中的终端,敲入如下指令: sudo nvrambluetoothHostController…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhenyu5211314/article/details/24399887 因为在iPhone 4s之后的iOS才支持BLE.新一代的这些iOS设备又都不廉价,在做測试的时候,用iOS模拟器进行调试,能够节约一些开发成本. 怎么在iOS模拟器上调试BLE.苹果最初给出的说明是,支持BLE的mac机子上能够用模拟器进行调试,并给出了一份技术文档(传送门),恶心的是,后来苹果抽风.又把这份文档移除,而…
移动端前端开发真机调试攻略 有线调试: 一.IOS 移动端 (Safari开发者工具) 手机端:设置 → Safari → 高级 → Web 检查器 → 开. mac端:Safari → 偏好设置 → 高级 → 在菜单栏中显示“开发”菜单. 在 OS X 中启动 Safari 之后,以 USB 电缆正常接入 iOS 设备,并在此移动设备上启动 Safari.此时点击计算机上的 Safari 菜单中的“开发”,可以看到有 iOS 设备的名称显示,其子菜单项即为移动设备上 Safari 的所有标签页…
ios +chrome调试 引用https://segmentfault.com/a/1190000015428430 iTunes ios-webkit-debug-proxy-1.8-win64-bin.zip chrome最新版本最好 [Chrome]对ios-safari移动端的H5页面进行调试(ios-webkit-debug-proxy) ios 有问题. 点击Inspect,弹出开发者工具 后  不显示 手机的页面 ,代码已出现. 后期好了更新 调试Android上WebView的…
一.成员介绍1.    Certification(证书)证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:1)    Developer Certification(开发证书)安装在电脑上提供权限:开发人员通过设备进行真机测试.可以生成副本供多台电脑安装:2)      Distribution Certification(发布证书)安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序.不可生成副本,仅有配置该证书的电脑才可使用:(副本制做介绍在下面Keycha…
目录 IOS抓取基础知识 IOS抓取方式 iOS破解 模拟器 黑雷苹果模拟器 介绍 局限 改机软件 常用改机软件 检测 可更改属性 注入与Hook(越狱下实现作弊) 注入方式 Hook方式 重打包(非越狱下实现作弊) 介绍 方式 iOS作弊 注入 介绍 方式 Hook方式 Method Swizzle 符号表hook Cydia Substrate 设备指纹 IDFA IDFV OpenUDID SimulateIDFA ID持久化存储 作弊方式 root权限获取 设备基本信息篡改 数据清除 变…
在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewalloc] initWithFrame:CGRectMake(0, 0, 0, 0.1)]; self.tableView.tableHeaderView = view; UITableView的plain样式下,取消区头停滞效果 - (void)scrollViewDidScroll:(UIScro…
综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型,看完,还敢自称”精通iOS开发”吗? https://github.com/syedhali/EZAudio 基于核心音频,有助于进行实时,低延迟音频处理和可视化的iOS和OSX音频可视化框架. https://github.com/bang590/JSPatch JSPatch使用Objective-C运行时桥接Objective-C和Javascript.你可以只包括一个此库,就可以通过Ja…
综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型,看完,还敢自称”精通iOS开发”吗? https://github.com/syedhali/EZAudio 基于核心音频,有助于进行实时,低延迟音频处理和可视化的iOS和OSX音频可视化框架. https://github.com/bang590/JSPatch JSPatch使用Objective-C运行时桥接Objective-C和Javascript.你可以只包括一个此库,就可以通过Ja…
点国内程序员不常用的热门iOS第三方库:看完,还敢自称"精通iOS开发"吗? 综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型,看完,还敢自称"精通iOS开发"吗? https://github.com/syedhali/EZAudio 基于核心音频,有助于进行实时,低延迟音频处理和可视化的iOS和OSX音频可视化框架. https://github.com/bang590/JSPatch JSPatch使用Obj…
UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0.1)]; self.tableView.tableHeaderView = view; UITableView的plain样式下,取消区头停滞效果 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat sect…