- 博客(77)
- 资源 (8)
- 收藏
- 关注
原创 记录多权限判断
2^2+2^3+2^4 = 28次方当作类型,比如2是添加,3是修改,4是删除对应的数据转换为二进制 ,然后进行&(位运算,例如相对应位都是1,则结果为1,否则为0)
2022-06-10 15:16:01 151
原创 记录一个Android Studio build.gradle文件很坑的问题
点击build.gradle文件上面的代码,比如 点击JavaCompile ,无法进入源代码查看,提示 “cannot find declaration to go to” ,直接说就是找不到要转到的声明,产生的原因是gradle的版本问题,我的Android studio是4.1.3的,gradle版本也是android.libraryVariants.all { variant -> JavaCompile javaCompile = variant.javaCompileProv
2021-04-14 10:29:57 504
原创 记录一个jni动态注册不经意犯的错
错误提示:JNI DETECTED ERROR IN APPLICATION: jstring has wrong type如果你的方法是这样写的public native void init(String path) ;jni里面就要写成如下void init(JNIEnv *env,jobject instance, jstring path_) {}重点是jobj...
2020-03-17 14:17:09 497
原创 win10子系统Ubuntu编译ijkplayer需要的环境配置
环境变量配置sudovim ~/.bashrc 在打开的文件末尾添加#========jdk========#export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_231export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib exp...
2020-01-16 09:32:50 234
原创 Window10编译Ollvm环境
在linux环境下编译:https://blog.csdn.net/u014476720/article/details/85097441在window10环境下编译,需要羡慕两个软件工具:刚开始用了mingw-w64最新包8.1.0一直编译不成功,后来用了5.4.0的,就可以正常编译1.mingw-w64离线包下载:https://sourceforge.net/proje...
2019-12-23 17:45:48 2213 1
原创 Win10下用AndroidStudio直接使用Ollvm
编译过程看这里:https://blog.csdn.net/u014476720/article/details/103662800使用过程:1.去ndk目录替换文件F:\androidsdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin替换这三个就行clang++.execlang.execl...
2019-12-23 17:38:40 3460 8
原创 Android自动操作辅助工具思路分享
效果1:效果2:此次开发的工具都用纯原生代码进行Android的应用开发的,其实原理都是用了无障碍功能(AccessibilityService)进行处理。上个版本的工具太麻烦了,还需要进行相应的参数接口破解,获取到相应的值再对H5进行处理,总之叽里呱啦的一连串麻烦,也容易被封号,此次的工具只是作为一个辅助性的,完全不需要对目标应用进行啥破解之类,直接说就是仿真人操作,进行一...
2019-11-01 14:34:55 3327 3
原创 EventBus3.0性能优化问题
引入 api 'org.greenrobot:eventbus:3.1.1' annotationProcessor 'org.greenrobot:eventbus-annotation-processor:3.1.1'生成索引文件 defaultConfig { javaCompileOptions { annotatio...
2019-03-26 14:54:21 1190
原创 Android Studio编译动态替换清单文件AndroidManifest.xml内容(找不到AndroidManifest路径问题解决)
applicationVariants.all { variant -> //参数配置 variant.outputs[0].processManifest.doLast { def manifestFile = "${manifestOutputDirectory}/AndroidManifest.xml" ...
2019-03-04 17:28:40 6128 2
原创 Android 多线程发送消息(Future、Callable)
多线程实现方式主要有三种:继承Thread类 实现Runnable接口 使用ExecutorService、Callable、Future 第1,2两种是没有返回结果的,第3是带有返回结果处理多线程发送消息用的是第3种,其是通过实现Callable接口,并用Future可以来接收多线程的执行结果。 AtomicInteger是一个提供原子操作的Integer类,通过线程安...
2019-02-21 15:43:10 1033
原创 ListView 局部更新数据
firstVisiblePosition = 0lastVisiblePosition = 4position = 9mChildren这个方法里面的item都是可见的item控件, 如果直接用position在getChildAt这个方法里面获取到的View不是对应的View, ListView显示出来的View都是重新从0开始排索引, 真实的索引是需要计算...
2019-02-18 18:26:19 1092
原创 记一次自定义插件(字符串加密插件)
第一次编写插件,开始搞的有点狼狈,一直没有搞明白怎么自定义属性进去,后来看了微信AndResGuard里面的就理解了首先要做的是先定义好自己需要的属性/** * 用于build.gradle中的参数传递 */public class SettingParams { public Iterable<Integer> decryptKey /** ...
2019-02-12 14:58:25 807
原创 微信AndResGuard资源混淆知识点巩固
git: https://github.com/shwenzhang/AndResGuard本来想自己研究资源混淆的工具的,开始看到美团的方案说修改aapt可以达到目的,可是问题来了,搞了很久aapt的源码始终没有编译出来,后来就用微信的开源工具(AndResGuard)了。AndResGuard的原理是 解压apk包->修改resources.arsc文件内容->重新命名资源...
2019-01-09 14:42:34 657
原创 Ubuntu16.04用root用户登录及磁盘扩内存
1. 进入这个目录 /usr/share/lightdm/lightdm.conf.d 修改50-ubuntu.conf内容为:[Seat:*]autologin-guest=falseautologin-user=rootautologin-user-timeout=0greeter-session=lightdm-gtk-greeter 如果没效,去这个目录/etc/ligh...
2019-01-03 18:01:01 666
原创 Android Studio自定义proguard混淆
方法一:(失败)开始的时候感觉有点懵逼,百度上一大堆说去安装目录替换proguard的版本(前提是你下载源码重新编译一个修改好的jar包)那么问题来了,我压根就不知道studio引用的是那个版本的,人家说也不一定引用最新的,网上查了很久我也没得出答案,我的Android studio是3.2版本的,后来我三个版本都替换修改的包,搞着搞着,还是果断放弃吧 Android st...
2018-12-27 15:20:02 1719 1
原创 记一次使用OLLVM增加so文件的分析难度(2)——解决arm64-v8a编译出错
上一篇我用的是android-ndk-r10d的ndk,编译arm64-v8a是有问题的,解决了下面那个“错误提示1”的问题之后,还会有个一个新问题的,问题如下:/opt/android-ndk-r10d/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9/.....
2018-12-25 17:08:07 1794
原创 记一次使用OLLVM增加so文件的分析难度(1)
编译ollvm源码(前提:我的这些都是放在/opt文件夹里面操作的)1. git clone -b obfuscator-llvm-4.0 https://github.com/obfuscator-llvm/obfuscator.git2. mkdir build //这个目录主要是用于存放编译文件而已,其实不要紧的,到时都只是拿里面的编译后的文件来用而已3. cd build4.下面这个...
2018-12-21 16:28:35 1304
原创 简单异或加密处理
异或的理解: 将十进制转换成二进制进行异或,相同的为0 ,不相同的为1,可以看下图理解,异或之后得出的二进制再转十进制,之后的就是异或后的值断点查看过程:异或前:异或后:Java版代码: private static byte[] keyBytes = {1,5,3,4,5}; public static String xor_go(String en...
2018-12-17 11:12:07 3497
原创 JNI 获取系统类加载器处理反制Xposed框架
在网上找了很久没有找到 jni 相应的代码,基本都是java的下面是全部代码:/** * 检测xposed * checkXposed */bool checkXposed(JNIEnv *env) { //找到ClassLoader类 jclass classloaderClass = env->FindClass("java/lang/ClassLoa...
2018-12-11 17:17:03 1619 1
原创 Android自定义Scrollview
效果:主要的几个知识点有 Scroller 、VelocityTracker主要操作View里面的几个方法有 onMeasure、onTouchEvent 、computeScroll 、scrollTo() 、scrollBy() Scroller 是一个专门用于处理滚动效果的工具类,直接调用ScrollTo()或者ScrollBy()的方式来移动的话是瞬间完成,用户体...
2018-12-07 17:22:36 1271
原创 解决图片自适应高度的问题
自适应的加载方法 public static void loadImgBySize(Context context, ImageView imageView, String imgUrl, int w, int h) { Glide.with(context).load(imgUrl).override(w, h).placeholder(R.mipmap.placehold...
2018-12-05 17:39:51 2801
原创 使用RxJava和Glide保存图片
RxJava的基本框架Observable.create(new ObservableOnSubscribe<Boolean>() { @Override public void subscribe(ObservableEmitter<Boolean> e) throws Exception { //TODO 处理下载图片的操作 ...
2018-12-05 16:34:07 1406 1
原创 记录一个融云音视频比较坑的问题
看知识库里面的工单,融云的人说用RongCallClient.getInstance().getCallSession()上面这个可以判断是否通话中,嗯,先当他说的是正确的后来发现,只是判断null 不 null 这样的并不严谨,有时候很快的挂断通话或者对方没有接通直接挂断通话,RongCallClient.getInstance().getCallSession()这个是不为空的,...
2018-12-04 14:49:06 7783
原创 基本混淆的配置
“类”代表类相关的限定条件,它将最终定位到某些符合该限定条件的类。它的内容可以使用:具体的类 访问修饰符(public、protected、private) 通配符*,匹配任意长度字符,但不含包名分隔符(.) 通配符**,匹配任意长度字符,并且包含包名分隔符(.) extends,即可以指定类的基类 implement,匹配实现了某接口的类 $,内部类 “成员”代表类成员相关...
2018-11-29 15:26:00 706
原创 Charles使用Map Local改变响应参数
前言:在对其他应用进行渗透测试时,有些字段不同的值可以代表不同的意思,比如说普通用户和VIP用户,userType等于0是普通用户,userType等于1是Vip用户,这种情况如果是普通用户的话,可以改变返回的响应请求参数就可以达到看到Vip用户的效果了。 由于我没有相应的接口进行测试,下面就随便用一个接口了,反正原理一样的第一步:先抓取需要修改数据的接口,之后保存Response返回的数据,...
2018-11-29 14:35:55 3557
原创 Java序列化排除指定字段
前提是使用的是Serializable进行序列化和反序列化的 1.使用变量修饰符 transient这里打印password 的值是为 空的 2.使用关键字 static第二种这个很容易产生误解,content在输出的时候还是有数据的,反序列化输入的值是 “只是之前的值” ,之后打印的值虽然也是看到 “只是之前的值”,其实这个不是序列化那个的值的如果不理...
2018-11-28 17:36:05 5787
原创 将模块打包成aar及项目引入aar的使用
1. 去Gradle里面找到你要打包的项目,如下图,之后点击assembleRelease进行编译打包2.成功之后,在你项目里面的build里面会生成文件3.项目引入aar文件的配置先复制aar文件进你要使用的项目的libs里面,之后在build.gradle里面配置如下repositories { flatDir { dirs 'libs' //...
2018-11-28 16:15:27 1714
原创 RxJave的使用2
1.使用compose操作符,消除重复代码ObservableTransformer schedulersTransformer = new ObservableTransformer() { @Override public ObservableSource apply(Observable upstream) { return ((...
2018-11-28 11:01:20 195
原创 元符号的视觉差小细节
正确的: ¥习惯性的:¥不要看上面都是一模一样的的元符合,其实复制到代码上就看到很明显的效果了正确的:复制这个的,我用过的手机里面都是显示两横的习惯性的:负责这个的,经测试有部分手机显示两横(小米),有部分手机就显示一横(华为)...
2018-11-22 11:04:26 147
原创 RxJave的使用
implementation 'io.reactivex.rxjava2:rxjava:2.0.4' implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'1.定时器 //start:起始数值 //count:发射数量 //initialDelay:延迟执行时间 ...
2018-11-21 15:50:30 217 1
原创 Android 个人相册图片拖拽排序
效果图如下:代码1:具体核心代码:private ItemTouchHelper helper = new ItemTouchHelper(new ItemTouchHelper.Callback() { @Override public int getMovementFlags(RecyclerView recyclerView, RecyclerV...
2018-11-15 14:13:32 2450 6
原创 List删除数据的一个问题记录
使用List.remove删除数据时发现失效我传入的类型是Integer,发现点击进入查看到的类型是Object 后来百度一番说是级别问题 int < Integer < Object之后改成了传入int , 发现点击进去时类型很精准使用int 类型进行remove 正常可以删除...
2018-11-14 17:03:05 479
原创 记一次利用动态调试so包破解协议 (2)
继续上一篇https://blog.csdn.net/u014476720/article/details/83650566的操作上一篇只分析出so包里面的 buildParam2 里面的加密方式,这一篇来看看buildParam1的加密方式这里分析是已用户主页的接口对应在分析buildParam1里面的加密方式的时候比较坑,可能是工具的原因,又或者是开发者设置的阻碍吧ida打...
2018-11-13 15:12:03 746
原创 记一次某App反编译分析
每次寻找漏洞的时候,我都喜欢从抓包开始噢噢,这里有点尴尬~~请求和返回的数据都进行了加密处理,这波操作我挺喜欢的,证明人家公司的开发人员还是有点安全意识的,不过没有关系,他有张良计,我有过墙梯,先反编译一波看看,使用的工具是 jadx很明显,app用了360加固了,哎,在以前,有加固的应用我基本会放弃的,不过现在没关系,脱壳呗我用的脱壳源码在这里 https://githu...
2018-11-09 11:14:09 740 4
原创 记一次利用动态调试so包破解协议 (1)
前期工作:1.设置手机为调试模式,我这里用了 mprop相关命令:1.chmod 755 /data/local/tmp/mprop2.data/local/tmp/mprop3.setprop ro.debuggable 14./data/local/tmp/mprop -r5.查看 getprop ro.debuggable这样代码成功了2.修改selinux...
2018-11-02 15:58:36 1066
原创 记录一次子母包问题导致找不到路径
根据这篇文章https://bbs.pediy.com/thread-246767.htm的思路以广州圈app为案例,分析其的代码发现,采用的是插件化加载方式,下载的apk包只是一个载体,真正的apk隐藏在assets里面,不过这样感觉还是挺好的,可以减小apk包的大小,至于这种方式有没有不好的我就不知道了,因为我没有试过插件化的。现在知道了真实包在那里,下面就开始进行hook其的加密...
2018-11-01 11:07:22 444
原创 记录一次使用Frida的坑问题
selinux权限导致的问题:frida.NotSupportedError: unexpected error while attaching to process with pid 10010解决办法:修改selinux的权限,执行setenforce 0, 执行成功的话会变为Permissive上一篇文章记一次使用Xposed框架DumpDex插件脱壳也是需要注意这个问题的...
2018-10-30 14:07:17 7118 1
原创 Frida的使用-安装
1.我这里用的python3.7环境的,直接用pip就可以安装frida2.查看内核根据cpu版本去下载相应frida-server,然后去下载https://github.com/frida/frida/releases相应的版本我的手机是小米4 arm-v7的,所以直接下载arm的就行了直接下载 frida-server-12.2.18-android-arm.x...
2018-10-30 10:47:52 21251 1
原创 记一次使用Xposed框架DumpDex插件脱壳
DumpDex源码:https://github.com/WrBug/dumpDex 使用的时候还需要自己将安装包里面的lib里面的包导入手机,解压安装包就能看到lib目录导入到这个文件夹/data/local/tmp/ 因为DumpDex插件是这样加载so包的,看下面代码知道插件运行的时候有个问题需要处理,就是 seLinux导致权限问题导致错误:java.lan...
2018-10-25 18:10:12 7608 5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人