- 博客(51)
- 问答 (1)
- 收藏
- 关注
原创 iOS lldb 连接 debugserver error: failed to get reply to handshake packet
之前一直用的python的usbmuxwrapper端口转发工具。今天调试的时候,突然报错,并且观察到端口转发窗口,转发ssh的2222端口正常,但是转发1234端口的时候有问题。尝试重新插拔usb数据线,尝试卸载重装端口转发工具,都没有效果。最后用node.js的usbmux工具,解决了!
2024-01-27 16:06:23 392
原创 记录一个 python frida objection 版本不一致的问题
通过objection获取,iOSkeychain,需要在PC端和iOS端安装相同版本的frida。由于某种原因,iOS上frida版本限制在14.2.18。(报错内容忘记拷贝了。尝试降低frida-tools版本至9.2.5,对应frida版本14.2.8,但是运行objection还是会报错。怀疑是python3.11兼容性的问题,尝试安装最新版python2,运行报错不支持python2。pip install frida-tools下载最新版本,对应的frida版本为16.1.7。
2023-11-25 20:37:26 265
原创 npm安装frida指定版本。nvm安装node指定版本。
pc端通过node+frida调试,需要node安装的frida版本和iPhone内的frida版本一致。通过 npm install frida 安装的话,会自动下载最新版本。当时设备上是14.2.18,最新版是16.1.7。版本不一致,导致frida无法正常使用。
2023-11-23 11:57:33 339
原创 springboot+websocket-1 最简化 4个回调函数
先把ws跑起来,ConcurrentHashMap暂时还用不到。map是用来给外部调用,向目标ws实例发送消息用的,后面再加上。
2023-04-09 15:30:03 275
原创 AES-128-ECB/CBC 查表法 C#实现
遇到一段汇编代码,没认出来是查表法的AES。这里完全用字节处理,来实现AES加密计算,来加深一下对查表法AES的印象。由于采用对字节的操作,会造成很多无畏的内存读写,运算速度肯定没有对uint(4字节)来的快。本来反汇编出来的就是uint的,这边只是想学习具体细节,才转换成字节的。后续有空了,再把整理后的uint操作的代码贴出来吧。
2023-04-08 20:49:06 851 2
原创 ARM汇编 常见条件判断对应NZCV标识 以及 TST / TBZ / TBNZ 指令
EQ/NE LT/LE/GT/GE LO/CC/LS/HI/HS/CS,TST/TBZ/TBNZ
2022-11-15 15:23:45 2506
原创 C# unix时间戳 秒、毫秒、微秒。日期 字符串 格式
DateTime _1970 = new DateTime(1970, 1, 1, 0, 0, 0, 0);DateTime now = DateTime.Now; string str = now.ToString("yyyy-MM-dd HH:mm:ss.ffffff"); // 年-月-日 时:分:秒.微秒Console.WriteLine(str);int sec = (int)(now - _1970).TotalSeconds;Console.WriteLin...
2022-05-24 15:30:48 1713
原创 牛客网 迷宫问题 DFS 递归 两种方式
牛客网-迷宫问题主要思路1. 像3个方向递归2. 不能数组越界3. 不能是墙4. 在当前递归分支下,没有走过。跟算24点一样,还是通过两种方式控制递归退出:1. 通过全局变量2. 通过函数返回值。这里通过函数返回值,直接用静态函数就行了,并且不会有并发冲突。公共类Coordinpackage cn.line.nowcoder.huawei.hj43;/** * 用于保存路径 * 也可以直接用int[2]来实现 */public class Coord
2022-04-05 23:43:39 529
原创 牛客网 24点 DFS 递归 两种方式
题目连接:牛客网-算24点自己些的递归,是通过全局控制变量,来控制递归结束的。后来看了网友的代码,还有通过返回值来控制递归结束的。在这里记录一下。下面的代码里,函数dfs是通过全局变量found来控制递归退出的。函数dfs2是通过返回值来控制递归退出的。package cn.line.nowcoder.huawei.hj67;import java.util.Scanner;public class Main { public static void ma
2022-04-04 14:02:21 590
原创 记直接插入排序,为什么必须从后往前遍历
从前往后遍历找到插入位置@Slf4jpublic class InsertSort { @Test public void test() { int[] arr = new int[]{5, 3, 7, 6, 4, 1, 0, 2, 9, 8}; log.info("init: {}", Arrays.toString(arr)); insertSort(arr); log.info("result: {}", Arr
2022-03-21 20:31:23 1016
原创 LeetCode 链表 双指针 234
题目本身比较简单,主要是快慢指针的思路值得记一下,后续可能还会有其他应用。 public boolean isPalindrome(ListNode head) { if (head.next == null) return true; ListNode fast = head; ListNode slow = head; ListNode preSlow = null, nextSlow;
2022-03-18 22:16:53 615
原创 LeetCode 链表 双指针 206 92 25
206:简单的pre + cur的双指针public ListNode reverseList(ListNode head) { if (head == null || head.next == null) return head; ListNode pre = null; ListNode cur = head; ListNode tmp; while (cur.next != null) { tmp = cur.next
2022-03-17 23:38:06 572
原创 LeetCode 19 61 链表 双指针
题目-19题目-6119: public ListNode removeNthFromEnd(ListNode head, int n) { ListNode ret = new ListNode(0, head); ListNode pre = ret; ListNode rear = pre; while (n-- >= 0) { // n-- > 0 rear = rear.ne
2022-03-17 00:23:04 848
原创 ARM64内存中的dirent,记一个判断文件后缀的方式
dirent结构struct dirent { long d_ino; /* inode number 索引节点号 */ off_t d_off; /* offset to this dirent 在目录文件中的偏移 */ unsigned short d_reclen; /* length of this d_name 文件名长 */ unsigned char d_type; /* the type of
2022-03-08 19:17:32 823
原创 项目优化之垂直拆分 和 水平拆分
垂直拆分数据层-表将单表中的常用字段和不常用字段,拆分到两个表,减少每次读无效字段导致的IO损失。数据层-库多个子系统的表,集中在单个DB里,为这些系统创建各自的DB,减少单个DB的压力。业务层多个子系统集中在单个项目里,将子系统独立成项目单独部署,增大吞吐量,还能有针对性地横向拓展。水平拆分数据层-表单表中的记录过大,树的高度过高导致查询缓慢。将全部记录按某个字段,分类到多个表中。例如,身份证表,按地区拆分。数据层-库单库的机器性能成为瓶颈。将身份证表,
2022-03-05 23:53:48 196
原创 Mybatis Springboot配置 基本的增删改查
文章主要是记录一次demo的搭建过程,方便以后回顾。只贴出了关键代码和指明了关键位置。不过也算是比较完整了。springboot配置i. pom.xml主要是这几个依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId
2022-02-25 01:28:05 763
原创 Java 通过线程池运行Runnable Callable FutureTask,通过Future获取返回值
Callable是可以获取返回值的Runnable,不过Callable只能通过线程池,来直接的提交任务。如果通过Runnable来执行任务,则只能通过FutureTask来获取返回值。线程池ExecutoerService的execute()方法,只接收Runnable入参。要想获取任务返回值,只能通过FutureTask。submit()方法,可以接收Runnable和Callable入参。获取返回值,既可以通过Future+Callable,也可以通过FutureTask+Runnab
2022-02-13 14:41:59 1920
原创 Java Runnable Callable FutureTask的关系概括和使用方式
直接通过new Thread().start()来运行多线程/** * Runnable * Callable * FutureTask */@Slf4jpublic class ThreadTest { public static void main(String[] args) throws ExecutionException, InterruptedException { new Thread(new Runnable() { // 最基础的新建线程的方式~
2022-02-13 13:36:35 180
原创 ARM64 记一个比较有趣的乘法运算
X = X * 5被编译成汇编代码:ADD X1, X1, LSL#2也就是X = X + X << 2也就是X = X + X * 4
2021-09-13 22:48:06 151
原创 ARM64汇编,跳转命令B\CBZ,字节码
B无条件跳转一条汇编指令 __text:000000010333E3D4 B loc_10333EA74对应字节码A8 01 00 14其中,0x14是B对应的字节码,0x1A8是对应的偏移0x10333EA74 - 0x10333E3D4 = 0x6A0 =0x1A8 * 4这里*4推测是一条指令4个字节的意思。CBZ有条件跳转一条汇编指令 __text:00000001031CAE70 ...
2021-08-05 22:29:05 6857
原创 ARM64 BYTE/WORD/DWORD/QWORD 与 Wn/Xn
WORD 2个字节DWORD 4个字节 32位 可以用Wn存储QWORD 8个字节 64位 可以用Xn存储
2021-05-25 13:03:38 1063 2
原创 ARM汇编指令 CSEL CSET
CSEL X7, X2, X0, EQ ; if (cond == true) X7 = X2, else X7 = X0CSET W0, EQ ; if (cond == true) W0 = 1, else W0 = 0
2021-02-04 17:11:29 5127
原创 ARM汇编指令 UXTW/UXTH/UXTB, SXTW/SXTH/SXTB
UXTW:Zero-extend single-word例如:需要ADD X0, X0, W1时,需要把W1拓展成X1:ADD X0, X0, W1, UXTW需要LDR X0, [X0, W1]时,同理:LDR X0, [X0, W1, UXTW]遇到后边带上一个立即数的情况:LDR W0, [X0, W1, UXTW #2],先把W1作Zero-extend处理,然后left-shift by 2,然后进行LDR。题外话:一般这种情况,由于内存中是按字节存储,想读..
2021-02-03 20:02:34 12430
原创 ARM64 记一个标准的循环的汇编代码
__text:0000000103D26604__text:0000000103D26604 ; =============== S U B R O U T I N E =======================================__text:0000000103D26604__text:0000000103D26604__text:0000000103D26604 ; __int64 __fastcall Rename_103D26604_BS_XOR(__int64 a1, _
2021-01-12 12:17:22 280
原创 curl 代理测试 username:password
curl -x proxy_address -U username:password target_address-x 不是 -X-U 不是 -u可以带上-v,看看详细请求/响应
2020-12-17 15:55:36 623
原创 lldb连接debugserver报错failed to get reply to handshake packet
通过usb-replay的方式连接debugserver,(lldb) process connect connect://localhost:1234报错了lldb窗口报:error: failed to get reply to handshake packetdebugserver窗口报:error: rejecting incoming connection from ::ffff:127.0.0.1 (expecting ::1)解决:把debugser..
2020-12-04 20:34:24 3398
原创 iOS越狱
1. checkra1n2. Openssh3. Apple File Conduit 24. debugserver5. usbreplay
2020-12-04 20:12:13 122
原创 VS快捷键
格式化 ctrl + e + d在当前行之上插入一行 ctrl + enter在当前行之下插入一行,且自动补齐代码 shift + enter在当前行之下插入一行,不自动补齐代码 ctrl + shift + enter注释 ctrl + k + c取消注释 ctrl + k + u以单词为单位左右移动 ctrl + 左右方向键选定当前单词 ctrl + shift + w复制当前行 ctrl + c删除当前行 ctrl + L转换为小写...
2020-09-16 21:20:47 1092
原创 ARM指令 MADD, MSUB
MADD Rd, Rn, Rm, Ra => Rd = Ra + Rn*RmMSUB Rd, Rn, Rm, Ra => Rd = Ra - Rn*Rm
2020-08-11 21:08:58 3856
原创 JVM参数
内存分配-XX:NewSize 初始新生代内存大小-XX:MaxNewSize-XX:PermSize 初始永久代内存大小(1.8弃用)-XX:MaxPermSize-XX:MetaspaceSize 初始元空间大小(1.8启用)-XX:MaxMetaspaceSize-XX:MinMetaspaceFreeRatio GC之后,最小的Metaspace剩余空间容量...
2019-05-15 22:56:23 91
原创 MySQL主从同步环境配置
1. 搭建主库和从库并配置2. 配置主库binlog3. 配置从库的master4. 将主库的存量数据同步到从库5. 从库开启slave I\O只同步部分库1. 主库配置2. 从库配置只同步部分表1. 从库配置参考博客:CentOS上安装MySQLMySQL二进制日志binlogMySQL主从配置MySQL部分表、库的主从同步...
2019-04-11 18:35:30 121
原创 win10启动MySQL失败:mysql服务无法启动 服务没有报告任何错误
修改了下配置文件,停止后启动失败。通过mysqld --console,观察ERROR日志,提示【无法创建一个文件夹下的文件,文件夹不存在】创建文件夹后正常了。或者,通过观察mysql的错误日志,在配置文件中配置的data目录下,也可以达到相同的目的。MySQL: File '.........\bin.index' not found (Errcode: 2 - No ...
2019-04-11 15:46:20 2547
原创 Can't connect to MYSQL server on x.x.x.x (10038)
1.检查mysqld是否启动2.检查端口是否开放3.检查MySQL bind_address是否开放4.检查user是否授权5.检查user是否对外开放
2019-04-11 14:37:06 188
原创 分布式服务治理之SOA和MSA
SOA,Service Oriented Architect,面向服务的框架,也叫做服务治理框架MSA,Micro Service Architect,微服务框架理解这两个概念,需要理解后台服务的发展过程(主要关注业务层面,数据库层面另说吧):单一应用架构 -> 垂直应用架构 -> 分布式服务架构 -> ...这两个概念的提出,都是为了解决项目细化之后...
2019-04-01 16:05:45 432
原创 记录一个学习资源池(连接池)时,从资源池获取资源的并发问题。
实验描述:首先定义一个数据库连接池,然后从资源池中并发获取连接,接着进行对连接的操作,最后返还连接到资源池。其中,连接池用 "LinkedList pool" 保存连接,获取连接和归还连接时用synchronized同步块锁住pool。从连接池中获取连接前,首先判断连接池里是否有可用的连接,若没有,则通过wait()方法使线程等待;当其他线程释放连接时,通过notifyAll()方法唤...
2019-04-01 01:32:26 737
为什么我的冒泡排序这么慢?java
2022-03-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人