- 博客(151)
- 收藏
- 关注
原创 Android Studio 项目引入ProtoBuf(附序列化与反序列化)
打开CMD 进入 protobuf-3.21.5\java 目录下, 输入命令: mvn package 也可以直接进入此文件夹中按住shift+鼠标右键选择在此处打开命令窗口再输入命令,然后要等待一会,最终出现了成功的窗口 如图。一直听说protobuf的优点 体积小 速度快 是这个的几十倍 那个的上百倍,一直以来的项目场景也很少遇到需要如此高性能的通信,但是也需要研究一下,万一哪天要写个 IM 呢,神器 就是神器。然后把这个文件放入工程里吧,要跟上面proto里包的目录一致!
2022-09-12 02:11:56 1217 1
原创 Java基础篇——Java运算符
当int 类型的数据进行左移的时候,当左移的位数大于等于32位的时候,位数会先求余数,然后再进行左移,也就是说,如果真的左移32位 12345
2022-08-29 23:32:12 530
原创 多线程之callable详解
肯定不行,后端可以把3个块的信息,包装成一个接口,全部返回,那么问题来了,后端调用3个接口,比如第一个接口需要1秒,第二个需要2秒,第三个需要3秒,那么包装的这个接口响应时间最少6秒,怎么解决这个问题呢,可以用多线程来帮我们解决。启动3个线程,每个线程去调用一个接口,那么3个线程一共执行完的时间就是最慢的那个线程的执行时间,这样接口的响应时间就变成了3秒,一下节省了一半的时间。线程没有执行完,也就是没有到达COMPLETING的状态,会执行LockSupport.park,让线程等待,那什么时候去唤醒呢?
2022-08-19 13:48:30 618
原创 ExecutorService详解
在我们的日常开发中,难免会使用到线程,部分还会用到多线程并发问题。我们知道,线程的创建和释放,需要占用不小的内存和资源。如果每次需要使用线程时,都new 一个Thread的话,难免会造成资源的浪费,而且可以无限制创建,之间相互竞争,会导致过多占用系统资源导致系统瘫痪。不利于扩展,比如如定时执行、定期执行、线程中断,所以很有必要了解下ExecutorService的使用。
2022-08-19 13:41:57 652
转载 FutureTask详解
如果任务还没有启动就调用了cancel(true),任务将永远不会被执行。3、已完成:FutureTask正常执行结束,或者FutureTask执行被取消(FutureTask对象cancel方法),或者FutureTask对象run方法执行抛出异常而导致中断而结束,FutureTask都处于已完成状态。state:表示当前任务的运行状态,FutureTask的所有方法都是围绕state开展的,state声明为volatile,保证了state的可见性,当对state进行修改时所有的线程都会看到。
2022-08-19 13:31:31 682
转载 Unsafe的一些使用技巧
先大概介绍这三个 Unsafe 用法吧,已经是我个人认为比较常用的几个 Unsafe 案例了。Unsafe 这个东西,会用的人基本都知道不能瞎用;不会用的话,看个热闹,知道 Java 有这个机制总比不知道强对吧。当然,本文也介绍了一些实际场景可能必须得用 Unsafe,但更多还是出现在各个底层源码之中。...
2022-08-05 15:19:38 999
原创 Double.doubleToLongBits()方法使用
该方法可以将double类型数据转换成long类型数据,从而可以使double类型数据按照long的方法判断大小(, ==)。
2022-08-05 11:44:43 1028
原创 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 3865 1
原创 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 3485
原创 Android逆向学习知识体系(四)
第三阶段:Android 漏洞分析和挖掘:学习常见的漏洞类型和原理。例如堆溢出,栈溢出,UAF等,可以参考漏洞分析相关书籍;关注Android Security Bulletin,根据提供的diff分析漏洞成因;学习并调试以前的经典漏洞;学习漏洞挖掘fuzzing思路,参考书籍推荐《Android安全攻防权威指南》;病毒分析与病毒脱壳实战;Android 虚拟机技术、系统源码分析、刷机机制介绍、制作ROM刷机包:ASP代码注入式写法;Android 免root进行h.
2022-05-07 21:49:51 748
原创 Android逆向学习知识体系(三)
第二阶段:Android 逆向进阶学习:Android 系统结构深入分析,自定义 ClassLoader,自定义注解和元注解原理分析;了解AndroidNDK,静态注册,动态注册,SO加载分析,App保护策略去除霸哥磁力搜素APK签名验证,一键去除签名验证,静态代理,动态代理Hook Activity启动函数,Hook签名验证函数介绍xposed框架:Xposed框架:绕过验证码注册Xposed框架:登陆劫持Xposed框架:篡改IMEI信息介绍CydiaSubstr
2022-05-07 21:48:57 1048
原创 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 273
原创 Android逆向学习线路知识体系(一)
此篇整理了最完整的《Android逆向学习线路知识体系》。希望给迷糊的入门者指出一个明确的方向。关于Android逆向、破解、脱壳、反逆向、反破解 等知识,网上没有完整的资料,也没有相关的课程。完整的知识体系和学习大纲,都是过来人总结的经验,逆向方面没人总结,今天我来总结一下完整的知识体系框架。讲一下关于Android安全工程师需要具备的能力,以及想要从事Android逆向开发应该如何着手学习。最近我发现一些通过培训班出来面试的,纯粹的骗子,连Android工程都不会创建,有几个还没听说过R
2022-05-07 21:44:41 1090
原创 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 5586
原创 用AndroidStudio动态调试smali
思路:APK-->反编译为Smali文件-->导入Android Studio里进行动态调试一、使用AndroidKiller,反编译为Smali文件点击工程管理,右键Smali—>打开方式—>打开路径 二、复制上一步的smali文件夹,到其他文件(这里我新建了app-debug文件夹)并重命名为src三、在AndroidKiller里查看包名和MainActivity记住项目的package路径,如果application节点没有开启d...
2022-04-30 17:30:29 3820 6
原创 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 1813
原创 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 2561
转载 理解虚拟机(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 2247
原创 理解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 702
原创 深入详解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 3580
原创 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 5010 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 1858
原创 Android Studio 控制台中文乱码
修改设置追加 -Dfile.encoding=UTF-8添加完上述文件和代码后,关闭文件,并重新同步工程和运行(忽略此步骤再次打开Studio会报错),再关闭Android Studio,再次打开即可。
2022-02-10 17:54:18 6795 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 2341
原创 Android Studio 启动错误
今天用360电脑管家优化了一些启动项后,Android Studio无法启动,报错如下解决方式就是使用命令工具cmd:执行 :netsh winsock reset但是需要用管理员身份执行,简单地理解就是:重置程序通过操作系统链接网络的入口点。这个命令作用是重置 Winsock 目录。如果一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就需要用netsh winsock reset命令来重置Winsock目录借以恢复网络。这个命令的好处是可以重..
2022-02-09 21:54:54 2706
原创 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 4171
原创 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 3690
原创 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 2874 1
原创 docker内存及cpu限制
在一台物理机上启动了多个docker容器时,就需要对内存及cpu做出相关的限制,以达到容器互不影响的目的限制内存:-m选项注:限制内存后进入容器中(free -m)查看内存,显示的内存为物理机的内存[root@120 ~]# docker psCONTAINER ID IMAGE COMMAND
2022-01-28 14:22:37 5557
原创 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 2298
原创 centos端口扫描 nmap
在服务器上安装 nmap[root@119 ~]# yum install nmapLoaded plugins: fastestmirrorbase
2021-11-27 13:24:37 1425
原创 windows下安装apache
1.官网下载Apache官网地址:https://httpd.apache.org/点击Files for Microsoft Windows点击ApacheHaus 上面那段话,大致意思是:Apache本身不提供已编译的安装包,只提供源码,如果你自己无法编译,可以选择下面这些官方推荐的第三方提供编译的网站。 其中后两个是有名的wamp以及xampp集成环境,如果只想下载apache可以选择前三个网站,这里我们第一个ApacheHaus为例。点击下...
2021-10-04 20:51:00 4031 1
转载 Netty 短链接
https://blog.csdn.net/albertfly/article/details/51747463?_t_t_t=0.35980429297254146
2021-09-08 23:47:06 1138
原创 CPU个数、CPU核心数、CPU线程数
我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能等级。CPU从早期的单核,发展到现在的双核,多核。CPU除了核心数之外,还有线程数之说,下面文本就来解释一下CPU的核心数与线程数的关系和区别。CPU个数即CPU芯片个数CPU的核心数是指物理上,也就是硬件上存在着几个核心。比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组。线程数是一种逻辑的概念,简单地说,就是模拟出的CPU核心数。比如,可以通过一个CPU核心数模拟出2线程的C.
2021-09-08 22:53:30 3061
原创 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 275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人