自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(196)
  • 资源 (1)
  • 收藏
  • 关注

原创 世界IP数量分布 (IPv4)

按 IP 地址拥有量的国家排序(前二十名,中国包含港澳台)美国 1537033152中国 411403965日本 197399208德国 132279277英国 119098036韩国 114011448巴西 89046901法国 82350251加拿大 71378220澳大利亚 59303901意大利 56456752荷兰 52738275俄罗斯 46075222印度 44773242西班牙 34403321墨西哥 29538978南非 29060485瑞典 28379

2020-08-24 17:46:24 6432 1

原创 tar命令笔记

作用tar 可以保存文件属性,本身不具备压缩能力,配合gzip或者bzip 进行压缩解压缩参数相关参数如下,来自百度百科-c,–create 创建新的tar文件-x,–extract,–get 解开tar文件-t,–list 列出tar文件中包含的文件的信息-r,–append 附加新的文件到tar文件中-u,–update 用已打包的文件的较新版本更新tar文件-A,–catenate,–concatenate 将tar文件作为一个整体追加到另一个tar文件中-d,–diff,–com

2022-04-23 11:05:15 1071

原创 Flutter摘要-Text

无状态组件,富文本控件官网说明单一样式的文字。该文本控件显示与单一风格的文本字符串。该字符串可能会跨越多行,也可能全部显示在同一行上,具体取决于布局约束。该风格参数可选。如果省略,则文本将使用最接近的封闭DefaultTextStyle的样式。如果给定样式的 TextStyle.inherit属性为true(默认值),则该给定样式将与最接近的DefaultTextStyle合并。这种合并行为非常有用,例如,在使用默认字体系列和大小时使文本变为粗体。使用基本使用Text("文本").

2021-03-04 00:11:51 546

原创 Unity手游资源修改流程

最近接到一个Android手游汉化需求,研究了一下,特此记录开发环境AssetStudioGUI该软件可解析,定位压缩后的Unity 资源。下载: https://github.com/Perfare/AssetStudioAssetBundleExtractor用于资源替换下载 https://www.lanzous.com/i3wcjxe010Editor游戏文本文件是二进制dat文件,需基于010Editor修改下载 https://www.sweetscape.com/010.

2020-11-02 20:38:41 8586 4

原创 Java 热代理源码阅读

使用主要业务一个InvocationHandler接口 和 一个 Proxy类,实现InvocationHandler,然后传入Proxy.newProxyInstanc函数中,获取代理对象。从而实现代理模式样例代理具体业务package proxy.dynamic;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;public class HackHandler implements In

2020-10-28 00:37:47 223

原创 Android 页面加载笔记

作用Android中的页面展示主要是WindowManagerService负责,应用通过Binder与WMS通信,切换当前展示页面的内容。业务在Activity的setContentView函数调用的是getWindow()的对应函数 public void setContentView(@LayoutRes int layoutResID) { getWindow().setContentView(layoutResID); initWindowDecorA

2020-10-26 22:24:02 242

原创 C 实现全类型单向链表笔记

定义#ifndef LIST_H#define LIST_H#ifdef __cplusplusextern "C" {#endiftypedef struct ListElmt_ { void *data; struct ListElmt_ *next;} ListElmt;typedef struct List_ { int size; int(*match) (const void *key1, const void *key2); void(*destroy) (voi

2020-09-17 10:22:56 103

原创 NDK动态注册

提供需注册类的类名完整路径const char* className= "com/hack/application/util/Enciphere";获取jclassjclass myClass = env->FindClass(className); if (myClass == NULL) { //无法找到需动态注册类,so加载失败 return -1;}3.提供需注册java函数名和native函数JNINativeMethod二维数组表示了java函数与nat.

2020-09-08 21:15:43 168

原创 反转链表

题目描述输入一个链表,反转链表后,输出新链表的表头Java/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode ReverseList(ListNode head) { ListNode start = n

2020-09-01 00:23:42 81

原创 UML 类关系图笔记

2020-08-29 18:54:25 143

原创 Android so反调试

原理在Android系统中,如果进程处于调试状态,/proc/进程pid/status (等同于/proc/self/status)文件中的tracePid不为0,所以只要在加载so的时候,读取status文件,若tracePid不为0,则说明进程处于调试状态。status文件分析Name: shState: R (running)Tgid: 23809Pid: 23809PPid: 195TracerPid: 0Uid: 0 0

2020-08-28 13:12:24 953

原创 二叉树Java实现

二叉树Java实现定义相关概念遍历先序遍历中序遍历后序遍历搜索前继节点后继节点源码定义二叉树的定义是每个节点最多两个子节点,左子节点始终小于根节点,右子节点始终大于根节点。相关概念遍历先序遍历先访问根节点,再访问左子叶节点,最后访问右子叶节点中序遍历先访问左子节点,再访问根节点,最后访问右子节点,对每个节点访问时都执行以上规则,从而输出从小到大的排序后序遍历先访问左子叶节点,再访问右子叶节点,最后访问根节点搜索搜索过程模拟了就是一个二分搜索法前继节点小于当前节点值的最大节点后继

2020-08-21 09:16:59 180

转载 Android 10 重大隐私权变更记录

隐私权变更受影响的应用缓解策略分区存储 针对外部存储的过滤视图,可提供对特定于应用的文件和媒体集合的访问权限访问和共享外部存储中的文件的应用使用特定于应用的目录和媒体集合目录 了解详情增强了用户对位置权限的控制力 仅限前台权限,可让用户更好地控制应用对设备位置信息的访问权限在后台时请求访问用户位置信息的应用确保在没有后台位置信息更新的情况下优雅降级 使用 Android 10 中引入的权限在后台获取位置信息 了解详情系统执行后台 Activity 针对从后台...

2020-07-31 15:09:52 186

原创 LeetCode两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807来源:力扣(LeetCode)链接:https://leetcode

2020-07-16 14:00:43 99

原创 C 标准库头文件说明记录

C 标准库头文件说明<assert.h> 条件编译宏,将参数与零比较<complex.h> (C99 起) 复数运算<ctype.h> 用来确定包含于字符数据中的类型的函数<errno.h> 报告错误条件的宏<fenv.h> (C99 起) 浮点数环境<float.h> 浮点数类型的极限<inttypes.h> (C99 起) 整数类型的格式转换<iso646.h> (C95 起) 符号的替代写

2020-07-13 15:00:35 173

原创 Android手机网络类型转换

public static String getNetworkType(Context context) { TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); if (telephonyManager == null) { return ""; } ...

2020-07-02 17:23:22 382

原创 Unicode字符串转换

private static final char[] DIGITS_LOWER = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; //字符串转unicode public static String str2Unicode(String message) { if (message == null || message.isEmpty()) { return message.

2020-06-30 19:15:14 412

原创 Josephus问题最优解

问题描述n个人排成一圈,编号0~n-1,确定一个数字m,从第一个人开始报数,数到m的那个人出圈,然后重新从出圈的下一个人开始报数,直到m再次出圈,最后剩一个人时,他的号码是多少?公式f(1) = 0;f(n) = (f(n-1) + m)%n;#include<iostream>using namespace std;int main() { int amountOfPeople, count; cout << "Please i

2020-05-30 00:26:56 741

原创 Android Root文件路径

/sbin/su/system/bin/su/system/xbin/su/system/sbin/su/vendor/bin/su/su/bin/su/system/sd/xbin/su/system/bin/failsafe/su/system/bin/failsafe/su/data/local/xbin/su/data/local/bin/su/system/sd/xbin/su/system/bin/failsafe/su/data/local/su/system/a.

2020-05-26 14:32:20 2070

原创 移动网络整理

LTELong Term Evolution,即长期演进技术,是电信中用于手机及数据终端的高速无线通讯标准,为高速下行分组接入(HSDPA)过渡到4G的版本,俗称为3.9G。 4GeHRPDcdma的演进技术,大概就是3.75GEDGE(Enhanced Data Rate for GSM Evolution ,增强型数据速率GSM演进技术)是一种从GSM到3G的过渡技术...

2020-03-04 16:39:55 478

原创 JDK版本对应major version

JDK版本major version1.1451.2461.3471.4481.549650751852————————————————版权声明:本文为CSDN博主「hanchao5272」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog....

2019-12-24 11:17:54 1498

原创 Android 重打包失败解决方案

如果apktool b 打包失败显示的log 是 brut.androlib.Androlib.buildResourcesFull 资源打包失败,则原因是缺失基于Android6.0的framework-res.apk文件解决方案1.找一台root过的Android6.0手机2.pull framework-res.apk文件adb pull /system/framework...

2019-11-30 18:19:57 662

原创 ADB 实现Android Http 代理

ADB 实现Android Http 代理设置代理adb shell settings put global http_proxy ip_address:port删除代理adb shell settings delete global http_proxyadb shell settings delete global global_http_proxy_hostadb shell ...

2019-11-06 11:07:21 2332

原创 App反抓包反fiddler证书小技巧

在抓包某些应用的时候,发现虽然使用了JustTrustMe,干掉了证书校验,还是抓包失败。在分析过程中发现对方限制证书,故此记录。 <application android:theme="@style/BaiduMapTheme" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android...

2019-09-19 12:47:01 3286

原创 Java源码阅读 Object

Object 是Java类层次结构的根类。所有非基本类型(包括数组)都直接或间接继承自该类。重要函数static JNINativeMethod methods[] = { {"hashCode", "()I", (void *)&JVM_IHashCode}, {"wait", "(J)V", ...

2019-08-13 23:43:17 204

原创 Android Binder源码阅读

作为Android 主要的IPC方式Binder, 其实现了IBinder接口,通过代理模式,parcelable序列化反序列操作,实现了RPC,即跨进程调用1.IBinder接口首先Binder 实现了IBinder接口,故先来看看IBinder接口,IBinder代码只有四十行功能比较清晰。public interface IBinder { //IBinder协议传输码, ...

2019-07-26 18:59:41 840

原创 Git自动输入账户名密码

入职新公司,公司的gitlab为方便外网访问打了洞,得用http请求,上传公钥没用。故记录一下这个保存账户名密码的git命令$ git config credential.helper store之后请求输入过密码后,账户密码就会自动保存,以后就不用输入密码了。密码明文记录在$ file ~/.git-credentials$ cat ~/.git-credentials...

2019-07-15 21:42:00 3047

原创 Android Message源码阅读

Message是作为Messenger或者MessageQueue中的信息载体,故此阅读分析一下其代码1.实现的接口Message实现了Parcelable接口,以使其在能够在进程间传递。2.字段主要字段是what用于标识信息内容arg1,arg2可以消耗很低的携带整形数据replyTo可携带返回数据的MessengersendingUid指示发送消息的uid的可选字...

2019-05-29 21:42:51 255

原创 Android Messenger使用及分析

Messenger是基于AIDL实现的轻量级IPC方案。1.使用1.1服务端接受信息的服务端需要实现一个Handler用于处理到的信息 private static class MessengerHandler extends Handler { @Override public void handleMessage(Message msg) {...

2019-05-29 21:16:26 5908

原创 Android AIDL的使用及分析

AIDL:Android Interface Definition Language,即Android接口定义语言。Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信。为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用(Remote Procedure Call,RPC)方式来实现。与很多其他的基于RPC的解决方案...

2019-05-29 17:18:56 404 1

原创 Android源码阅读 ThreadLocal

ThreadLocal 是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,数据存储后,只有在该存储线程中可以获取该数据,其他线程无法获得该数据。在阅读Looper,ActivityThread以及AMS中都用到了ThreadLocal。版本代码是android-28构造ThreadLocal类只有一个无参构造函数,所以使用的时候直接调用无参构造函数ThreadLocal...

2019-05-22 22:19:17 302

原创 C++滑动窗口算法

滑动窗口算法在处理一些字符串问题时,可以把复杂度降为O(n)。题目给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。示例 1:输入:s: “cbaebabacd” p: ...

2019-05-01 21:17:19 6916

原创 基于快慢指针链表求环

快慢指针可以在O(1)的常数内存空间里完成链表环形判断,时间复杂度是O(n)。思路大概是 慢指针每次前进一步,快指针前进两步,党慢指针走完环形一圈时,快指针刚好走完两圈,两个指针相遇,则判断有环。#include<stdio.h>struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), ne...

2019-04-30 11:46:22 232

原创 Android逆向 动态调试smali

动态调试smali应该是每个Android逆向工程师的基本功,其原理其实就是改包为debuggable,再用debuggable启动应用,基于JDWP协议端口转发调试应用,JDB Client(被调试程序)在被调试时会启动jdwp线程通过JDWP协议与JDB Server(调试端)进行通信,JDWP协议用于传输调试的行号及局部变量等信息。1.改包1.1利用apktool解包apk调用a...

2019-04-17 12:16:05 759

原创 JNI方法笔记4 动态注册

动态注册的核心思想是找到对应的class,然后在JavaEnv指针中调用RegisterNatives(clazz, getMethods, numMethods)函数进行注册。注静态注册的缺点需要编译所有声明了native函数的Java类,为每个生成的class文件用javah生成一个头文件javah生成的头文件函数名特别长初次调用native函数时需要根据函数名字搜索对应的JN...

2019-04-16 12:33:18 182

原创 C++ pair笔记

c++中的结构模板,定义在头文件中,提供一个包含2个数据成员的结构体模板。继承与_Pair_base结构体模板。通过first,second访问2个成员,有 operator= 和 swap 方法。1.模板template <class T1,class T2> struct pair;2.构造函数2.1 默认构造函数pair();构造一个 对对象及其元素值初始化默认值...

2019-04-10 20:10:21 787

原创 C++ string笔记

CPP 标准库类型string标准库类型string表示可变长的字符序列,包含于string头文件,定义在std命名空间中1.引入‘’’#includeusing std::string;‘’’2.初始化方法string s1 //默认初始化, S1是一个空字符串string s2(s1) //s2是s1的副本string s2 = s1 //等价于s2(s1)strin...

2019-04-08 18:20:13 1128

原创 C++ queue笔记

FIFO队列,queue 是一种容器适配器,专门设计用于在FIFO上下文中操作(先进先出),其中元素插入容器的一端并从另一端提取。queue 实现为容器适配器,它是使用特定容器类的封装对象作为其底层容器的类,提供一组特定的成员函数来访问其元素。元素被推入特定容器的“后面”并从其“前面” 弹出。底层容器可以是标准容器类模板之一或其他一些专门设计的容器类。该底层容器应至少支持以下操作:em...

2019-04-07 17:06:35 1128

转载 C++ vector笔记

一、什么是vector?向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。二、容器特性1.顺序序列顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。2.动态数组支持对序列中的任意元素进行快速直接访问,甚至可...

2019-04-07 16:51:37 260

原创 JNI方法笔记3 异常

JNI方法笔记3 异常1.捕获异常在C++中 通过ExceptionOccurred函数捕获异常然后通过ExceptionClear显式清楚异常jthrowable ex;env->CallVoidMethod(instance, throwingMethodId);ex = env->ExceptionOccurred();if(ex != 0){ env->E...

2019-04-04 17:07:33 284

keytool.exe

apk签名用的签名资源文件,基于keytool -genkey -alias abc.keystore -keyalg RSA -validity 20000 -keystore abc.keystore 可生成密钥

2020-11-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除