Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


4 questions online user: 16

0
votes
answers
19 views
+10

Obfuscated C Code Contest 2006. Please explain sykes2.c

How does this C program work?

main(_){_^448&&main(-~_);putchar(--_%64?32|-~7[__TIME__-_/8%8][">'txiZ^(~z?"-48]>>";;;====~$::199"[_*2&8|_/64]/(_&2?1:8)%8&1:10);}

It compiles as it is (tested on gcc 4.6.3). It prints the time when compiled. On my system:

    !!  !!!!!!              !!  !!!!!!              !!  !!!!!! 
    !!  !!  !!              !!      !!              !!  !!  !! 
    !!  !!  !!              !!      !!              !!  !!  !! 
    !!  !!!!!!    !!        !!      !!    !!        !!  !!!!!! 
    !!      !!              !!      !!              !!  !!  !! 
    !!      !!              !!      !!              !!  !!  !! 
    !!  !!!!!!              !!      !!              !!  !!!!!!

Source: sykes2 - A clock in one line, sykes2 author hints

Some hints: No compile warnings per default. Compiled with -Wall, the following warnings are emitted:

sykes2.c:1:1: warning: return type defaults to ‘int’ [-Wreturn-type]
sykes2.c: In function ‘main’:
sykes2.c:1:14: warning: value computed is not used [-Wunused-value]
sykes2.c:1:1: warning: implicit declaration of function ‘putchar’ [-Wimplicit-function-declaration]
sykes2.c:1:1: warning: suggest parentheses around arithmetic in operand of ‘|’ [-Wparentheses]
sykes2.c:1:1: warning: suggest parentheses around arithmetic in operand of ‘|’ [-Wparentheses]
sykes2.c:1:1: warning: control reaches end of non-void function [-Wreturn-type]
27
votes
answers
20 views
+10

How can I obfuscate (protect) JavaScript? [closed]

I want to make a JavaScript application that's not open source, and thus I wish to learn how to can obfuscate my JS code? Is this possible?

沙发
+40

您是否嘗試過 Bananascript 它產生高度壓縮且完全不可讀的代碼。

它很好地壓縮代碼,但只是將最後一行中的eval()更改為console.log(),你的控制台將吐出整個東西 - LobsterMan 2013年3月20日18:48

板凳
+40

我正在使用Closure-Compiler實用程序進行java腳本混淆。它縮小了代碼並具有更多混淆選項。此實用程序位於以下網址的Google代碼中:
關閉工具 <但是現在有一天我聽到很多UglifyJS。
您可以在Closure Compiler和UglifyJS之間找到各種比較,其中Uglify似乎是贏家。
UglifyJS:Node.js的一個快速新的JavaScript壓縮器,它與閉包相提並論

很快我就有機會獲得UglifyJS。

地板
+30

我認為有些企業(例如:JackBe)將加密的JavaScript代碼放在* .gif文件而不是JS文件中,作為混淆的額外措施。

4楼
+30

作為JavaScript / HTML / CSS混淆器/壓縮器,您還可以嘗試 Patu Digua

5楼
+30

嘗試使用此工具 Javascript Obfuscator

我在HTML5遊戲中使用它不僅它將它的大小從950KB減少到150但也使源代碼不可讀的閉包編譯器和縮放器是可逆的我個人不知道如何扭轉這種混淆。

6楼
+30

您一定要考慮查看 Obfuscriptor

我超越了我們從其他工具中看到的典型Javascript縮小技巧,例如 YUI Compressor Google Closure

混淆的代碼看起來更像加密。不像我以前見過的任何東西。

謝謝你的鏈接!剛剛嘗試過obfuscriptor和代碼加密(沒有密鑰???)。並將我的腳本從211壓縮到36 Kb! - Arturo 3月25日在21:41

請注意,Obfuscriptor會提醒您它不能與IE一起使用。這對某些人來說是一個交易破壞者。 - Alan McBee - MSFT於2013年8月19日22:42

答案上的鏈接不再指向該工具。我找不到另一個實時參考。 - buzoherbert 2016年2月1日9:47

第一個環節已經死了。“Obfuscriptor” - Alp Altunel於2017年5月17日14:46

7楼
+30

這個縮小但不會混淆。如果您不想使用命令行Java,可以將javascript粘貼到webform中。

注意:鏈接現在已經死了。 - Scott C Wilson 2013年4月21日19:12

@ScottWilson謝謝,更新了它 - Chris S於2013年4月22日11:49

8楼
+20

如果您使用JavaScript庫,請考慮使用Closure Compiler的高級模式編譯兼容(經過微小修改)的Dojo Toolkit。

Dojo - 與閉包編譯器兼容的唯一JavaScript庫

代碼使用Closure Advanced模式編譯幾乎不可能進行逆向工程,甚至是通過美化器,因為整個代碼庫(包括庫)被混淆了。它平均也小25%。

僅僅縮小的JavaScript代碼(YUI Compressor,Uglify等)在通過美化器後很容易進行逆向工程。

VanillaJS是常規Javascript。那是個笑話。 - 尼爾森2013年12月6日23:54

vanilla-js.com(下載庫,勾選所有選項並查看源代碼以了解它是如何完成的) - Qantas 94 Heavy Dec 6 '13 at 23:55

像香草冰淇淋基本上是平原,很多俚語中的“香草”意味著“平淡或無聊” - TecBrat於2013年12月6日23:55

“Final size: 0 bytes uncompressed, 25 bytes gzipped.” Love it :O) - cronvel Jul 14 '15 at 11:11

真正令人沮喪的是,作為VanillaJS出現在工作規範上 - 悲慘的是,很少有招聘人員知道他們招聘的角色。 - Phil Lello 2016年2月5日9:45

9楼
+20

我過去曾經使用過它,它做得很好。它不是免費的,但你絕對應該看看。
JavaScript Obfuscator&amp;
編碼器

0
votes
answers
34 views
+10

Codename One - rim.obfuscation生成提示

1

關於混淆,「rim.obfuscation」的含義是什麼?我沒有在互聯網上找到什麼是「rimc編譯器」。Codename One - rim.obfuscation生成提示

沙发
0
1

這是一個與RIM(黑莓)支持相關的遺留構建提示。由於該支持已被棄用,我們刪除了一些文檔。

我們在偏好設置中的舊插件UI仍然具有UI,並自動添加這些提示。我們希望刪除NetBeans/Eclipse上的UI,以便只保留Codename One Settings,但刪除代碼有時與添加代碼一樣困難。

0
votes
answers
19 views
+10

哪個依賴關係應該不會與proguard混淆?

0

我進口在我的Android項目中的這些依賴關係:哪個依賴關係應該不會與proguard混淆?

dependencies { 
compile fileTree(include: ['*.jar'], dir: 'libs') 
compile 'com.android.support:appcompat-v7:26.1.0' 
compile 'com.android.support:design:26.1.0' 
compile 'com.google.code.gson:gson:2.8.0' 

compile project(':openCVLibrary330') 
compile 'de.hdodenhof:circleimageview:2.2.0' 

compile 'com.google.android.gms:play-services-ads:11.6.0' 

compile 'com.android.support:recyclerview-v7:26.1.0' 
compile 'com.android.support:cardview-v7:26.1.0' 

}

現在我的問題是:哪些依賴我不應該使用ProGuard混淆,以及如何達到這個結果?

謝謝大家!

沙发
0
0

一般來說,您根本不必擔心這一點。依賴關係隨自己的Proguard文件一起提供,該文件在構建應用程序時與您自己合併。 Google的圖書館肯定遵循這一規則。唯一不用擔心的是當你使用一些設計不好的第三方庫時。在這種情況下,您必須檢查庫是否使用反射來引用任何方法或類,在這種情況下,您必須排除這些方法或類被混淆。

+0

嗯,我明白了。例如,在我的項目中,我使用了第三方庫,如openCV和circleImageView。如果我理解正確,我應該在proguard-rules.pro文件中指定不要通過編寫'-keep class org.opencv。*'來混淆這兩個依賴項?這是正確的語法嗎?非常感謝。 –

+0

是的,那將是正確的語法。 –