标签: obfuscation

Android 版本发布警告消息:此 App Bundle 包含可能被混淆的 Java/Kotlin 代码

我收到此警告消息:

此 App Bundle 包含可能被混淆的 Java/Kotlin 代码。我们建议您上传反混淆文件,以便更轻松地分析和调试您的崩溃和 ANR

这是什么意思?什么是最短的解决方案?

obfuscation android release google-play

40
推荐指数
4
解决办法
2万
查看次数

如何在JavaScript中没有字符或数字说"爱"?

灵感来自Ryan Barnett的BlackHat DC 2011 PPT,特别是下面的代码:

($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+ ($$=($_=!''+$)[_/_]+$_[+$])])()[__[_/_]+__ [_+~$]+$_[_]+$$](_/_)
Run Code Online (Sandbox Code Playgroud)

昨天是恋人的特殊日子,所以我试着写类似的东西.这基本上警告"我爱你"没有任何字符或数字.

例如,"I"可以从中获得 ((_=-~[])/--_+[])[_]

我们有"[object Object]","true","false","NaN","Infinity"使用,我无法弄清楚这种方式得到"v".

我试着想一想String.fromCharCode(),(Ryan已经window为我们提供了参考,所以理论上我们可以window["String"]["fromCharCode"](118))但是我想念这里的"S"和"C"字符.window["eval"](...)再想想,我没有"v".

只是尝试解释一下,[]是空的,当应用+/-/~操作时,它转换为数字0,并~[]给出1,1/0给出Infinitey.然后说到1/0 + [],他们都将转换成字符串为补充,这给"Infinity""Infinity"[_] == "Infinity"[0] == "I"...

Ryan的原始代码更复杂,它使用了更多,包括范围,特殊返回值等(这是另一个故事)

这似乎不是一件好事,但只是非常有趣.

在Meze的帮助下,我能够为Firefox生成这个:

($=($=[$=[]][(__=!$+$)[_=-~-~-~$]+(_$={}+$)[_/_]+ ($$=($_=!''+$)[_/_]+$_[+$])])())[__[_/_]+__ [_+~$]+$_[_]+$$]((_$_=(__$=-~[])/--__$+[])[__$]+_$[_+++_]+__[__$=-~-~[]]+_$[-~[]]+($[_$[$__=_+_]+_$[++$__]+_$[++$__]+_$[++$__]+_$[++$__]+_$[++$__]]+[])[
$__+$__+--_]+__[++_]+_$[$__=_+--_]+_$_[_+++_]+_$[_/_]+$_[__$]);
Run Code Online (Sandbox Code Playgroud)

它基本上是alert("I love you"),非常感谢!如果我昨天得到了帮助,我还没有发布这个:(

JavaScript很漂亮,有些可供参考:

$_ = "true"
__ = "false"
_$ = "[object Object]"
$$ = "rt"
_$_ = "Infinity"
_ = …
Run Code Online (Sandbox Code Playgroud)

javascript obfuscation

39
推荐指数
3
解决办法
4864
查看次数

从html源中删除所有换行符

我知道混淆是一个坏主意.但我希望我的所有html代码都有一个很长的单行.所有的html标签都是通过PHP生成的,所以我认为它是可能的.我知道\n\r从正则表达式替换,但不知道如何做到这一点.如果我不清楚这里是一个例子

$output = '<p>
              <div class="title">Hello</div>
           </p>';
echo $output;
Run Code Online (Sandbox Code Playgroud)

要在源查看器中查看为 <p><div class="title">Hello</div></p>

html php obfuscation whitespace line-breaks

39
推荐指数
4
解决办法
9万
查看次数

Python代码混淆

你知道任何可以帮助我混淆python代码的工具吗?

python obfuscation

38
推荐指数
4
解决办法
4万
查看次数

Android Proguard Javascript界面​​失败

我在我的项目中使用了这里描述的一段代码

http://lexandera.com/2009/01/extracting-html-from-a-webview/

我创建.apk文件,将其安装在我的设备上,它正常工作.如果我尝试使用proguard的混淆项目失败,则不会到达MyJavaScriptInterface的方法showHTML(String html).

关于那个我的proguard配置

-keep public class com.mypackage.MyClass.MyJavaScriptInterface
-keep public class * implements com.mypackage.MyClass.MyJavaScriptInterface
-keepclassmembers class * implements com.mypackage.MyClass.MyJavaScriptInterface { 
    <methods>; 
}
Run Code Online (Sandbox Code Playgroud)

根据这个答案Android proguard Javascript Interface问题.

解决了.

正如Eric建议的那样,我改变了这样的Proguard配置文件:

-keep public class com.mypackage.MyClass$MyJavaScriptInterface
-keep public class * implements com.mypackage.MyClass$MyJavaScriptInterface
-keepclassmembers class com.mypackage.MyClass$MyJavaScriptInterface { 
    <methods>; 
}
Run Code Online (Sandbox Code Playgroud)

现在我的项目完美无缺.

对于API 17+,您还需要保留@JavascriptInterface注释:

-keepattributes JavascriptInterface
Run Code Online (Sandbox Code Playgroud)

http://developer.android.com/reference/android/webkit/JavascriptInterface.html

java obfuscation android proguard

38
推荐指数
1
解决办法
1万
查看次数

Android Studio中的混淆

是否有与Android Studio一起使用的混淆工具?声明 IntelliGuard插件 Studio 支持,但由于缺少AntSupport插件,它实际上不起作用.我无法在存储库中找到一个.有任何想法吗?

PS Android Studio构建过程基于Gradle,所以我不希望看到Ant支持.也许我错了.

obfuscation android android-studio

38
推荐指数
3
解决办法
5万
查看次数

你应该混淆商业.Net应用程序吗?

我正在考虑混淆商业.Net应用程序.但是选择,购买和使用这样的工具真的值得吗?混淆的二进制文件是否真的免于逆向工程?

.net c# obfuscation

37
推荐指数
5
解决办法
2万
查看次数

Android ProGuard - 只是混淆

是否可以使用ProGuard进行混淆.我不希望ProGuard从我的项目中删除任何类.我打算使用ProGuard仅用于混淆,以防止逆向工程.

java obfuscation android proguard

35
推荐指数
1
解决办法
1万
查看次数

在JavaScript中对字符串进行模糊处理和反混淆的最简单方法

我正在寻找一种在JavaScript中混淆和反混淆字符串的方法; 当安全性不是问题时,我的意思是加密和解密.理想的情况是一些原产于JS(像base64_encode()base64_decode()在PHP)到"把字符串转换成别的,然后再返回的东西",而无需编写一个函数.

欢迎任何建议!

javascript encryption obfuscation

35
推荐指数
3
解决办法
3万
查看次数

Android中的Proguard和反射

我刚刚使用了proguard,但我试图通过反射实例化的类不起作用.

我有一个界面

Algorithm
Run Code Online (Sandbox Code Playgroud)

我通过这样的课程

AlgorithmFactory.SomeClassThatExtendsAlgorithmImpl.class
Run Code Online (Sandbox Code Playgroud)

该类实例化如下

public ArrayList<Algorithm> getAlgorithms(Context cnx) {
ArrayList<Algorithm> list = new ArrayList<Algorithm>();

for(Class<? extends Algorithm> alg: algorithms) {

    try {
        Constructor<? extends Algorithm> c = alg.getConstructor(Context.class);
        list.add(c.newInstance(cnx));
    } catch (IllegalArgumentException e) {
        Log.e(TAG, "IllegalArgumentException", e);
        throw new IllegalStateException("There was a problem creating the Algorithm class");
    } catch (InvocationTargetException e) {
        Log.e(TAG, "InvocationTargetException", e);
        throw new IllegalStateException("There was a problem creating the Algorithm class");
    } catch (InstantiationException e) {
        Log.e(TAG, "InstantiationException", e);
        throw new IllegalStateException("There was a …
Run Code Online (Sandbox Code Playgroud)

java reflection obfuscation android proguard

34
推荐指数
2
解决办法
2万
查看次数