当通过浏览器查看源功能查看源代码时,是否可以从网页的html中隐藏Javascript代码?
我知道可以对代码进行模糊处理,但我更希望它从视图源功能中隐藏.
我最近发现了以下代码:
IntPredicate neg = x -> x <- x;
Run Code Online (Sandbox Code Playgroud)
这是什么,某种反向双lambda?
我有我的类ClassMultiPoint与子类.
public class ClassMultiPoints
{
public String message;
public List<ClassPoints> data;
public class ClassPoints
{
public String id;
public List<ClassPoint> points;
public class ClassPoint
{
public String speed;
public String bearing;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我oPoints将从解析中获取对象的值GSON:
oPoints = gson.fromJson( jsonString, ClassMultiPoints.class);
我试着用oPoints.message.
当我运行我的应用程序没有proguard应用程序运行成功 当我用proguard我的应用程序崩溃运行我的应用程序时
我认为问题是:proguard将'oPoints.message'我的类的属性重命名为short 'a'.
我尝试保持方法和属性的名称是不变的,但proguard重命名为:
proguard.cfg:
-injars bin/classes
-injars libs
-outjars bin/classes-processed.jar
-dontpreverify
-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation* …Run Code Online (Sandbox Code Playgroud) 首先,我不是在寻找奇迹......我知道PHP是如何运作的,并且没有真正的方法可以在不使用加密的情况下从客户端隐藏我的代码.但这需要在运行的服务器上安装扩展的成本.
我正在寻找不同的东西......我不打算加密我的代码甚至混淆它.有许多PHP脚本没有加密/混淆代码,但它们是商业应用程序.例如,vBulletin和/或IP.Board论坛应用程序.
我只是想知道这些人用于他们的应用程序的方法...
我也对任何其他建议持开放态度.
请注意,我是一个人而不是为公司工作.我的产品也非常具体,它不会卖那么多.我只是想让你们知道,我无法向法律专业人士提起诉讼或起诉某人或准备商业执照.我只是在寻找一种简单的方法来保护我的简单产品,如果它确实可能,不知怎的......
当我得到这样的东西
ERROR/AndroidRuntime(18677): Caused by: java.lang.NullPointerException
ERROR/AndroidRuntime(18677): at com.companyname.a.a.a(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
我如何知道问题所在并调试此问题?我只获得了ProGuard的映射输出,并且不知道行号.谢谢.
我已经研究了很多,无论是在SO还是google-ing到处,但我似乎找不到关于用Objective-C编写的iPhone/iPad应用程序的代码混淆的直接答案.
我的问题是这些:
这是一个警告"Hello world"的小javascript:
????=/??´??~???//*´??*/['_'];o=(???)=_=3;c=(???)=(???)-(???);(???)=(???)=(o^_^o)/(o^_^o);(???)={???:'_',????:((????==3)+'_')[???],????:(????+'_')[o^_^o-(???)],????:((???==3)+'_')[???]};(???)[???]=((????==3)+'_')[c^_^o];(???)['c']=((???)+'_')[(???)+(???)-(???)];(???)['o']=((???)+'_')[???];(?o?)=(???)['c']+(???)['o']+(????+'_')[???]+((????==3)+'_')[???]+((???)+'_')[(???)+(???)]+((???==3)+'_')[???]+((???==3)+'_')[(???)-(???)]+(???)['c']+((???)+'_')[(???)+(???)]+(???)['o']+((???==3)+'_')[???];(???)['_']=(o^_^o)[?o?][?o?];(???)=((???==3)+'_')[???]+(???).????+((???)+'_')[(???)+(???)]+((???==3)+'_')[o^_^o-???]+((???==3)+'_')[???]+(????+'_')[???];(???)+=(???);(???)[???]='\\';(???).????=(???+???)[o^_^o-(???)];(o???o)=(????+'_')[c^_^o];(???)[?o?]='\"';(???)['_']((???)['_'](???+(???)[?o?]+(???)[???]+(???)+(???)+(???)+(???)[???]+(???)+((???)+(???))+(???)+(???)[???]+(???)+(???)+((???)+(???))+(???)[???]+(???)+((o^_^o)+(o^_^o))+((o^_^o)-(???))+(???)[???]+(???)+((o^_^o)+(o^_^o))+(???)+(???)[???]+((???)+(???))+(c^_^o)+(???)[???]+(???)+((o^_^o)-(???))+(???)[???]+(???)+(???)+(c^_^o)+(???)[???]+(???)+(???)+((???)+(???))+(???)[???]+(???)+((???)+(???))+(???)+(???)[???]+(???)+((???)+(???))+(???)+(???)[???]+(???)+((???)+(???))+((???)+(o^_^o))+(???)[???]+(???)+(c^_^o)+(???)[???]+(???)+((o^_^o)-(???))+((???)+(o^_^o))+(???)[???]+(???)+((???)+(???))+((???)+(o^_^o))+(???)[???]+(???)+((o^_^o)+(o^_^o))+((o^_^o)-(???))+(???)[???]+(???)+((???)+(???))+(???)+(???)[???]+(???)+(???)+(???)+(???)[???]+(???)+((o^_^o)-(???))+(???)[???]+((???)+(???))+(???)+(???)[?o?])(???))('_');
Run Code Online (Sandbox Code Playgroud)
好看的版本:
???? = /??´??~???//*´??*/['_'];
o = (???) = _ = 3;
c = (???) = (???) - (???);
(???) = (???) = (o^_^o)/(o^_^o);
(???) = {
???: '_',
????: ((????==3)+'_')[???],
????: (????+'_')[o^_^o-(???)],
????: ((???==3)+'_')[???]
};
(???)[???] = ((????==3)+'_')[c^_^o];
(???)['c'] = ((???)+'_')[(???)+(???)-(???)];
(???)['o'] = ((???)+'_')[???];
(?o?)=(???)['c'] + (???)['o'] + (???? + '_')[???] + ((????==3) + '_')[???] + ((???) + '_')[(???) + (???)] + ((???==3) + '_')[???] + ((???==3) + '_')[(???) - (???)] + (???)['c'] + ((???) + '_')[(???) …Run Code Online (Sandbox Code Playgroud) 有时,从二进制(可执行)文件中隐藏字符串很有用.例如,从二进制文件中隐藏加密密钥是有意义的.
当我说"隐藏"时,我的意思是在编译的二进制文件中更难找到字符串.
例如,这段代码:
const char* encryptionKey = "My strong encryption key";
// Using the key
Run Code Online (Sandbox Code Playgroud)
编译后生成一个可执行文件,其数据部分中包含以下内容:
4D 79 20 73 74 72 6F 6E-67 20 65 6E 63 72 79 70 |My strong encryp|
74 69 6F 6E 20 6B 65 79 |tion key |
Run Code Online (Sandbox Code Playgroud)
您可以看到我们的秘密字符串可以轻松找到和/或修改.
我可以隐藏字符串......
char encryptionKey[30];
int n = 0;
encryptionKey[n++] = 'M';
encryptionKey[n++] = 'y';
encryptionKey[n++] = ' ';
encryptionKey[n++] = 's';
encryptionKey[n++] = 't';
encryptionKey[n++] = 'r';
encryptionKey[n++] = 'o';
encryptionKey[n++] = 'n';
encryptionKey[n++] = …Run Code Online (Sandbox Code Playgroud) 什么: NodeJS应用程序可以作为二进制文件分发吗?即.你通过V8将.js应用程序编译成其原生二进制文件,并将二进制文件分发给客户端?(如果您对NodeJS服务器有完全访问权限)...或者正在缩小代码,您可以做什么?
原因:我们在NodeJS中为客户端构建服务器端应用程序,这些应用程序通常托管在客户端的服务器上.分发源代码意味着客户可以轻松窃取我们的解决方案并停止支付许可费用.这使我们无需了解即可轻松进行逆向工程或重复使用我们的应用程序.
我打算发布一个价格低廉的小型实用程序.由于这比业务更重要,我计划使用随VS2008一起提供的Dotfuscator Community Edition.
有多好?
我还可以使用"足够好的混淆器"的定义 - Dotfuscator Community Edition缺少哪些功能以使其足够好.
编辑:
我检查了商业混淆器数量的定价,它们花了很多钱.这值得么?
商业版本是否更好地防止逆向工程?
我并不十分害怕我的应用程序被破解(如果应用程序非常糟糕,没有人有兴趣破解它,那将会令人失望).它无论如何都没有受到严密保护,而不是在代码中的几个地方进行过于复杂的串行密钥和许可证检查.它只是让我感到困惑,没有混淆,有人可以轻松获取源代码,重新命名并将其作为自己出售.
这会发生很多吗?
编辑2:
有人可以推荐商业混淆器.我发现很多,它们都很贵,有些甚至没有列在网站上的价格.
功能明智,所有产品似乎或多或少相似.
混淆器应该具有的最小功能集是什么?
obfuscation ×10
javascript ×3
android ×2
java ×2
proguard ×2
.net ×1
browser ×1
c++ ×1
debugging ×1
deployment ×1
dotfuscator ×1
encryption ×1
hide ×1
ipad ×1
iphone ×1
java-8 ×1
lambda ×1
node.js ×1
php ×1
piracy ×1
security ×1
store ×1
syntax ×1