自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(151)
  • 收藏
  • 关注

原创 Android Studio 项目引入ProtoBuf(附序列化与反序列化)

打开CMD 进入 protobuf-3.21.5\java 目录下, 输入命令: mvn package 也可以直接进入此文件夹中按住shift+鼠标右键选择在此处打开命令窗口再输入命令,然后要等待一会,最终出现了成功的窗口 如图。一直听说protobuf的优点 体积小 速度快 是这个的几十倍 那个的上百倍,一直以来的项目场景也很少遇到需要如此高性能的通信,但是也需要研究一下,万一哪天要写个 IM 呢,神器 就是神器。然后把这个文件放入工程里吧,要跟上面proto里包的目录一致!

2022-09-12 02:11:56 1080 1

原创 Java基础篇——Java运算符

当int 类型的数据进行左移的时候,当左移的位数大于等于32位的时候,位数会先求余数,然后再进行左移,也就是说,如果真的左移32位 12345

2022-08-29 23:32:12 392

原创 多线程之callable详解

肯定不行,后端可以把3个块的信息,包装成一个接口,全部返回,那么问题来了,后端调用3个接口,比如第一个接口需要1秒,第二个需要2秒,第三个需要3秒,那么包装的这个接口响应时间最少6秒,怎么解决这个问题呢,可以用多线程来帮我们解决。启动3个线程,每个线程去调用一个接口,那么3个线程一共执行完的时间就是最慢的那个线程的执行时间,这样接口的响应时间就变成了3秒,一下节省了一半的时间。线程没有执行完,也就是没有到达COMPLETING的状态,会执行LockSupport.park,让线程等待,那什么时候去唤醒呢?

2022-08-19 13:48:30 562

原创 ExecutorService详解

在我们的日常开发中,难免会使用到线程,部分还会用到多线程并发问题。我们知道,线程的创建和释放,需要占用不小的内存和资源。如果每次需要使用线程时,都new 一个Thread的话,难免会造成资源的浪费,而且可以无限制创建,之间相互竞争,会导致过多占用系统资源导致系统瘫痪。不利于扩展,比如如定时执行、定期执行、线程中断,所以很有必要了解下ExecutorService的使用。

2022-08-19 13:41:57 530

转载 FutureTask详解

如果任务还没有启动就调用了cancel(true),任务将永远不会被执行。3、已完成:FutureTask正常执行结束,或者FutureTask执行被取消(FutureTask对象cancel方法),或者FutureTask对象run方法执行抛出异常而导致中断而结束,FutureTask都处于已完成状态。state:表示当前任务的运行状态,FutureTask的所有方法都是围绕state开展的,state声明为volatile,保证了state的可见性,当对state进行修改时所有的线程都会看到。

2022-08-19 13:31:31 562

转载 Unsafe的一些使用技巧

先大概介绍这三个 Unsafe 用法吧,已经是我个人认为比较常用的几个 Unsafe 案例了。Unsafe 这个东西,会用的人基本都知道不能瞎用;不会用的话,看个热闹,知道 Java 有这个机制总比不知道强对吧。当然,本文也介绍了一些实际场景可能必须得用 Unsafe,但更多还是出现在各个底层源码之中。...

2022-08-05 15:19:38 941

原创 Double.doubleToLongBits()方法使用

该方法可以将double类型数据转换成long类型数据,从而可以使double类型数据按照long的方法判断大小(, ==)。

2022-08-05 11:44:43 878

转载 基于xposed框架hook使用

我不怕千万人阻挡,只怕自己投降。

2022-06-16 00:05:26 4006 1

原创 fiddler5+雷电模拟器4.0.82抓包设置

之前使用的fiddler4和雷电模拟器3进行抓包,最近在使用模拟器访问app内嵌的网页(vue编写的)时发现雷电3无法访问加载vue编写出的网页。所以决定换到雷电4。当前下载的版本是雷电模拟器4.0.82。按照之前的配置雷电3的方式配置雷电4的代理后发现无法使用fiddler进行抓包,根据网上大佬们的指导,进行多次尝试,最后得以成功。将此次抓包配置步骤记录下来,以便后续查看。原因分析:雷电4使用的是安卓7,安卓7对用户自行安装的证书不再信任,所以造成无法抓包。因此解决方式就是将证书制作成为系统证书。

2022-05-19 18:13:07 3566 1

原创 Android模拟器 7.1 (64) 以上版本安装xposed框架

Android模拟器 7.1 (64) 以上版本安装xposed框架

2022-05-18 20:40:31 9459

原创 Dalvik字节码小记_const/4 const/16 基础

Android逆向分析很重要。const/4 v1, 0x1 这里大家应该知道 v1=1。但是真真正正想过为什么?也许很多人都知道,这里是写给不知道的。首先4代表4字节,那么就是4位的。所以呢 v1=0*4+1=1const/16 v2, 0x10 这里的话,16字节,那么16位对吧。所以v2 = 1*16+0 = 16const/16 v3, 0x28 16字节,16位。v3 = 2*16+8 = 40;这里就解释完了。后面给点dalvik的实例吧。.local 4 ...

2022-05-10 10:56:59 2761

原创 Android逆向学习知识体系(四)

第三阶段:Android 漏洞分析和挖掘:学习常见的漏洞类型和原理。例如堆溢出,栈溢出,UAF等,可以参考漏洞分析相关书籍;关注Android Security Bulletin,根据提供的diff分析漏洞成因;学习并调试以前的经典漏洞;学习漏洞挖掘fuzzing思路,参考书籍推荐《Android安全攻防权威指南》;病毒分析与病毒脱壳实战;Android 虚拟机技术、系统源码分析、刷机机制介绍、制作ROM刷机包:ASP代码注入式写法;Android 免root进行h.

2022-05-07 21:49:51 711

原创 Android逆向学习知识体系(三)

第二阶段:Android 逆向进阶学习:Android 系统结构深入分析,自定义 ClassLoader,自定义注解和元注解原理分析;了解AndroidNDK,静态注册,动态注册,SO加载分析,App保护策略去除霸哥磁力搜素APK签名验证,一键去除签名验证,静态代理,动态代理Hook Activity启动函数,Hook签名验证函数介绍xposed框架:Xposed框架:绕过验证码注册Xposed框架:登陆劫持Xposed框架:篡改IMEI信息介绍CydiaSubstr

2022-05-07 21:48:57 999

原创 Android逆向学习知识体系(二)

第一阶段:Android 基础知识回顾:回顾Android 开发编程,深入理解Android系统原理和层次结构,深入分析Handler源码和原理;回顾Java,C/C++,Kotlin 在Android开发中必用的语言,了解几种语言的混淆后的特性;回顾Android IPC和JNI的底层原理和热更新技术回顾Native开发要点,使用C++结合NDK完成Android Native开发;回顾Android开发中常用的 AMS、PMS、WMS原理;回顾Android开发中 Google的

2022-05-07 21:47:03 236

原创 Android逆向学习线路知识体系(一)

此篇整理了最完整的《Android逆向学习线路知识体系》。希望给迷糊的入门者指出一个明确的方向。关于Android逆向、破解、脱壳、反逆向、反破解 等知识,网上没有完整的资料,也没有相关的课程。完整的知识体系和学习大纲,都是过来人总结的经验,逆向方面没人总结,今天我来总结一下完整的知识体系框架。讲一下关于Android安全工程师需要具备的能力,以及想要从事Android逆向开发应该如何着手学习。最近我发现一些通过培训班出来面试的,纯粹的骗子,连Android工程都不会创建,有几个还没听说过R

2022-05-07 21:44:41 961

原创 ADB install 失败的可能原因

有时候在手机上卸载了应用,再用adb安装时候 虽然命令行提示成功,但应用并未安装到手机。C:\Users\Administrator>adb install -t D:\AndroidKiller_v1.3.1\projects\****.apkPerforming Streamed InstallSuccess换了另一部手机再次尝试 可以安装成功, 可以排除是APK 的问题。基本上可以确定在手机点击删除应用的方式不干净彻底,那要用adb 再次彻底删除残留包。解决方法C:\U

2022-05-06 11:33:34 4848

原创 用AndroidStudio动态调试smali

思路:APK-->反编译为Smali文件-->导入Android Studio里进行动态调试一、使用AndroidKiller,反编译为Smali文件点击工程管理,右键Smali—>打开方式—>打开路径 二、复制上一步的smali文件夹,到其他文件(这里我新建了app-debug文件夹)并重命名为src三、在AndroidKiller里查看包名和MainActivity记住项目的package路径,如果application节点没有开启d...

2022-04-30 17:30:29 3294 6

原创 使用 apktool 对apk 签名

使用 apktool 对apk 签名

2022-04-28 19:02:50 2401

原创 Apktool 回编译出现No resource identifier产生compileSdkVersionCodename等错误

apktool 回编译的时候出现:D:\AndroidKiller_v1.3.1\bin\apktool\apktool>java -jar apktool_2.6.1.jar b --use-aapt2 myapplication -o myapplication.apkI: Using Apktool 2.6.1I: Checking whether sources has changed...I: Checking whether resources has changed...I:

2022-04-28 16:44:48 1332

原创 Android killer 回编译失败

当前 Apktool 使用版本:Apktool正在编译 APK,请稍等...>I: Using Apktool 2.2.3>I: Smaling smali folder into classes.dex...>I: Building resources...>W: invalid resource directory name: D:\AndroidKiller_v1.3.1\projects\app-release\Project\res navigation&...

2022-04-27 21:10:11 2470

转载 理解虚拟机(Android 虚拟机进化史)

版权声明:本文为CSDN博主「怪伽先森」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/u011033906/article/details/117806349梳理一下各个 Android 版本的 虚拟机和编译策略1. Dalvik or ART?Android 4.4 以前用的是 Dalvik 虚拟机,Android 4.4 开始引入 ART 虚拟机。Android 4.4 版本上两种运行时环境

2022-04-27 16:41:12 1969

原创 理解APK 安装流程

/data/app:存房用户安装apk的目录,安装时,把apk拷贝到这里/data/data:应用安装完成后,在/data/data目录下自动生成和APK包名相同的文件夹,用户存放应用程序的数据/data/dalivk-cache:存放apk的odex文件,便于应用启动时直接执行具体安装过程如下:首先,复制apk安装包到/data/app下,然后校验apk的签名是否正确,检查apk的结构是否正常,进而解压并且校验apk中的dex文件,确定dex文件没有被破坏后,再把dex优化...

2022-04-27 14:39:49 669

原创 深入详解Apk编译打包流程

前言身为一个Android开发,一定要了解apk编译打包流程;那么今天我们就来学习下;apk的编译流程1、apk文件apk是Android Package的缩写; 解压apk文件后包含AndroidManifest.xml、assets目录、classes.dex(还可能有 classes2.dex,classes3.dex...classesN.dex)、lib目录、META-INF目录、res目录和resources.arsc; classes.dex 是.dex文件; r..

2022-04-27 13:42:34 3427

原创 Attempt to invoke virtual method ‘void androidx.appcompat.app.ActionBar.setTitle(java.lang.CharSeque

具体错误如下D/AndroidRuntime: Shutting down VME/AndroidRuntime: FATAL EXCEPTION: main Process: com.zjm.myapplication, PID: 6588 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.zjm.myapplication/com.zjm.myapplication.footNavigat

2022-04-14 17:49:02 4736 4

原创 Android开发 报错: xxx does not have a NavController set on xxx

在Activity的onCreate生命周期里执行下列代码,导致 xxx does not have a NavController set on xxx 报错I/art: Do partial code cache collection, code=57KB, data=58KBI/art: After code cache collection, code=53KB, data=56KBI/art: Increasing code cache capacity to 256KBD/Andro

2022-04-14 17:26:50 1730

原创 Android Studio 控制台中文乱码

修改设置追加 -Dfile.encoding=UTF-8添加完上述文件和代码后,关闭文件,并重新同步工程和运行(忽略此步骤再次打开Studio会报错),再关闭Android Studio,再次打开即可。

2022-02-10 17:54:18 5657 1

原创 Gradle编译时下载依赖失败解决方法

下载依赖很慢 甚至失败如下如果Gradle在编译的时候没有在本地仓库中发现依赖,就会从远程仓库中下载,默认的远程仓库为mavenCentral(),也就是http://repo1.maven.org/maven2/,但是往往访问速度特别慢,不FQ经常会下载超时或者需要很长时间导致Build失败,因此,可以用国内的仓库代替:阿里的仓库地址:http://maven.aliyun.com/nexus/content/groups/public/ OSChina的仓库地址:http://maven.

2022-02-09 22:56:18 2048

原创 Android Studio 启动错误

今天用360电脑管家优化了一些启动项后,Android Studio无法启动,报错如下解决方式就是使用命令工具cmd:执行 :netsh winsock reset但是需要用管理员身份执行,简单地理解就是:重置程序通过操作系统链接网络的入口点。这个命令作用是重置 Winsock 目录。如果一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就需要用netsh winsock reset命令来重置Winsock目录借以恢复网络。这个命令的好处是可以重..

2022-02-09 21:54:54 2609

原创 Smali基础语法

一、Smali含义Smali是Davlik的寄存器语言,语法上和汇编语言类似. Davlik是基于寄存器的,就是说smali里的所有操作都必须经过寄存器来进行.二.Smali基本类型B—byteC—charD—doubleF—floatI—intS—shortV—voidJ—longZ—boolean三.Smali引用类型[XXX ----> array 数组eg:int[] ---> [ILxxx/yyy ----> objec...

2022-02-07 17:08:54 3470

原创 Android Killer反编译异常收集解决方案

使用Android Killer 反编译,出现以下异常:一、resource spec: 0x01010540当前 Apktool 使用版本:Android Killer Default APKTOOL正在反编译 APK,请稍等...>I: 使用 ShakaApktool 2.0.0-20150914>I: 正在加载资源列表...>I: 反编译 AndroidManifest.xml 与资源...>I: 正在从框架文件加载资源列表: C:\Users\Admini

2022-01-31 00:05:22 3534

原创 syst3md 挖矿病毒处理记录

有个叫syst3md的进程,占用了1986%的cpu,合理怀疑这个就是病毒。一、查看定时任务,正常的。并没有其他恶意的写入[root@localhost ~]# crontab -l#每天凌晨30执行 清理docker日志30 0 * * * /home/docker/clear_docker_containers_log.sh[root@localhost ~]# 二、通过syst3md的进程号21308查找其运行位置三、找到病毒文件所在位置,删除病毒文件。同时发现是 ...

2022-01-28 16:41:40 2713 1

原创 docker内存及cpu限制

在一台物理机上启动了多个docker容器时,就需要对内存及cpu做出相关的限制,以达到容器互不影响的目的限制内存:-m选项注:限制内存后进入容器中(free -m)查看内存,显示的内存为物理机的内存[root@120 ~]# docker psCONTAINER ID IMAGE COMMAND

2022-01-28 14:22:37 5481

原创 Elasticsearch-head 请求头 Content-Type header 设置

asticSearch搭建完成后准备使用es-head建立索引时发现Content-Type错误了解决办法进入head插件安装目录编辑/usr/src/app/_site/vendor.js(我的es_Head插件部署在docker容器中,路径作为参考)修改共有两处:第6886行 /contentType: "application/x-www-form-urlencoded改为 contentType: "application/json;charset=UTF-8"第757.

2021-12-08 17:28:00 2194

原创 centos端口扫描 nmap

在服务器上安装 nmap[root@119 ~]# yum install nmapLoaded plugins: fastestmirrorbase

2021-11-27 13:24:37 1322

原创 windows下安装apache

1.官网下载Apache官网地址:https://httpd.apache.org/点击Files for Microsoft Windows点击ApacheHaus 上面那段话,大致意思是:Apache本身不提供已编译的安装包,只提供源码,如果你自己无法编译,可以选择下面这些官方推荐的第三方提供编译的网站。 其中后两个是有名的wamp以及xampp集成环境,如果只想下载apache可以选择前三个网站,这里我们第一个ApacheHaus为例。点击下...

2021-10-04 20:51:00 3905 1

转载 Netty 短链接

https://blog.csdn.net/albertfly/article/details/51747463?_t_t_t=0.35980429297254146

2021-09-08 23:47:06 1049

原创 CPU个数、CPU核心数、CPU线程数

我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能等级。CPU从早期的单核,发展到现在的双核,多核。CPU除了核心数之外,还有线程数之说,下面文本就来解释一下CPU的核心数与线程数的关系和区别。CPU个数即CPU芯片个数CPU的核心数是指物理上,也就是硬件上存在着几个核心。比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组。线程数是一种逻辑的概念,简单地说,就是模拟出的CPU核心数。比如,可以通过一个CPU核心数模拟出2线程的C.

2021-09-08 22:53:30 2855

原创 VMware Workstation 安装、系统安装、网络配置

一、安装文件随处可下载,我下载的版本如下 和解压目录如下

2021-06-20 14:14:16 382

原创 centOS6.9 gitlab + gitlab-runner 集成 CICD

下载wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm[root@insurance ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm--2020-07-15 16:43:28-- https://mirr.

2021-06-20 12:34:40 226

原创 maven子项目改变名称后,IDEA显示问题

2021-06-20 12:29:52 252

空空如也

空空如也

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

TA关注的人

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