草庐IT

iOS OpenGL ES 2.0 VBO 混淆

全部标签

java - 我如何使用混淆器?

我正在尝试学习如何使用ProGuard,这并不像我想象的那么容易。一开始我找了一个简单的Java代码来试试,一个简单的twoclassSwingcalculator.可以通过该链接找到代码,但我发现它太冗长,无法在此处发布。无论如何,它是一个普通应用程序,入口点在Calc.main()上,没有包。然后我编译了两个源:$javac*.java并创建了.jar文件(因为ProGuard似乎只适用于jars):$jarcvefCalccalc.jar*.classaddedmanifestadding:Calc.class(in=3869)(out=2126)(deflated45%)add

JS逆向---令人抓狂的JavaScript混淆技术

文章目录前言一.JS简介二.OB混淆1.OB混淆特征2.OB混淆介绍3.OB混淆JS模块1.代码压缩2.变量名混淆3字符串混淆三.实战案例分析1.混淆专题逆向2.octet-stream类型混淆破解前言JavaScript压缩、混淆和加密技术对于网页来说,其逻辑是依赖于JavaScript来实现的,JavaScript有如下特点:JavaScript代码运行于客户端,也就是它必须要在用户浏览器端加载并运行。JavaScript代码是公开透明的,也就是说浏览器可以直接获取到正在运行的JavaScript的源码。声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏

Java 枚举与创建位掩码和检查权限混淆

我想将这个c#权限模块移植到java,但是当我无法将数值保存在数据库中然后将其转换为枚举表示时,我很困惑如何才能做到这一点。在C#中,我创建了一个这样的枚举:publicenumArticlePermission{CanRead=1,CanWrite=2,CanDelete=4,CanMove=16}然后我可以创建一个权限集,例如:ArticlePermissionjohnsArticlePermission=ArticlePermission.CanRead|ArticlePermission.CanMove;然后我使用以下方法将其保存到数据库中:(int)johnsArticleP

Java 8 编译器与重载方法混淆

在将应用程序升级到Java8时,我遇到了一个关于googleguava的奇怪问题newArrayList在几个地方。看看这个例子:importcom.google.common.collect.UnmodifiableIterator;importjavax.naming.NamingException;importjavax.naming.directory.Attribute;importjavax.naming.directory.BasicAttribute;importjava.util.ArrayList;importstaticcom.google.common.coll

java - 编译和解释之间的技术混淆

我看过很多关于“解释”和“编译”的定义和陈述。但我仍然很困惑。从技术上讲,解释和编译之间到底有什么区别?让我详细说明(请纠正我可能有的任何错误概念):在Java中,源代码被“编译”成字节码,然后“解释”和/或“即时编译”成机器码。但是即时编译和解释之间有什么区别呢?我的意思是,最终,就我的猜测而言,主机的CPU将只运行机器代码。因此,在解释中,指令也被转换成CPU可以理解的机器码。那么,我们在哪里划定即时编译和解释之间的界限呢?附言这是我的构想。这可能是完全错误的。在那种情况下,请原谅我的愚蠢并纠正我。谢谢。 最佳答案 1.坦率地说

java - 为什么proguard不混淆方法主体?

我正在使用ProGuard混淆我的.jar程序。一切正常,除了ProGuard不会混淆方法主体中的局部变量。这是一个例子:原始:混淆:以黄色突出显示的变量名称应该被混淆,但不是。我如何也对它们进行混淆(将它们重命名为a,b,c等?)这是我的ProGuard配置:http://pastebin.com/sb3DMRcC(以上方法不是来自排除的类之一)。 最佳答案 Whyproguarddoesnotobfuscatemethodbody?因为它不能。方法参数和局部变量的名称在编译时根本不会存储。您看到的名称是由反编译器生成的。对于已编

Java运算符优先混淆&&和++

&&是从左到右计算的短路运算符,因此如果&&运算符左侧的操作数被计算为false,则计算应该不继续。但是我希望++应该在&&之前被评估,因为它有higherprecedence,和(来自链接):Operatorswithhigherprecedenceareevaluatedbeforeoperatorswithrelativelylowerprecedence.既然如此,为什么count在这段代码的第三行不递增?intmask=2;intcount=0;if(!(mask>1)&&++count>1){mask+=100;}System.out.println(mask+""+cou

java - Vararg 方法覆盖/重载混淆

程序一classB{publicvoidm1(intx){System.out.println("Superclass");}}classAextendsB{publicvoidm1(int...x){System.out.println("Subclass");}}classtest1{publicstaticvoidmain(Stringargs[]){Bb1=newB();b1.m1(10);Aa=newA();a.m1(10);Bb2=newA();b2.m1(10);}}输出:super类父类(superclass)(无法理解为什么父类(superclass)?!)父类(su

java - 使用 ProGuard 混淆时暴露内部类

我正在使用Ant任务使用ProGuard混淆一个库。当它们具有特定的注释(@ApiAll)时,我将保留特定的类名称及其方法名称,并且我要求保留InnerClasses属性:如果我检查映射输出文件,我可以看到我的内部类有注释,它的成员保持他们的名字未被混淆。但是,当我查看生成的jar文件时,我找不到该类。我错过了什么吗?为什么映射告诉我它保留了这个类,而实际上却没有? 最佳答案 您需要使用正确的表示法指定要保留内部类。用混淆器的说法,这意味着-keepclassmy.outer.Class$MyInnerClass。这里的关键是使用美

java - 关于 '&&' 和 '||' 优先级的混淆示例

我正在测试&&之间的优先级和||我有一个令人困惑的例子。在Java中,&&运算符优先级高于运算符||.所以如果我们有这3个表达式://expr1=true,expr2=false;expr3=false;if(expr1||expr2&&expr3);它应该被评估为:if(expr1||(expr2&&expr3));所以expr2&&expr3应该在expr1之前评估.然而,这个例子:inta1=10;inta2=20;System.out.println(a1a2&&++a2输出:true1020这证明只有a1被评估。您能解释一下为什么会这样吗? 最佳答