<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[luluatcomit的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/luluatcomit</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; luluatcomit]]></copyright><item><title><![CDATA[讲清楚charles抓包原理]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/125999000</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/125999000</guid><author>luluatcomit</author><pubDate>Tue, 26 Jul 2022 17:10:22 +0800</pubDate><description><![CDATA[charles抓包原理，一篇文章搞定charles抓包原理。]]></description><category></category></item><item><title><![CDATA[C语言内存精讲]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/125104723</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/125104723</guid><author>luluatcomit</author><pubDate>Thu, 02 Jun 2022 17:42:33 +0800</pubDate><description><![CDATA[C语言内存精讲]]></description><category></category></item><item><title><![CDATA[笔记 指针&MachO文件]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122488628</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122488628</guid><author>luluatcomit</author><pubDate>Fri, 14 Jan 2022 10:22:50 +0800</pubDate><description><![CDATA[逆向课程随堂笔记
指针&amp;MachO文件
##指针

指针自增、自减的结果，其实就是指针指向的数据类型宽度决定的！
指针加上或减去一个整数的结果，其实就是指针指向的数据类型宽度决定的！
指针求差，得到的结果是整形，其结果和指针指向的数据类型宽度有关！
这也就是指针的特点！ 它的运算单位 是数据类型的宽度！

关于汇编,重点.只能是带大家入门.
##逆向原理
动态调试 通过界面调试Cycript\Xcode LLDB!
静态分析 利用我们之前学习的汇编代码,分析三方APP的源码!
代码注入 注入的其实是]]></description><category></category></item><item><title><![CDATA[笔记 汇编 循环&选择]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122488610</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122488610</guid><author>luluatcomit</author><pubDate>Fri, 14 Jan 2022 10:22:12 +0800</pubDate><description><![CDATA[逆向课程随堂笔记
004 循环&amp;选择
##cmp（Compare）比较指令
   CMP 把一个寄存器的内容和另一个寄存器的内容或立即数进行比较。但不存储结果，只是正确的更改标志。
   一般CMP做完判断后会进行跳转，后面通常会跟上B指令！

BL 标号：跳转到标号处执行
B.GT  标号：比较结果是大于（greater than），执行标号，否则不跳转
B.GE  标号：比较结果是大于等于（greater than or equal to），执行标号，否则不跳转
B.EQ  标号：比较结果是等于]]></description><category></category></item><item><title><![CDATA[笔记 状态寄存器]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122488597</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122488597</guid><author>luluatcomit</author><pubDate>Fri, 14 Jan 2022 10:21:34 +0800</pubDate><description><![CDATA[逆向课程随堂笔记
#003-状态寄存器
   CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理器,个数和结构都可能不同).这种寄存器在ARM中,被称为状态寄存器就是CPSR(current program status register)寄存器
CPSR和其他寄存器不一样,其他寄存器是用来存放数据的,都是整个寄存器具有一个含义.而CPSR寄存器是按位起作用的,也就是说,它的每一位都有专门的含义,记录特定的信息.

注:CPSR寄存器是32位的


CPSR的低8位（包括I、F、T和M[4：0]）称为]]></description><category></category></item><item><title><![CDATA[笔记 函数本质]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122488584</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122488584</guid><author>luluatcomit</author><pubDate>Fri, 14 Jan 2022 10:21:05 +0800</pubDate><description><![CDATA[逆向课程随堂笔记
002–函数本质
##关于CPU的补充
####寄存器
CPU除了有控制器、运算器还有寄存器。其中寄存器的作用就是进行数据的临时存储。

CPU的运算速度是非常快的，为了性能CPU在内部开辟一小块临时存储区域，并在进行运算时先将数据从内存复制到这一小块临时存储区域中，运算时就在这一小快临时存储区域内进行。我们称这一小块临时存储区域为寄存器。

对于arm64系的CPU来说， 如果寄存器以x开头则表明的是一个64位的寄存器，如果以w开头则表明是一个32位的寄存器，在系统中没有提供16位和8位]]></description><category></category></item><item><title><![CDATA[笔记 初识汇编]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122488566</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122488566</guid><author>luluatcomit</author><pubDate>Fri, 14 Jan 2022 10:20:32 +0800</pubDate><description><![CDATA[逆向课程随堂笔记
001–初识汇编
我们在学习逆向开发之前,我们要了解一个基本的逆向原理.首先我们是逆向iOS系统上面的APP.那么我们知道,一个APP安装在手机上面的可执行文件本质上是二进制文件.因为iPhone手机本质上执行的指令是二进制.是由手机上的CPU执行的.所以逆向开发是建立在分析二进制上面.所以今天我们接下来的课程从非常基础的东西开始讲解.
汇编语言的发展
机器语言

由0和1组成的机器指令.


加：0100 0000
减：0100 1000
乘：1111 0111 1110 0000
除：]]></description><category></category></item><item><title><![CDATA[LLDB(Low Lever Debug)]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122488526</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122488526</guid><author>luluatcomit</author><pubDate>Fri, 14 Jan 2022 10:18:56 +0800</pubDate><description><![CDATA[LLDB]]></description><category></category></item><item><title><![CDATA[DNS劫持那些事]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122488473</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122488473</guid><author>luluatcomit</author><pubDate>Fri, 14 Jan 2022 10:16:38 +0800</pubDate><description><![CDATA[#原理
DNS窃持就是通过修改客户机器的DNS服务器，将域名对应的ip地址修改成错误的，或者黑客的服务器ip。然后黑客服务器变成了所有客户请求的代理。

HTTP协议下，客户和服务器的通讯在黑客服务器上完全可见。
HTTPS协议下，黑客将客户机的HTTPS请求转成到黑客服务器的HTTP请求，然后黑客服务器再与目标服务器做正常的HTTPS通讯。这样同样客户和服务器的通讯在黑客服务器上完全可见。

#如何防范

在输入重要信息的时候注意检查浏览器的证书安全等级提示，现在的主流浏览器都有这个功能。
拿chrom.]]></description><category></category></item><item><title><![CDATA[Mac下使用NASM进行汇编]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122488444</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122488444</guid><author>luluatcomit</author><pubDate>Fri, 14 Jan 2022 10:15:28 +0800</pubDate><description><![CDATA[PS: 别人写的，不允许转载，记录一下连接： 原帖在这里


]]></description><category></category></item><item><title><![CDATA[汇编语言实现在80*25彩色字符模式下显示字符串]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122488364</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122488364</guid><author>luluatcomit</author><pubDate>Fri, 14 Jan 2022 10:14:46 +0800</pubDate><description><![CDATA[我写的mac pro上用DosBox能正常运行的代码：

assume cs:codesg, ds:datasg, ss:stack

datasg segment
	db 'welcome to masm!'
    db 02h,24h,71h
datasg ends

stack segment
	dw 8 dup(0)
stack ends


codesg segment

start: 
	mov ax,datasg
	mov ds,ax
	mov bx,0      ;字符的段内偏移
	mov]]></description><category></category></item><item><title><![CDATA[Mac 上NASM安装]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122488303</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122488303</guid><author>luluatcomit</author><pubDate>Fri, 14 Jan 2022 10:11:13 +0800</pubDate><description><![CDATA[Mac 上NASM安装]]></description><category></category></item><item><title><![CDATA[Cocopods升级注意事项]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122449833</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122449833</guid><author>luluatcomit</author><pubDate>Wed, 12 Jan 2022 11:38:52 +0800</pubDate><description><![CDATA[升级ruby的时候如果报 Permission denied 错误。
记得在命令前加sudo就行。
sudo的作用:
sudo是linux系统管理指令，是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具，如halt，reboot，su等等。这样不仅减少了root用户的登录 和管理时间，同样也提高了安全性。sudo不是对shell的一个代替，它是面向每个命令的。
升级完Cocoapods后，还要执行pod setup
为什么要执行pod setup？
所有的项目的 Podspec 文件都托管在]]></description><category></category></item><item><title><![CDATA[iOS开发小细节记录]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122449804</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122449804</guid><author>luluatcomit</author><pubDate>Wed, 12 Jan 2022 11:32:15 +0800</pubDate><description><![CDATA[#1. UILabel出现奇怪的边线
今天出现一个问题，UILabel莫名其妙的出现了黑色的边线。网上查了一下，是因为frame值有小数造成的。
#2. Swift在delegate中执行popToRootViewController, popToViewController 无效的问题
具体原因就是delegate中的代码不在主线程执行，套上下面这个代码就OK
 DispatchQueue.main.async {
            self.navigationController?.popToR]]></description><category></category></item><item><title><![CDATA[iOS 中提供的 GCD 队列]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122449776</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122449776</guid><author>luluatcomit</author><pubDate>Wed, 12 Jan 2022 11:31:11 +0800</pubDate><description><![CDATA[#1. 主队列（main queue）
主队列是串行队列。和其它串行队列一样，这个队列中的任务一次只能执行一个。然而，它能保证所有的任务都在主线程执行，而主线程是唯一可用于更新 UI 的线程。这个队列就是用于发生消息给 UIView 或发送通知的。
#2. 全局调度队列（Global Dispatch Queues）
全局调度队列是并发队列。目前的四个全局队列有着不同的优先级：background、low、default 以及 high。要知道，Apple 的 API 也会使用这些队列，所以你添加的任何任务]]></description><category></category></item><item><title><![CDATA[GCD 队列类型]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122449757</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122449757</guid><author>luluatcomit</author><pubDate>Wed, 12 Jan 2022 11:30:42 +0800</pubDate><description><![CDATA[GCD 提供有 dispatch queues 来处理代码块，这些队列管理你提供给 GCD 的任务并用 FIFO 顺序执行这些任务。这就保证了第一个被添加到队列里的任务会是队列中第一个开始的任务，而第二个被添加的任务将第二个开始，如此直到队列的终点。
所有的调度队列（dispatch queues）自身都是线程安全的，你能从多个线程并行的访问它们。当你了解了调度队列如何为你自己代码的不同部分提供线程安全后，GCD的优点就是显而易见的。关于这一点的关键是选择正确_类型_的调度队列和正确的_调度函数_来提交你的]]></description><category></category></item><item><title><![CDATA[GCD 常用方法]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122449745</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122449745</guid><author>luluatcomit</author><pubDate>Wed, 12 Jan 2022 11:29:45 +0800</pubDate><description><![CDATA[#1. dispatch_async 异步派发队列
Demo：
// 在全局并发队列中执行任务
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ // 1
        // to do some thing here

        // 完成任务后主队列中执行必须在主队列中执行的代码（比如：更新UI）
        dispatch_async(dispatch_get_main_queue(]]></description><category></category></item><item><title><![CDATA[iOS 使用Zebra打印机打印标签]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122449651</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122449651</guid><author>luluatcomit</author><pubDate>Wed, 12 Jan 2022 11:26:02 +0800</pubDate><description><![CDATA[##1.先分享一个好用的工具：
样式调整工具
##2.常用指令理解
^MUi    以英尺为度量单位
^MUd   以dot为度量单位
^CON   缓存字符大小  ^CON 是不缓存
^PR4    打印速度
^FTx,y  相对^LH的坐标  默认^LH0,0
^GBw,h  打印方块，我们用来打印黑色边线
^A   字大小和方向
^FD  内容开始
^FS 	内容结束
^BYw,r,h  条码宽度，长宽比，高度
^BUo,h,f,g,e  条码方向，高度，是否打印条码值Y/N，是否在条码上边打印条码值]]></description><category></category></item><item><title><![CDATA[C语言内存精讲]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122449598</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122449598</guid><author>luluatcomit</author><pubDate>Wed, 12 Jan 2022 11:24:19 +0800</pubDate><description><![CDATA[1.&nbsp;一个程序在计算机中到底是如何运行的？
2.&nbsp;虚拟内存到底是什么？为什么我们在C语言中看到的地址是假的？
3.&nbsp;虚拟地址空间以及编译模式
4.&nbsp;C语言内存对齐，提高寻址效率
5.&nbsp;内存分页机制，完成虚拟地址的映射
6.&nbsp;分页机制究竟是如何实现的？
7.&nbsp;MMU部件以及对内存权限的控制
8.&nbsp;Linux下C语言程序的内存布局（内存模型）
9.&nbsp;Windows下C语言程序的内存布局（内存模型）
10.&nbsp;用户模]]></description><category></category></item><item><title><![CDATA[Java注解]]></title><link>https://blog.youkuaiyun.com/luluatcomit/article/details/122449576</link><guid>https://blog.youkuaiyun.com/luluatcomit/article/details/122449576</guid><author>luluatcomit</author><pubDate>Wed, 12 Jan 2022 11:23:10 +0800</pubDate><description><![CDATA[类型： @interface
##作用
为修饰者提供元数据
注解本质
/**Annotation接口源码*/
public interface Annotation {

    boolean equals(Object obj);

    int hashCode();

    Class&lt;? extends Annotation&gt; annotationType();
}

元注解：提供给注解使用的注解
. @Retention
. @Target
. @Documented
. @In]]></description><category></category></item></channel></rss>