反編譯商用
Ⅰ 胡曉波男神體字體使用范圍
永久免費商業使用
2019年12月23日,在聖誕節前夕,站酷人氣設計師胡曉波在龐門正道公眾號上一口氣發布了三款可免費商用的中文字體。這三款字體分別是胡曉波真帥體、胡曉波騷包體、胡曉波男神體,我們來認真看看這三款字,命名非常騷氣,完全符合胡曉波的性格。可以連起來看,一句話說完三個字體:一個騷包的真帥男神。
這三款字體,一共動用了胡曉波工作室7位同事,前後做了1年。人多力量大,就如龐門正道輕松體,80位同學參與,2個月就搞定,但是人少的話,就靠發工資了。這三款字體成本大概在人民幣60萬左右,所以說啊,所有的好東西,都是錢堆出來。
胡曉波男神體的字形設計陽剛中又帶有柔和的轉角,橫豎筆畫對比強烈,提筆走向規律,角度統一,字體邊緣整齊,特別適合用於帶有剛性的海報設計和標題設計,例如科技、手機、汽車等海報設計。
字體授權
本次發行的3套字型檔胡曉波真帥體、胡曉波騷包體、胡曉波男神體,已在國家版權局登記認證。允許任何個人和企業免費使用,包括商用用途。但不得單獨或者附帶地以出售、出租、出借等方式向公眾發行以獲取利益。同時不得對本字型檔軟體進行修改、仿製、反編譯、轉換、拆分。重點再強調三遍,本次發布的三款字體,永久免費商業使用!永久免費商業使用!永久免費商業使用!
Ⅱ 如何保護java程序 防止Java反編譯
Java是一種跨平台的、解釋型語言。Java 源代碼編譯中間「位元組碼」存儲於class文件中。Class文件是一種位元組碼形式的中間代碼,該位元組碼中包括了很多源代碼的信息,例如變數名、方法名等。因此,Java中間代碼的反編譯就變得非常容易。目前市場上有許多免費的、商用的反編譯軟體,都能夠生成高質量的反編譯後的源代碼。所以,對開發人員來說,如何保護Java程序就變成了一個非常重要的挑戰。本文首先討論了保護Java程序的基本方法,然後對代碼混淆問題進行深入研究,最後結合一個實際的應用程序,分析如何在實踐中保護Java程序。 反編譯成為保護Java程序的最大挑戰 通常C、C++等編程語言開發的程序都被編譯成目標代碼,這些目標代碼都是本機器的二進制可執行代碼。通常所有的源文件被編譯、鏈接成一個可執行文件。在這些可執行文件中,編譯器刪除了程序中的變數名稱、方法名稱等信息,這些信息往往是由內存地址表示,例如如果需要使用一個變數,往往是通過這個變數的地址來訪問的。因此,反編譯這些本地的目標代碼就是非常困難的。 Java語言的出現,使得反編譯變得非常容易而有效。原因如下:1.由於跨平台的需求,Java的指令集比較簡單而通用,較容易得出程序的語義信息;2.Java編譯器將每一個類編譯成一個單獨的文件,這也簡化了反編譯的工作;3.Java 的Class文件中,仍然保留所有的方法名稱、變數名稱,並且通過這些名稱來訪問變數和方法,這些符號往往帶有許多語義信息。由於Java程序自身的特點,對於不經過處理的Java程序反編譯的效果非常好。 目前,市場上有許多Java的反編譯工具,有免費的,也有商業使用的,還有的是開放源代碼的。這些工具的反編譯速度和效果都非常不錯。好的反編譯軟體,能夠反編譯出非常接近源代碼的程序。因此,通過反編譯器,黑客能夠對這些程序進行更改,或者復用其中的程序。因此,如何保護Java程序不被反編譯,是非常重要的一個問題。 常用的保護技術 由於Java位元組碼的抽象級別較高,因此它們較容易被反編譯。本節介紹了幾種常用的方法,用於保護Java位元組碼不被反編譯。通常,這些方法不能夠絕對防止程序被反編譯,而是加大反編譯的難度而已,因為這些方法都有自己的使用環境和弱點。 隔離Java程序 最簡單的方法就是讓用戶不能夠訪問到Java Class程序,這種方法是最根本的方法,具體實現有多種方式。例如,開發人員可以將關鍵的Java Class放在伺服器端,客戶端通過訪問伺服器的相關介面來獲得服務,而不是直接訪問Class文件。這樣黑客就沒有辦法反編譯Class文件。目前,通過介面提供服務的標准和協議也越來越多,例如 HTTP、Web Service、RPC等。但是有很多應用都不適合這種保護方式,例如對於單機運行的程序就無法隔離Java程序。這種保護方式見圖1所示。 圖1隔離Java程序示意圖 對Class文件進行加密 為了防止Class文件被直接反編譯,許多開發人員將一些關鍵的Class文件進行加密,例如對注冊碼、序列號管理相關的類等。在使用這些被加密的類之前,程序首先需要對這些類進行解密,而後再將這些類裝載到JVM當中。這些類的解密可以由硬體完成,也可以使用軟體完成。 在實現時,開發人員往往通過自定義ClassLoader類來完成加密類的裝載(注意由於安全性的原因,Applet不能夠支持自定義的ClassLoader)。自定義的ClassLoader首先找到加密的類,而後進行解密,最後將解密後的類裝載到JVM當中。在這種保護方式中,自定義的ClassLoader是非常關鍵的類。由於它本身不是被加密的,因此它可能成為黑客最先攻擊的目標。如果相關的解密密鑰和演算法被攻克,那麼被加密的類也很容易被解密。這種保護方式示意圖見圖2。 圖2 對Class文件進行加密示意圖 轉換成本地代碼 將程序轉換成本地代碼也是一種防止反編譯的有效方法。因為本地代碼往往難以被反編譯。開發人員可以選擇將整個應用程序轉換成本地代碼,也可以選擇關鍵模塊轉換。如果僅僅轉換關鍵部分模塊,Java程序在使用這些模塊時,需要使用JNI技術進行調用。 當然,在使用這種技術保護Java程序的同時,也犧牲了Java的跨平台特性。對於不同的平台,我們需要維護不同版本的本地代碼,這將加重軟體支持和維護的工作。不過對於一些關鍵的模塊,有時這種方案往往是必要的。 為了保證這些本地代碼不被修改和替代,通常需要對這些代碼進行數字簽名。在使用這些本地代碼之前,往往需要對這些本地代碼進行認證,確保這些代碼沒有被黑客更改。如果簽名檢查通過,則調用相關JNI方法。這種保護方式示意圖見圖3。 代碼混淆
圖3 轉換成本地代碼示意圖 代碼混淆是對Class文件進行重新組織和處理,使得處理後的代碼與處理前代碼完成相同的功能(語義)。但是混淆後的代碼很難被反編譯,即反編譯後得出的代碼是非常難懂、晦澀的,因此反編譯人員很難得出程序的真正語義。從理論上來說,黑客如果有足夠的時間,被混淆的代碼仍然可能被破解,甚至目前有些人正在研製反混淆的工具。但是從實際情況來看,由於混淆技術的多元化發展,混淆理論的成熟,經過混淆的Java代碼還是能夠很好地防止反編譯。下面我們會詳細介紹混淆技術,因為混淆是一種保護Java程序的重要技術。圖4是代碼混淆的示意圖。
圖4 代碼混淆示意圖 幾種技術的總結 以上幾種技術都有不同的應用環境,各自都有自己的弱點,表1是相關特點的比較。 混淆技術介紹 表1 不同保護技術比較表
到目前為止,對於Java程序的保護,混淆技術還是最基本的保護方法。Java混淆工具也非常多,包括商業的、免費的、開放源代碼的。Sun公司也提供了自己的混淆工具。它們大多都是對Class文件進行混淆處理,也有少量工具首先對源代碼進行處理,然後再對Class進行處理,這樣加大了混淆處理的力度。目前,商業上比較成功的混淆工具包括JProof公司的1stBarrier系列、Eastridge公司的JShrink和4thpass.com的SourceGuard等。主要的混淆技術按照混淆目標可以進行如下分類,它們分別為符號混淆(Lexical Obfuscation)、數據混淆(Data Obfuscation)、控制混淆(Control Obfuscation)、預防性混淆(Prevent Transformation)。 符號混淆 在Class中存在許多與程序執行本身無關的信息,例如方法名稱、變數名稱,這些符號的名稱往往帶有一定的含義。例如某個方法名為getKeyLength(),那麼這個方法很可能就是用來返回Key的長度。符號混淆就是將這些信息打亂,把這些信息變成無任何意義的表示,例如將所有的變數從vairant_001開始編號;對於所有的方法從method_001開始編號。這將對反編譯帶來一定的困難。對於私有函數、局部變數,通常可以改變它們的符號,而不影響程序的運行。但是對於一些介面名稱、公有函數、成員變數,如果有其它外部模塊需要引用這些符號,我們往往需要保留這些名稱,否則外部模塊找不到這些名稱的方法和變數。因此,多數的混淆工具對於符號混淆,都提供了豐富的選項,讓用戶選擇是否、如何進行符號混淆。 數據混淆 圖5 改變數據訪問 數據混淆是對程序使用的數據進行混淆。混淆的方法也有多種,主要可以分為改變數據存儲及編碼(Store and Encode Transform)、改變數據訪問(Access Transform)。 改變數據存儲和編碼可以打亂程序使用的數據存儲方式。例如將一個有10個成員的數組,拆開為10個變數,並且打亂這些變數的名字;將一個兩維數組轉化為一個一維數組等。對於一些復雜的數據結構,我們將打亂它的數據結構,例如用多個類代替一個復雜的類等。 另外一種方式是改變數據訪問。例如訪問數組的下標時,我們可以進行一定的計算,圖5就是一個例子。 在實踐混淆處理中,這兩種方法通常是綜合使用的,在打亂數據存儲的同時,也打亂數據訪問的方式。經過對數據混淆,程序的語義變得復雜了,這樣增大了反編譯的難度。 控制混淆 控制混淆就是對程序的控制流進行混淆,使得程序的控制流更加難以反編譯,通常控制流的改變需要增加一些額外的計算和控制流,因此在性能上會給程序帶來一定的負面影響。有時,需要在程序的性能和混淆程度之間進行權衡。控制混淆的技術最為復雜,技巧也最多。這些技術可以分為如下幾類: 增加混淆控制 通過增加額外的、復雜的控制流,可以將程序原來的語義隱藏起來。例如,對於按次序執行的兩個語句A、B,我們可以增加一個控制條件,以決定B的執行。通過這種方式加大反匯編的難度。但是所有的干擾控制都不應該影響B的執行。圖6就給出三種方式,為這個例子增加混淆控制。 圖6 增加混淆控制的三種方式 控制流重組 重組控制流也是重要的混淆方法。例如,程序調用一個方法,在混淆後,可以將該方法代碼嵌入到調用程序當中。反過來,程序中的一段代碼也可以轉變為一個函數調用。另外,對於一個循環的控制流,為可以拆分多個循環的控制流,或者將循環轉化成一個遞歸過程。這種方法最為復雜,研究的人員也非常多。 預防性混淆 這種混淆通常是針對一些專用的反編譯器而設計的,一般來說,這些技術利用反編譯器的弱點或者Bug來設計混淆方案。例如,有些反編譯器對於Return後面的指令不進行反編譯,而有些混淆方案恰恰將代碼放在Return語句後面。這種混淆的有效性對於不同反編譯器的作用也不太相同的。一個好的混淆工具,通常會綜合使用這些混淆技術。 案例分析 在實踐當中,保護一個大型Java程序經常需要綜合使用這些方法,而不是單一使用某一種方法。這是因為每種方法都有其弱點和應用環境。綜合使用這些方法使得Java程序的保護更加有效。另外,我們經常還需要使用其它的相關安全技術,例如安全認證、數字簽名、PKI等。 本文給出的例子是一個Java應用程序,它是一個SCJP(Sun Certificate Java Programmer)的模擬考試軟體。該應用程序帶有大量的模擬題目,所有的題目都被加密後存儲在文件中。由於它所帶的題庫是該軟體的核心部分,所以關於題庫的存取和訪問就成為非常核心的類。一旦這些相關的類被反編譯,則所有的題庫將被破解。現在,我們來考慮如何保護這些題庫及相關的類。 在這個例子中,我們考慮使用綜合保護技術,其中包括本地代碼和混淆技術。因為該軟體主要發布在Windows上,因此轉換成本地代碼後,僅僅需要維護一個版本的本地代碼。另外,混淆對Java程序也是非常有效的,適用於這種獨立發布的應用系統。 在具體的方案中,我們將程序分為兩個部分,一個是由本地代碼編寫的題庫訪問的模塊,另外一個是由Java開發的其它模塊。這樣可以更高程度地保護題目管理模塊不被反編譯。對於Java開發的模塊,我們仍然要使用混淆技術。該方案的示意圖參見圖7。 圖7 SCJP保護技術方案圖 對於題目管理模塊,由於程序主要在Windows下使用,所以使用C++開發題庫訪問模塊,並且提供了一定的訪問介面。為了保護題庫訪問的介面,我們還增加了一個初始化介面,用於每次使用題庫訪問介面之前的初始化工作。它的介面主要分為兩類: 1. 初始化介面 在使用題庫模塊之前,我們必須先調用初始化介面。在調用該介面時,客戶端需要提供一個隨機數作為參數。題庫管理模塊和客戶端通過這個隨機數,按一定的演算法同時生成相同的SessionKey,用於加密以後輸入和輸出的所有數據。通過這種方式,只有授權(有效)的客戶端才能夠連接正確的連接,生成正確的SessionKey,用於訪問題庫信息。非法的客戶很難生成正確的SessionKey,因此無法獲得題庫的信息。如果需要建立更高的保密級別,也可以採用雙向認證技術。 2. 數據訪問介面 認證完成之後,客戶端就可以正常的訪問題庫數據。但是,輸入和輸出的數據都是由SessionKey所加密的數據。因此,只有正確的題庫管理模塊才能夠使用題庫管理模塊。圖8時序圖表示了題庫管理模塊和其它部分的交互過程。 圖8 題庫管理模塊和其它部分的交互過程圖
Ⅲ eclipse debug下,為什麼實際運行的代碼和看到的不一致(源碼是jad反編譯的)
通過反編譯的不可能是完全的相同你知道那些class 要是商用還會加密。要是開源的部份就直接去下源碼看不要反編譯。
Ⅳ 誰有自己做的FLASH CS3小游戲源文件,還有自己做的FLASH CS3網頁,很簡單的即可,在線等
本人游戲專家不才,望採納:
1(不做商用)。或者誰有好點的反編譯軟體。請發到[email protected]
.2..3關左右,有計分,最好有計時和難度選擇。如接金幣,連連看,射擊這類難度不大的游戲皆可,必須CS3!還有flash做的至少五個簡單網頁,必須cs3,且代碼不要外部導入的,要插在幀里的(不做商用)。
Ⅳ 小朋友問我為啥加密狗害怕反編譯軟體,怎麼通俗易懂的解釋清楚
軟體商用加密狗的目的就是防止別人隨便拷貝軟體,防止盜版的,會把軟體的一部分信息寫到加密狗里,所以沒有加密狗就不能用,是無法跳過的,除非把軟體反編譯,並且知道加密狗內寫了什麼。
Ⅵ 安全360真的有後門啊!!!!!!!!!!
1. 360為什麼每10分鍾聯網上傳數據?
絕大部分360的用戶都沒有注意到一個細節:360安全衛士每十分鍾聯一次網,每次上傳6KB左右數據,一天上傳約1MB數據(不包含下載數據),一年約350MB數據。風雨無阻,永不間斷。
一個安全軟體為什麼要如此頻繁的上傳數據呢(注意不是下載,給系統下載補丁包的流量不是上傳流量)?查詢是否有新的補丁包一來不需要這么頻繁,二來不需要這么大的數據量。秘密就是我們搜集用戶的隱私數據,並上傳到伺服器。當然,我們做了精心的設計,為了避免一次上傳過多信息,容易引起用戶警覺,採用了高頻度、小流量的策略,並對數據進行壓縮和加密處理,以防用戶警覺。周總最近又在吹噓「雲查殺」,其實就是為了掩蓋這個問題。
2. 360為什麼要獲取用戶隱私呢?
360是免費的,靠什麼養活公司、養活我們這個團隊呢?360對外號稱的,靠代理卡巴斯基殺毒軟體的收入、靠軟體推廣的收入,其實根本無法支撐如此龐大的奇虎團隊和伺服器開銷。周總花掉了大筆VC的錢,一次次不能兌現對VC的承諾,奇虎再融資難上加難。面臨VC業績的壓力,鋌而走險,周總也是沒有別的辦法。
免費產品放廣告是互聯網的模式,但是,安全軟體不像新浪擁有廣告時間(用戶上新浪總要看10分鍾),安全軟體的廣告機會不多(這是周總非常痛苦的一點,所以360為什麼經常提醒用戶什麼補丁,安全新聞,等等,主要是吸引用戶,爭取廣告時間),廣告時間很短,要做廣告就要精準,要精準,就必須了解用戶信息。有了這些用戶隱私,廣告才夠精準,就像此前的分眾無線一樣。用戶隱私數據的商用價值我們已經不必懷疑了,手機上用戶的隱私更多,更值錢,無數垃圾信息的群發公司已經充分證明了這一點。周總做3721的時候,什麼「***」、「***」的關鍵詞都賣,賺錢是根本。
畢竟,天下沒有免費的午餐。對自己隱私不在意的人,用隱私換取免費服務也還劃算。不過,手機上的對隱私在意的用戶可能多一些。理解了這些,有許多和360有關的事件迷局也就迎刃而解。
3.360真正的收入來源是什麼?
360對外聲稱的收入來源主要靠賣卡巴斯基。但是,360是代銷卡巴斯基,代銷的毛利率很低,15-20%左右,這點收入對於360而言是杯水車薪。360最大的收入是「互聯網**」,收保護費;交了錢的程序有點問題也可以放過,還幫助推廣,網評自然很好;不交錢的,網評就很差,還加入黑名單**。當然,最初依託奇虎社區上的「擦邊球」內容給網站帶流量,也為360帶來一些收入。
有了360大量獲取的用戶隱私信息為基礎,有了360保險箱的帳號關聯,360的瀏覽器在精準廣告上也就往前走了一大步。這一點對於廣告主有價值,對用戶也許會是個「災難」。前段360宣傳了自己的一個案例,協助**部門破了一個案,但是,沒有用戶信息作為基礎,怎麼協助呢?
4. 周總為什麼到處宣傳的所謂「雲查殺」?
周總最近宣傳的,所謂的360 「雲查殺」(把查殺工作放到360伺服器上),實質是為了掩飾360每10分鍾頻繁聯網,掩蓋其上傳用戶隱私的問題。周總號稱掃描速度是傳統殺毒軟體的10倍,掃描快的原因是採用文件名匹配來進行最簡單的模式匹配(叫一樣文件名的文件的就是木馬?這可能導致非常嚴重的誤殺。難道在中國叫陳**的都是渾蛋?)。360所謂的「查殺10萬木馬」,是因為360根據文件名來判斷病毒,病毒傳播者只要改一下名字,奇虎360就得重新加入木馬病毒庫,所以一個病毒文件要是有10個名字,360就要載入10次木馬姓名庫,別人要查一次就夠了,可360要載入10次。所以360才會費力去 「查殺10萬木馬」。
網上有篇帖子,說周總最新在手機上推出的扣費剋星,也採用了同樣的匹配文件名的簡陋技術。tompda上有人反編譯了代碼,發文說明了這點,也許一場新的鬧劇又要上演。
5. 為什麼360隻靠文件名查殺也能殺出木馬,還號稱比專業殺毒軟體更好?
周總**出走雅虎之前,曾經利用3721干過一件大事:他通過遍布全國的3721客戶端,在用戶機器上種下了後門,包括dll和驅動。而打開這個後門的秘密,只有周總和幾個核心人員知曉。這也就是為什麼360一推出,就能讓用戶感覺到特別好用的最大原因,因為它查殺的木馬,都是此前用3721客戶端自己種下的,自己種,自己殺,效果當然頂呱呱。
為了維持奇虎360的口碑,周總一直在做這樣的事情:不斷製造新木馬和***,再不斷進行查殺。
6. 為什麼綠霸受阻?
前一段,政府推動的綠霸計劃,希望解決青少年的上網**內容過濾問題。但是,綠霸和360的預裝策略沖突,一旦裝了綠霸,就佔領了360在PC上的位置,更重要的是就可能發現360的上傳用戶隱私的問題,那對360是很大的危機。因此,360成了在幕後攻擊綠霸的推手。
7. 為什麼360表面上口碑很好呢?
周總逢人就說,360沒有花一分錢的推廣費,完全靠口碑傳播發展的。其實,以我跟隨他多年的經驗,基本說什麼,就不是什麼,隨時可以變卦,說話就是放水。
與其360說是安全軟體,不如說是管理軟體,最初定位就是幫助用戶管理補丁、卸載程序、提供軟體下載,很多功能是超級兔子做的事情。當然,360做得更深入全面。360在產品體驗設計得不錯,動不動彈出來告訴你幫你做了這個,做了那個,讓用戶感覺幹了很多事情。因此,360吸引了很多草根的用戶。
但是,裝了360,該出問題還是會出問題,該中毒還是中毒,該中木馬還是中木馬。真正的業內人士,金融、電信、政府的人員擔心「偷東西」,都不太敢用360。
360的媒體控制力很強,周總在市場營銷上很有天分,360在PC預裝上下足了大功夫、大價錢,對外聲稱,很多中關村裝機器的人推薦用戶用360,不花錢,誰會幫你推薦。強有力的媒體控制,強有力的市場預裝推廣,一些不錯的功能體驗,掩蓋了360許多本質的問題
8.360為什麼要進入手機?
360的收入增長將以打擾用戶、獲取用戶隱私為主要手段,因此收入基本不具備成長性。360的收入對於投資人來說還是個故事。360在互聯網能夠拓展的領域基本差不多了。手機是下一個增長點。
PC上隱私有限,手機上用戶的隱私更多,更值錢,無數發公司已經證明了這一點。360要進入手機領域,成為移動互聯網「**」老大,總領手機軟體公司生殺予奪的大權。
9. 為什麼做扣費剋星?
從扣費剋星的查殺列表可以看出周總在手機上沿用了互聯網上的思路痕跡:實施焦土戰略,先掃清手機上的常用小軟體;然後,開始收保護費,順我者昌,逆我者亡。 「扣費剋星」這么響亮,當然要加入惡意扣費軟體。但是,手機大頭、千尺、來電秀、許多無線SP公司的商用收費軟體大都被加入列表。想在手機上發展又沒有很強靠山的公司,要注意了。
周總一般先不會得罪大的公司,有不少大公司的軟體一樣是收費的,但是名單中並沒有。聯合少量大的,打擊小的,這是做流氓的高級策略。當然,大公司也別著急,周總最厲害的就是各個擊破,先解決小的,然後逐個收拾大的。
因此,扣費剋星對於用戶很有吸引力的。也許周總早就在手機上布局了不少***,然後自己殺自己。拿著打流氓的旗號,打造一個更大的***公司,和360在PC上的思路完全一致。
10. 為什麼要以個人名義發布扣費剋星而不是360?
很多人會問,扣費剋星是個人做的,和360有什麼關系呢?360為什麼用個人名義發布扣費剋星,估計原因有三:
周總在PC上幹得黑事太多,在手機上不想得罪太多人,所以找了個個人作者來頂缸(手機上的SP公司,如果知道是360擋他們的路,個個都不是好惹的);
用個人作者發布,容易騙取草根網民的認同感和同情心。你看我是一個網民,被扣錢了,所以做了個軟體,幫大家解決問題,外表看起來多感人啊。
用個人作者發布,具有很強的迷惑性,很多SP和無線領域的公司,肯定會認為個人作者的產品,不會有很大的影響力,所以不太關注。而360已經在暗渡陳倉,大規模推廣扣費剋星,等到扣費剋星控制局面後,再變身為360。
360官方還象模象樣的發表申明說「360隻發布了手機衛士(垃圾信息過濾)這一個產品,其他產品與360無關」,太有點「此地無銀三百兩」了。360自己發布了一個進行垃圾信息過濾的產品,從第一個版本看還比較一般,和信安易等比還有很大距離。當然,360官方說法就是,這是實驗室流傳出去的beta產品。據說,這幾天又推出了一個安全管家,對軟體的評論基本一樣,估計也是360的,手機上即將開始一場腥風血雨。
11. 奇虎社區今後怎麼發展?
答案就是不發展。奇虎的發展,基本完全靠**擦邊球內容來充流量,社區不作了,原有的人走的走,沒有走的,就幫周總做宣傳,打口水仗,幫周總打壓瑞星、金山。說到金山,前一段網上有爭論「在手機有沒有病毒?」,居然有所謂金山的工程師出來說明沒有病毒,不知道他是不是真的金山員工?還是金山前員工?是代表金山,還是代表個人?也很可能是360僱傭的寫手斷章取義,扭曲了人家的發言。
我個人認為,手機病毒是事實,這是任何一個安全工程師都知道的基本問題。手機病毒還沒有象PC病毒那樣大規模爆發,不像一些手機安全公司宣傳得那麼嚴重,也是事實。當然,善於打擦邊球,斷章取義,混淆視聽是周總及其僱傭槍手擅長的事情。
12.為什麼周總對媒體控制力強?
周總身邊有人上可達政府,下可控制媒體。從3721開始,周總最擅長的就是口水仗,到雅虎,可以說周總的勢力范圍更是遍天下,據說為周總服務的記者不下千人,各地臨時調撥的槍手可達萬人。奇虎最初要做論壇搜索,Discuzz!和一大批互聯網論壇都是周總投資的。一些媒體朋友不服氣,周總甚至設計將其投入監獄。如此的手段,媒體哪能不服氣?
掃黃期間,其他網站都被關了,奇虎沒事。但是,最近奇虎常常被點名批評涉黃,前一段又被處罰了。涉黃這種事情發生多了,漸漸也沒有人敢幫了。也許驗證了那句話「夜路走多了,總會見到鬼」。
13.為什麼表面上360如此成功,而最初的核心骨幹卻一個個都離開了360?
今天360的團隊早已不再是360最初的那批團隊,最初的核心團隊早被周總逐個換掉了,360產品的方向也偏離了最初的目標。我們(360最初團隊)原本的目標是打造一款偉大的產品,但是360後續發展的方向已經不是我們能夠把控的。為了商業利益,360中加入了太多的、標稱為「安全軟體」不應該做的功能。
離開奇虎,實屬無奈。我們不願意自己精心付出心血打造的360產品(最初的360)又一次成為人人唾棄的***。如果公司真的好,真的是為了用戶,我們為什麼要離開?
現在360已經成為周總收黑錢、打壓對手的工具,和3761***有過之、無不及,實際上,今天的360已經成為互聯網最大的***,控制了數千萬台PC,比3721最為鼎盛的時候還要大,這是多麼可怕的事情。據以前的同事透露,目前360每天搜集的用戶數據量高達TB量級。在360面前,用戶毫無隱私可言,360保險箱甚至直接存放著用戶的各類帳號信息。也許,廣大網民剛剛逃脫3721等***的「狼窩」,又進入另一個更大的「虎穴」。
當然,周總常說,流氓足夠大了,也就有了江湖地位,就可以漂白了,小流氓是癟三,大流氓是黑老大。
14.為什麼要說出這些?為什麼要匿名發表?
周總崇尚柔道戰略,這是一種小公司沖擊大公司,攻擊大公司弱點的有效打法,也非常符合周總的性格。但是,這也決定了周總是個商人,而不是企業家。周總適合把小企業帶到中型企業,卻再沒有能力打造一個偉大的公司。這一點,從3721,到雅虎,到奇虎,都已經充分證明了。
周總本人的優點恰恰也是他最大的缺點,缺少承載一個偉大公司的胸懷和氣度。了解360的人都知道,周總身邊的人越來越少。當然,周總的用人原則就是,有利用價值的就用,沒有利用價值的就滾;服氣的留下,不服氣的就滾。這也是我們離開奇虎的重要原因。我們似乎很難相信,一個曾經的互聯網***之父,一個常常做出損人不利己的事的人,一個連自己多年好友都可以投入監獄的人,可以打造一個偉大的產品和公司。
外表強大兇悍的360,內部其實四面楚歌,病入膏肓。一個事物靠窮兵黷武搶奪回來的,也很快消失。許多人把現在的360都叫做「喪六靈」。原本目標是打造偉大產品的最初360團隊,發現產品已經背離了原有的方向。作為最初360團隊之一,作為一個有良知的人,我覺得有必要說出這些。
熟悉周總的人都知道,周總經常打電話威脅別人的家人安全。潑臟水,誹謗,誣告,收黑錢,實施恐怖威脅甚至**,是周總的拿手好戲。黑事做多了,心思就多就重,難怪周總出入要請貼身保鏢,周總年紀不大,卻常常夜不能寐、身體每況愈下。因此有人稱周總是「邪教教主」,一是蠱惑群眾,二是為了牟取暴利,三是違反法律的約束。很遺憾,周總的手段,用流行語說,「很狠很**」,我只能通過匿名的方式。
老周,回頭是岸(周總現在已經不是我老闆了,就叫句老周吧)。
Ⅶ 如何防止程序員反編譯
Java從誕生以來,其基因就是開放精神,也正因此,其可以得到廣泛愛好者的支持和奉獻,最終很快發展壯大,以至於有今天之風光!但隨著java的應用領域越來越廣,特別是一些功能要發布到終端用戶手中(如Android開發的app),有時候,公司為了商業技術的保密考慮,不希望這裡面的一些核心代碼能夠被人破解(破解之後,甚至可以被簡單改改就發布出去,說嚴重點,就可能會擾亂公司的正常軟體的市場行為),這時候就要求這些java代碼不能夠被反編譯。
這里要先說一下反編譯的現象。因為java一直秉持著開放共享的理念,所以大家也都知道,我們一般共享一個自己寫的jar包時,同時會共享一個對應的source包。但這些依然與反編譯沒有什麼關系,但java的共享理念,不只是建議我們這樣做,而且它自己也在底層上「強迫」我們這么做!在java寫的.java文件後,使用javac編譯成class文件,在編譯的過程,不像C/C++或C#那樣編譯時進行加密或混淆,它是直接對其進行符號化、標記化的編譯處理,於是,也產生了一個逆向工程的問題:可以根據class文件反向解析成原來的java文件!這就是反編譯的由來。
但很多時候,有些公司出於如上述的原因考慮時,真的不希望自己寫的代碼被別人反編譯,尤其是那些收費的app或桌面軟體(甚至還有一些j2ee的wen項目)!這時候,防止反編譯就成了必然!但前面也說過了,因為開放理念的原因,class是可以被反編譯的,那現在有這樣的需求之後,有哪些方式可以做到防止反編譯呢?經過研究java源代碼並進行了一些技術實現(結果發現,以前都有人想到過,所以在對應章節的時候,我會貼出一些寫得比較細的文章,而我就簡單闡述一下,也算偷個懶吧),我總共整理出以下這幾種方式:
代碼混淆
這種方式的做法正如其名,是把代碼打亂,並摻入一些隨機或特殊的字元,讓代碼的可讀性大大降低,「曲線救國」似的達到所謂的加密。其實,其本質就是打亂代碼的順序、將各類符號(如類名、方法名、屬性名)進行隨機或亂命名,使其無意義,讓人讀代碼時很累,進而讓人乍一看,以為這些代碼是加過密的!
由其實現方式上可知,其實現原理只是擾亂正常的代碼可讀性,並不是真正的加密,如果一個人的耐心很好,依然可以理出整個程序在做什麼,更何況,一個應用中,其核心代碼才是人們想去了解的,所以大大縮小了代碼閱讀的范圍!
當然,這種方式的存在,而且還比較流行,其原因在於,基本能防範一些技術人員進行反編譯(比如說我,讓我破解一個混淆的代碼,我寧願自己重寫一個了)!而且其實現較為簡單,對項目的代碼又無開發上的侵入性。目前業界也有較多這類工具,有商用的,也有免費的,目前比較流行的免費的是:proguard(我現象臨時用的就是這個)。
上面說了,這種方式其實並不是真正加密代碼,其實代碼還是能夠被人反編譯(有人可能說,使用proguard中的optimize選項,可以從位元組流層面更改代碼,甚至可以讓JD這些反編譯軟體可以無法得到內容。說得有點道理,但有兩個問題:1、使用optimize對JDK及環境要求較高,容易造成混淆後的代碼無法正常運行;2、這種方式其實還是混淆,JD反編譯有點問題,可以有更強悍的工具,矛盾哲學在哪兒都是存在的^_^)。那如何能做到我的class代碼無法被人反編譯呢?那就需要我們下面的「加密class」!
加密class
在說加密class之前,我們要先了解一些java的基本概念,如:ClassLoader。做java的人已經或者以後會知道,java程序的運行,是類中的邏輯在JVM中運行,而類又是怎麼載入到JVM中的呢(JVM內幕之類的,不在本文中闡述,所以點到為止)?答案是:ClassLoader。JVM在啟動時是如何初始化整個環境的,有哪些ClassLoader及作用是什麼,大家可以自己問度娘,也不在本文中討論。
讓我們從最常見的代碼開始,揭開一下ClassLoader的一點點面紗!看下面的代碼:
Java代碼
publicclassDemo{
publicstaticvoidmain(String[]args){
System.out.println(「helloworld!」);
}
}
在編譯代碼時(如使用ant或maven),使用插件將代碼進行加密(加密方式自己選),將class文件裡面的內容讀取成byte[],然後進行加密後再寫回到class文件(這時候class文件裡面的內容不是標準的class,無法被反編譯了)
在啟動項目代碼時,指定使用我們自定義的ClassLoader就行了,而自定義的部分,主要就是在這里做解密工作!
上面這段代碼,大家都認識。但我要問的是:如果我們使用javac對其進行編譯,然後使用java使其運行(為什麼不在Eclipse中使用Runas功能呢?因為Eclipse幫我們封閉,從而簡化了太多東西,使我們忽略了太多的底層細節,只有從原始的操作上,我們才能看到本質),那麼,它是怎麼載入到JVM中的?答案是:通過AppClassLoader載入的(相關知識點可以參考:http://hxraid.iteye.com/blog/747625)!如果不相信的話,可以輸出一下System.out.println(Thread.currentThrea().getContextLoader());看看。
那又有一個新的問題產生了:ClassLoader又是怎樣載入class的呢?其實,AppClassLoader繼承自java.lang.ClassLoader類,所以,基本操作都在這個類裡面,讓我們直接看下面這段核心代碼吧:

看到這里,已經沒有必要再往下面看了(再往下就是native方法了,這是一個重大伏筆哦),我們要做的手腳就在這里!
手腳怎麼做呢?很簡單,上面的代碼邏輯告訴我們,ClassLoader只是拿到class文件中的內容byte[],然後交給JVM初始化!於是我們的邏輯就簡單了:只要在交給JVM時是正確的class文件就行了,在這之前是什麼樣子無所謂!所以,我們的加密的整個邏輯就是:
如此,搞定!以上的做法比較完整的闡述,可以仔細閱讀一下這篇文章:https://www.ddtsoft.com/#developerworks/cn/java/l-secureclass/文章中的介紹。
通過這個方法貌似可以解決代碼反編譯的問題了!錯!這里有一個巨大的坑!因為我們自定義的ClassLoader是不能加密的,要不然JVM不認識,就全歇菜了!如果我來反編譯,呵呵,我只要反編譯一下這個自定義的ClassLoader,然後把裡面解密後的內容寫到指定的文件中保存下來,再把這個加了邏輯的自定義ClassLoader放回去運行,你猜結果會怎樣?沒錯,你會想死!因為你好不容易想出來的加密演算法,結果人家根本不需要破解,直接就繞過去了!
現在,讓我們總結一下這個方法的優缺點:實現方式簡單有效,同時對代碼幾乎沒有侵入性,不影響正常開發與發布。缺點也很明顯,就是很容易被人破解!
當然啦,關於缺點問題,你也可以這么干:先對所有代碼進行混淆、再進行加密,保證:1、不容易找到我們自定義的那個ClassLoader;2、就算找到了,破解了,代碼可讀性還是很差,讓你看得吐血!(有一篇文章,我覺得寫得不錯,大家可以看一看:http://www.scjgcj.com/#blog/851544)
嗯,我覺得這個方法很好,我自己也差點被這個想法感動了,但是,作為一個嚴謹的程序員,我真的不願意留下一個隱患在這里!所以,我繼續思索!
高級加密class
前面我們說過有個伏筆來著,還記得吧?沒錯,就是那個native!native定義的方法是什麼方法?就是我們傳說中的JNI調用!前面介紹過的有一篇文章中提到過,其實jvm的真實身份並不是java,而是c++寫的jvm.dll(windows版本下),java與dll文件的調用就是通過JNI實現的!於是,我們就可以這樣想:JNI可以調用第三方語言的類庫,那麼,我們可不可以把解密與裝載使用第三方語言寫(如C++,因為它們生成的庫是不好反編譯的),這樣它可以把解密出來的class內容直接調jvm.dll的載入介面進行初始化成class,再返回給我們的ClassLoader?這樣,我們自定義的ClassLoader只要使用JNI調用這個第三方語言寫的組件,整個解密過程,都在黑盒中進行,別人就無從破解了!
嗯,這個方法真的很不錯的!但也有兩個小問題:1.使用第三方語言寫,得會第三方語言,我說的會,是指很溜!2.對於不同的操作系統,甚至同一操作系統不同的版本,都可能要有差異化的代碼生成對應環境下的組件(如window下是exe,linux是so等)!如果你不在乎這兩個問題,我覺得,這個方式真的挺不錯的。但對於我來說,我的信條是,越復雜的方式越容易出錯!我個人比較崇尚簡潔的美,所以,這個方法我不會輕易使用!
對了,如果大家覺得這個方法還算可行的話,可以推薦一個我無意中看到的東西給大家看看(我都沒有用過的):jinstall,
更改JVM
看到這個標題,我想你可能會震驚。是的,你沒看錯,做為一個程序員,是應該要具有懷疑一切、敢想敢做的信念。如果你有意留心的話,你會發現JVM版本在業界其實也有好幾個版本的,如:Sun公司的、IBM的、Apache的、Google的……
所以,不要阻礙自己的想像力,現在沒有這個能力,並不代表不可能。所以,我想到,如果我把jvm改了,在裡面對載入的類進行解密,那不就可以了嗎?我在設計構思過程中,突然發現:人老了就是容易糊塗!前面使用第三方語言實現解密的兩個問題,正好也是更改JVM要面對的兩個問題,而且還有一個更大的問題:這個JVM就得跟著這個項目到處走啊!
Ⅷ 應該怎樣學習JAVA順序是什麼
不知道Java 學習順序的話,我提供你一條學習線路圖!

按照視頻學習的過程中,學習方法也是很重要的!一定要記得勤記筆記,整理程思維導圖,方便後續復習方便。
第一部分:JavaSE:Java語言最基本的一套庫
學習JavaEE或JavaME之前,JavaSE是必學的。
* Java開發環境搭建
* Java基礎語法
* 面向對象
* 數組
* 異常
* 集合
* 線程
* IO流
* 反射機制
* 註解Annotation
* 網路編程
第二部分:資料庫 【MySQL + JDBC】
* 只要學習編程,資料庫是一定要學習的,是一門公共的學科。
* java、C、python、C#等程序員都需要學習資料庫。
* 資料庫產品很多: MySQL、Oracle、SqlServer、DB2......
* 我們動力節點資料庫課程包括:MySQL + Oracle
* Oracle:銀行、政府使用oracle的較多。
* MySQL:互聯網公司、一般企業使用MySQL較多。
* Oracle我們是提供視頻的。課堂上不講。
* 我們課堂上講MySQL。
* Java語言鏈接資料庫:JDBC
第三部分:WEB前端
* 系統結構:B/S【Browser/Server】 C/S【Client/Server】
* WEB是網站的意思。WEB前端是:網站當中的頁面。
* WEB前端程序是運行在瀏覽器當中的。
* HTML5 + CSS3 + JavaScript(JS)
* WEB前端也有很多框架:
- jQuery
- Bootstrap
- Vue
- NodeJS
- AugularJS
- RectJS
- LayUI
- EasyUI
.....
第四部分:JavaWEB
* Servlet
* JSP
* AJAX(是JavaScript的一部分語法,專門做頁面局部刷新)
第五部分:JavaWEB項目
* 做一個B/S結構的項目,將WEB前端和JavaWEB內容做一個整合練習。
* 其實到這里為止,所有的系統都可以做了。但是用的技術很Low。沒有用框架。
Ⅸ 如何把住房性質辦公改成商業
1、應先去規劃部門申請更改房產性質為商業,取得規劃部門同意的文件。
2、再去地政部門補交低價並簽訂補充合同。
3、去登記部門做變更登記,將房產證上的性質更改為商業。
對商業營業用房歷史的回顧,也就是從古至今老百姓所說的商鋪,是經營者為顧客提供商品交易服務的場所。商業營業用房的概念我們可以發現,商業營業用房已經經歷了很大的發展,已經從最初的經營物品商品,增加到經營服務商品、體驗商品的層面。

(9)反編譯商用擴展閱讀:
商用住宅現狀:
在房地產市場調控政策下,2012年全年地價整體水平未現大幅波動,房地產用地全年呈現量跌價穩態勢,各季度地價環比增速低位盤整。
國土資源部發布地價監測成果顯示,2012年末,全國主要監測城市地價總體水平為3129元/平方米,商服、住宅、工業地價分別為5843元/平方米、4620元/平方米和670元/平方米。與上年同期相比,商、住、工各用途地價增長速度分別為3.34%、2.26%、2.70%。
其中,商業、住宅地價同比增速均處於近十年來的低位,僅略高於2008年,且全年住宅地價累計增幅在三類用地中居於最低,這也是近兩輪市場波動中的首次出現。從2009年以來的商住倒掛、住宅地價增速超過商服,到目前與工業地價幾乎同速變化,地價結構性調整正在顯現。
Ⅹ 廣西移動app里和商務是什麼
和商務就是移動的一種套餐,專門給商務人士用的,具體咨詢10086
