首页
学习
活动
专区
圈层
工具
发布

Android混淆代码错误堆栈还原

前言 相信做过app的同学对代码混淆应该不陌生吧,如果陌生就自行百度,这里不做普及。我们先思考一个问题,如果我们把代码混淆了,如果出错了怎么定位问题?...答案非常简单,只要稍微实践下你就明白了,下面就是给你整理的对混淆代码错误堆栈还原的方法。 如何混淆?...,它里面存放着源码到混淆之后的代码的映射信息,这个文件是在我们执行proguard之后产生的,产生的位置如下图所示: ?...制造一个混淆代码的Crash ? ? 启动MainActivity的时候就会直接Crash并抛出以下异常: ? 是不是发现出错的堆栈完全看不懂呢,如果你不会还原的话,你可能根本就定位不到出错的位置。...总结 是不是发现总有些自己讲不清楚说明白的东西?我们获取知识都是先从问为什么开始,本篇文章讲的只是开发中的一个解决问题的技巧,但你想想如果有很多这种混淆的异常,难道你要一个一个去看,拜托太低效啦。

2.4K50

轮廓的矩

:8974 算法:图像轮廓的矩是一个轮廓、一幅图像、一组点集的全局特征,包括几何特征,例如大小、位置、角度、形状等。...如果两个图像轮廓的矩一致,那么两个图像轮廓一致。在图像位置发生变化时,虽然图像轮廓的面积、周长等特征不变,但是更高阶的特征会随着位置的变化而发生变化。...中心矩通过减去均值获取平移不变性,忽略两个图像的位置关系,比较不同位置的两个图像的一致性。中心矩不具有缩放不变性,例如,两个形状一致、大小不一的图像,中心矩不同。...+q阶空间矩: 零阶矩:m00 一阶矩:m10, m01 二阶矩:m20, m11, m02 三阶矩:m30, m21, m12, m03 f(x,y)的p+q阶中心矩: 二阶中心矩:mu20,...零阶矩“m00”的含义最为直观表示图像轮廓的面积。

57420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android代码混淆及调试错误「建议收藏」

    Android代码混淆及调试错误 以下是自己实践代码混淆的步骤,记录下来免得以后忘了 代码混淆需要对apk进行签名,签名后才是混淆过的(前提是已经放开代码混淆配置,详见以下步骤),直接从eclipse项目...bin下拷贝的apk是没有进行混淆的。...放开混淆及配置混淆脚本 新建的android项目都带有project.properties及proguard-project.txt 文件。默认是不混淆代码的。...签名并混淆 一开始自己并不知道放开哪些类(即保持哪些类不混淆),反正签名混淆后,一步一步调出来的(详见步骤4)。...混淆后排错 网上查了半天,不知道怎么混淆后排错。以下是我的办法,不知道别人是怎么混淆后调试的。 安装混淆后的apk至模拟器,在logcat里查错。

    1K20

    C++ OpenCV图像的矩

    良好的特征不受光线、噪点、几何形变的干扰,图像识别技术的发展中,不断有新的描述图像特征提出,而图像不变矩就是其中一个。...从图像中计算出来的矩通常描述了图像不同种类的几何特征如:大小、灰度、方向、形状等,图像矩广泛应用于模式识别、目标分类、目标识别与防伪估计、图像编码与重构等领域。...OpenCV中的矩主要包括以下几种:空间矩,中心矩和中心归一化矩。...核心代码 实现步骤: 变为灰度图 高斯模糊 边缘检测 轮廓提取 计算图像矩 计算图像的质心 绘制轮廓和质心 显示图像 ? ? ? 运行效果 ?...其中命令行里面显示每个轮廓的面积和周长,右边的画的轮廓里面还有每个轮廓的质心 ---- -END-

    1.5K30

    矩阵图的深度广度遍历

    图的常用表示方法就是矩阵和邻接表。 矩阵通常使用与规整的,且数据量较小的图,这种图直观上方便的表示出了图之间节点的相互关系。...图的数据结构 typedef struct Graph_Matrix{ char vers[NUM]; //存储数据表示 int arc[NUM][NUM];//二维矩阵图,用来表示节点相连情况...int numVer,numEdge;//顶点数,和边数 }Graph_Matrix; 矩阵图的深度优先遍历 为了防止图中有不连通的子图,因此每个节点顺序的遍历一次,每次采用深度优先遍历其联通子图...visited[i]) DFS(g,i); } } 矩阵图的广度优先遍历 广度优先遍历,主要依赖于一个队列,每次遍历一个父节点,寻找他的子节点一次放入队列中,遍历完,读取队列中的队头...,在此读取其子节点,有点类似树中遍历父节点后,在遍历他的孩子节点。

    684100

    基于高阶矩的行业轮动

    本文主要参考了报告[1],报告数据代码获取后台回复“高阶矩行业轮动”。...1.背景 大量研究表明,A股行业有明显的轮动现象,并且与A股相反,行业指数通常呈现动量特征,即前期涨幅高的行业,会延续上涨的趋势,比前期涨幅低的行业有明显超额收益,这一现象之前的文章中也探究过,具体可以参考...最后,考虑到动量是收益率的一阶矩,波动率是收益率的二阶矩,自然而然的想到,是否收益率的三阶矩、四阶矩是否也能对行业的轮动现象做出解释。即用偏度、峰度作为因子做行业轮动。这两个因子也有一些文献做过研究。...偏度反映的是数据整体相较于均值的偏离的程度,正偏度越高,表明整体高于均值的程度更高,数据右拖尾。...sm.add_constant(fall[['vol','mom','sk','kur']])) fm.fit() 参考文献 [1]20170409-海通证券-海通证券金融工程专题报告:动量策略及收益率高阶矩在行业轮动中的应用

    1.4K40

    容易混淆的const

    也就是他的值对于这个符号来说是只读的,但它并不防止通过程序的内部的方法来修改这个值。const最有用之处就是他来限定函数的形参,这样该函数将不会修改实参指针所指的数据,但其他的函数却可能会修改它。...例如:const int Max=100; Max++会产生错误; (2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。   ...y; //正确,允许改变指向 *px = 3; //错误,不允许改变指针指向的变量的值 2)指针指向的变量的值可以改变,指向不可变 int x = 1; int y = 2; int* const px...= &x; px = &y; //错误,不允许改变指针指向 *px = 3; //正确,允许改变指针指向的变量的值 3)指针指向的变量的值不可变,指向不可变 int x = 1; int y = 2;...const int* const px = &x; int const* const px = &x; px = &y; //错误,不允许改变指针指向 *px = 3; //错误,不允许改变指针指向的变量的值

    94510

    解密混淆的PHP程序

    团队大佬在做PHP代码审计的时候发现PHP代码是被混淆过的。虽然可以通过自己手动解密可以还原原先的PHP代码,但是混淆过程比较复杂且自己写脚本还原非常麻烦。...所以,我这边通过PHP底层的操作对混淆后的PHP代码进行还原。...0x02 PHP代码混淆 PHP代码混淆一般来说有两种方法: 需要PHP扩展 无需PHP扩展 本文我们主要讲解无需PHP扩展的代码混淆的解密。...大多数的无需扩展的php代码混淆原理上都是使用eval进行代码的执行。如果我们能够得到 eval 函数的参数,即可获得解密后的代码。...不过,一般来说PHP的混淆都会通过多次 eval 来还原并执行php代码,所以我们可以通过hook PHP的eval函数来打印其参数来解密代码。

    4.2K10

    【从零学习OpenCV 4】图像矩的计算与应用

    矩是描述图像特征的算子,被广泛用于图像检索和识别、图像匹配、图像重建、图像压缩以及运动图像序列分析等领域。本节中将介绍几何矩与Hu矩的计算方法以及应用Hu矩实现图像轮廓的匹配。...几何矩与中心矩 图像几何矩的计算方式如式(7.8)所示: ? 其中是像素处的像素值。当x和y同时取值0时称为零阶矩,零阶矩可以用于计算某个形状的质心,当x和y分别取值0和1时被称为一阶矩,以此类推。...该函数用于计算图像连通域的几何矩和中心距以及归一化的几何矩。函数第一个参数是待计算矩的输入图像或者2D坐标集合。...函数会返回一个Moments类的变量,Moments类中含有几何矩、中心距以及归一化的几何矩的数值属性,例如Moments.m00是零阶矩,Moments.m01和Moments.m10是一阶矩。...hu[7]:输出Hu矩的七个值 m:输入的图像矩 hu:输出Hu矩的矩阵 该函数可以根据图像的中心距计算图像的Hu矩。

    1.9K30

    【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt )

    文章目录 一、Proguard 混淆后的报错信息 二、Proguard 混淆映射文件 mapping.txt 更多 ProGuard 混淆配置参考 : https://www.guardsquare.com...-keepattributes SourceFile,LineNumberTable 当代码混淆后 , 如果出现报错信息 , 此时报错信息全部都是被混淆过的信息, 无法从中找出可用的信息 ; 混淆后...报错信息不可读 ; 下面是截取出的混淆后的报错信息 : 2020-11-10 12:01:59.426 28142-28142/?...(Handler.java:30) , 报错的是混淆后的信息 , 可读性很差 ; 二、Proguard 混淆映射文件 mapping.txt ---- 前提 : proguard-rules.pro 混淆配置中配置保留行数...; # 保留行数 -keepattributes SourceFile,LineNumberTable Proguard 混淆后 , 会提供一个 原始代码 与 混淆过的代码 的对应关系文件 mapping.txt

    1.3K00

    android 混淆不起作用,Android代码混淆的写法总结

    大家好,又见面了,我是你们的朋友全栈君。 Apk文件被反编译出来能被获取到里面的代码。对于这种情况,我们可以对项目代码进行混淆,随机生成难理解的类名,方法名,让代码难以阅读,加大功能被盗取的难度。...混淆可以起到压缩Apk,混淆文件,预检,优化的作用。 1....不去忽略非公共的库类 -dontoptimize 不优化输入的类文件 -dontpreverify 不做预校验的操作 -ignorewarnings 忽略警告 -verbose 混淆时是否记录日志 -...class/merging/ 指定混淆是采用的算法 3....保持不被混淆的设置 保持实体类不混淆 -keep class 你的实体类所在的包.** { *; } 保持四大组件,Application,Fragment不混淆 -keep public class

    3.9K30

    代码混淆的原理是什么?常见代码混淆方法介绍

    本文主要介绍了代码混淆的原理、方法、以及常见代码混淆的方式和工具。 一、代码混淆的原理 代码混淆是将计算机程序的代码,转换成功能上等价,但是难于阅读和理解形式的行为。...混淆就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,而混淆后的代码很难被反编译,即使反编译成功也很难得出程序的真正语义,通过进行代码混淆可以有效提升应用被逆向破解的难度...三、常见的代码混淆方式 常见的代码混淆方式包括Java代码混淆、C/C++代码混淆以及h5 脚本混淆等。...混淆的过程中添加的一些字串的保护如下图: ​ 介绍一个c/c++代码混淆工具,Ipa Guard是一款功能强大的ipa混淆工具,不需要ios app源码,直接对ipa文件进行混淆加密。...(3)H5 脚本混淆 H5混淆是指从JS的语法和逻辑上进行混淆。H5脚本混淆很多的IDE环境均可配置,这里我不做详细介绍。

    4K41

    Android 简单的代码混淆

    Android的代码混淆是开发者需要了解的相关知识,它能够防止android应用程序的反编译。...因为android程序多数是java语言开发的,而java代码很容易被反编译,所以为了使android应用程序代码应用一定的安全性,进行android代码的混淆是非常有必要的。...在了解代码混淆之前,先了解android的反编译。进行android的反编译需要借助两个工具dex2jar和jd-gui。 1.代码的反编译 在两个工具准备好之后,将apk文件的直接解压。...用jd-gui打开该文件,即可看到android应用程序的源代码。 ? 2.代码混淆 在android工程中添加proguard.cfg.文件。...对打包的apk进行反编译。 ? 可以看到,代码都已经进行编译过了。未签名的apk包并不能够安装,还需要将apk进行签名。

    1.4K70

    轻松了解模型评价指标

    矩阵的每一行代表预测类中的实例,而每列代表实际类中的实例(反之亦然)。从字面理解:看出系统是否混淆了两个类(即通常将一个类错误标记为另一个类)(多类可以合并为二分类)。...的数量(False Negative=FN):这就是统计学上的第一类错误(Type I Error) ③ 真实值是negative,模型认为是positive的数量(False Positive=FP)...:这就是统计学上的第二类错误(Type II Error) ④ 真实值是negative,模型认为是negative的数量(True Negative=TN) 一级评价指标混淆矩阵图例: ?...一级评价指标混淆矩阵图例.png 二级评价指标: 准确率(Accuracy):ACC 精确率(Precision):PPV 灵敏度(Sensitivity)=召回率(Recall)=命中率=真实阳性率:...混淆矩阵例2.png 该图表示的是模型预测动物的预测数据图。

    1.4K30

    解密混淆的PHP程序

    0x01 背景 团队大佬在做PHP代码审计的时候发现PHP代码是被混淆过的。虽然可以通过自己手动解密可以还原原先的PHP代码,但是混淆过程比较复杂且自己写脚本还原非常麻烦。...所以,我这边通过PHP底层的操作对混淆后的PHP代码进行还原。...0x02 PHP代码混淆原理 PHP代码混淆一般来说有两种方法: 需要PHP扩展 无需PHP扩展 本文我们主要讲解无需PHP扩展的代码混淆的解密。...大多数的无需扩展的php代码混淆原理上都是使用eval进行代码的执行。如果我们能够得到eval函数的参数,即可获得解密后的代码。...不过,一般来说PHP的混淆都会通过多次eval来还原并执行php代码,所以我们可以通过hook PHP的eval函数来打印其参数来解密代码。

    3.7K50

    HarmonyOS 开发实践 —— 基于反混淆工具混淆后的日志定位

    场景描述工程源码的混淆可以降低工程被破解攻击的风险,但会导致无法直接通过Release应用的堆栈信息定位到源码的具体文件和行位置,不易于开发者快速定位解决问题。...,方便开发者进行错误信息定位(注:仅支持API12及以上的工程)。...export导出对象混淆  -enable-export-obfuscation两次运行工程分别点击工程内的Native按钮和ArkTS按钮获取混淆后的报错日志。...so:动态链接库,包含了已编译的可重用代码,可以被程序在运行时动态加载和链接。Name cache:混淆名称映射表,文件中包含混淆前和混淆后的名称。Start Analyze:开始解析。...2.使用hstack命令的方式进行日志反混淆。

    34610

    读懂 Android 中的代码混淆

    在Android开发工作中,我们都或多或少接触过代码混淆。比如我们想要集成某个SDK,往往需要做一些排除混淆的操作。 本文为本人的一些实践总结,介绍一些混淆的知识和注意事项。...什么是混淆 关于混淆维基百科上该词条的解释为 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。...代码混淆影响到的元素有 类名 变量名 方法名 包名 其他元素 混淆的目的 混淆的目的是为了加大反编译的成本,但是并不能彻底防止反编译....因为这两种情况下,混淆可以感知外界对filed的引用,已经在调用出替换成了混淆后的名称。...混淆带来了很多好处,但是也会导致我们收集到的崩溃的stacktrace变得更加难以读懂,好在有补救的措施,这里就介绍一个工具,retrace,用来将混淆后的stacktrace还原成混淆之前的信息. retrace

    1.9K20

    多分类任务的混淆矩阵

    来源: DeepHub IMBA本文约1000字,建议阅读5分钟本文讨论了如何在多分类中使用混淆矩阵评估模型的性能。 什么是混淆矩阵? 它显示了实际值和预测值之间的差异。...输出列中的类别,也称为目标属性。一二分类任务中包含了 2 个类也就是一个 2*2 矩阵,一般情况下介绍混淆矩阵都会以二分类为例。如果有 3 个类呢?那么将得到一个 3*3 矩阵依此类推。...通过上面描述我们知道,混淆矩阵的类将具有相同数量的行和列。...考虑这个混淆矩阵在下图 1 中的数据集的输出列中具有 A、B、C 类。...FP FalsePositive(A):它告诉实际值是负的,在我们的例子中它是 B 类和 C 类,但模型预测它是正的,即 A 类。它是除了 TP 值之外的相应列的值的相加。

    1K40

    哥斯拉Godzilla | 基于tomcat webshell的有效通杀混淆方式&通用的java代码混淆

    PS:对实现原理不感兴趣的同学可跳到结尾看混淆的效果实现,实现过程的代码均在下方贴出 2 思路来源 1. tomcat混淆 本文中的tomcat混淆大部分思路来源自2022年补天白帽大会yzddMr6师傅的议题...代码层的混淆 可以参考的文章很多,都比较常见比如: https://tttang.com/archive/1315 浅谈JSP Webshell进阶免杀中的数字异或混淆 https://blog.csdn.net...编码混淆技术摘要总结 Jdk8+Tomcat8.5下支持900+种编码,可用于混淆webshell的有十余种 可以用编码的别名,达到的编码效果是等效的 tomcat8下,如果有bom头会根据bom头来决定内容的编码...,木马生成与webshell连接测试 编译后的木马生成界面以及能够生成的混淆webshell的功能选项如下: 经测试,混淆后的webshell均可连接成功,部分混淆的效果如下 混淆后的代码能够极大地增加蓝队的解密...无论是tomcat混淆或者是代码层的混淆,都只能增加蓝队的解密/还原代码的成本。tomcat混淆更偏向于代码不可读,代码层混淆更偏向于代码的可读性差。

    1.2K10
    领券