BLCL的博客小馆

归档 · 2021

首页

关于

归档

loading..

源码级调试 App Store 包

有些时候我们会遇到 Release 包有 Bug,Debug 包正常,或者是本地构建没问题,上传到 App Store 或者 TestFlight 版本就有 Bug。 能有个方式调试一下就好了。 这个可以有,解决的方式也很简单,我主要的灵感来自 MonkeyDev。如果你用过 MonkeyDev,会感觉使用这个工具逆向非常方便,我们可以直接在 Xcode 上像普通的 App 一样构建调试。 这个思路也可以用在我们调试一些“不能调试”的 ipa。 所以我们先来看一看,MonkeyDev 是如何将已经构建好的 ipa 直接放到 Xcode 运行起来的。 # 借助 Xcode 重签名运行 App 事实上这一过程很简单,基本上我们直接将原本构建的流程改成直接将从 ipa 解压的 app 拷贝过去即可。 为了了解 ..

更多
loading..

TLS-Poison 攻击方式在 CTF 中的利用实践

最近总结整理了 TLS Poison 攻击相关的知识,本文会继续讲 TLS Poison 利用,以及其在 CTF 的实际运用,也通过这个题目来聊聊 FTPS 相关知识。文章首发于长亭安全课堂:TLS-Poison 攻击方式在真实CTF赛题中的利用实践 https://mp.weixin.qq.com/s/ZziSf69AOyXoI0IgC0UyUQPS: 在阅读本文之前,建议您掌握相关的 TLS Poison 先验知识,本文不会再重新详细介绍 TLS Poison 攻击的基础知识我们首先再来回顾 Black Hat 这个议题,为什么作者使用的是 When TLS Hacks You 呢?而不是 When HTTPS Hack You ,说明这个问题是出现在 TLS 特性身上,所以目前我们貌似都更多只局限地..

更多
loading..
前后端

ElasticSearch检索的核心-倒排索引解读

前言ElasticSearch为什么适合做检索服务器? 因为快啊,大佬! 为什么快啊? 因为倒排索引啊! 什么是倒排索引? 这个,就要细细分析一下了,这篇文章可能写的不是那么全,但是我也会尽量总结所有重点!希望能帮到大家,爱你们! 索引是什么?首先,从基础玩起来,倒排索引,分为倒排+索引 索引这个词汇,在数据库的出镜率非常高,我基础比较差,所以,我在这里会从头进行学习解读,希望大家理解,如果对索引非常了解的兄弟,请直接跳过这一段 首先,什么是索引。 索引是一种特殊的数据库数据结构 首先,一般我们认为的查找,就是从头检索到尾,也就是从开头遍历到结尾,这样的时间复杂度是O(n) 索引,就是将数据库表中的某一列或几列以特定的数据结构存起来,比如B-Tre..

更多
loading..
前后端

为什么要使用消息队列服务

消息队列是什么?化繁为简一下,分拆一下这个词汇,首先,先来看队列(queue) 队列是一种常用的数据结构,特点是先进先出 消息队列,顾名思义一下,就是把消息放在队列当中进行处理 这个消息,肯定是等待处理的消息,我们应该要获取消息做什么事 比如获取一个返回结果,接受一个参数等等。 所以这里引出了新的概念,消费者和生产者 生产者就是往队列里面塞数据 消费者就是往队列里面取数据 这就是消息队列的基础概念。 消息队列解决了什么问题按理说,消息队列只是一个队列类数据结构,这个我们完全可以自己实现 例如Python的队列queue,或者java的Deque都可以实现队列的功能 再去实现一个消费者/生产者逻辑就好了,那为什么要用消息队列呢? 这边举几个我开发中遇..

更多
loading..

LLVM Link Time Optimization

链接时优化(Link Time Optimization,简称 LTO)已经在 WWDC 2016 中提及到。因为这个选项在 Xcode 中默认关闭的,我也一直没有开启过这个选项,所以之前没有做过什么了解。趁着这次五一放个假,我们可以看看 LTO 是什么,以及它的整个流程是什么样子。 我们知道一个程序从源码到运行,需要有一个静态链接的过程。 在这个过程中,在解决所有的符号引用关系期间,我们可以知道整个程序的全貌。为此我们能以全局的角度做一些优化,这就是链接时优化。 我在这里将 LTO 理解为:借助静态链接可以获取程序全局信息的机会,做一些全局优化,这样可以提高运行时的性能,并进一步减少二进制的大小。 阅读本文前,建议先看完 LLVM Link Time Optimization: Design and I..

更多