導航:首頁 > 源碼編譯 > 如何反編譯一個chrome插件

如何反編譯一個chrome插件

發布時間:2023-02-13 09:49:48

1. Chrome 插件反編譯失敗,求助

安裝 visual studio 2008 redistributable package 貌似JD-ECLIPSE是用(至少一部分)C++寫的,如果你的電腦上沒有裝VC9,那就安裝上面說的那個東西地址: microsoft/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-0

2. 如何反編譯一個exe文件,並修改裡面一句代碼

1、首先打開瀏覽器,網路搜索「反編譯工具ILSpy」,選擇一個安全的網站進行下載。

3. 怎麼編譯Chrome for android

編譯Chrome for Android目前有兩種方式,一是在ROM編譯環境下編出libchromeview.so,二是用Chromium主幹的代碼編譯出ContentShell(一個測試用的外殼,只包含核心的代碼,不包含Chrome的擴展特性,這兩種方式目前都只支持在64位Ubuntu下面進行。

--------------------------------------------------------------------------------

在ROM編譯環境下編出libchromeview.so
這種方式比較簡單,下載當前版本Chrome for Android的tarball,解壓後把Chrome目錄放入ROM目錄的$ROM/external下面,然後按照README.Chrome_for_Android_SourceDistribution裡面的說明進行編譯即可。
1.編譯出來的libchromeview.so,可以按照README.Chrome_for_Android_SourceDistribution說明打一個新的Chrome.apk運行,也可以直接替換掉手機裡面/data/data/com.android.chrome/下面的libchromeview.so運行;
2.不知道是不是版本不匹配的關系,用最新的Chrome搭配自己編譯的libchromeview.so,復雜的網頁會崩潰,簡單的網頁就還OK;
3.可以輸出日誌(#include "/base/logging.h"),但是沒法調試和跟蹤(理論上應該可以使用命令行gdb進行調試,不過配置起來應該比較麻煩,沒有去嘗試);

--------------------------------------------------------------------------------

用Chromium主幹的代碼編譯出ContentShell
這種方式比較麻煩
1.下載Chromium的tarball後需要使用gclient sync -nohooks同步新的代碼,tarball裡面的svn記錄是1.6版本的,如果你的svn是1.7版本,需要先downgrade到1.6版本;
2.同步最新代碼的時候,如果提示guava和jsr-305這兩個目錄同步錯誤,需要先移除$SRC/third_party/guava和$SRC/third_party/jsr-305後再重新同步(後續新的tarball應該不需要了);
3.gclient runhooks一直失敗,不過貌似也不影響編譯;
4.如果編譯時提示缺少$SRC/build/util/LASTCHANGE文件,可以從上面的Chrome for Android的tarball裡面過來;
5.運行build/android/adb_gdb_content_shell就可以使用gdb進行調試;
6.adb_gdb_content_shell實際上調用了adb_gdb,adb_gdb在中文Ubuntu環境下有一個bug,第861行」if [ "$STATE" != "Running" ]; then「可能會失敗,因為在中文環境STATE實際值可能是」運行中「,這一行需要改成」if [ "$STATE" != "運行中" ]; then「;

4. 如何編譯chrome中的depot

1) 了解代碼組織結構。
Chrome source非常龐大,並且在其主目錄下還包含有工具和組件,任何一個工具和組件也附帶有其源代碼。首先得熟悉這些源代碼的組織結構,在http://src.chromium.org/svn/中包含如下子目錄:releases,曾經發布過的chrome源代碼的正式版本;trunk,當前最新的源代碼。由於releases中的代碼比較舊,這里就不做說明了,只說明trunk的結構。在trunk下面有3個重要的目錄,deps包含了chrome編譯和運行所需要的全部組件的代碼。src裡麵包含的則是chrome的主程序的代碼,tools包含的是下載和配置編譯所需要的第三方工具的壓縮包和源代碼,其中就有svn和python這2個比較重要的工具,後面再詳細介紹。暫時做這樣一個簡單的介紹,因為其組織結構比較負責,以後再作補充斧正。

2)如何下載和同步源代碼。
首先談談下載:
1,最簡單的方法是從chrome官網上直接下載源代碼壓縮包,地址是http://build.chromium.org/buildbot/archives/chromium_tarball.html。

2,或者採用svn從http://src.chromium.org/svn/trunk/src這個地方heckout,這要求你先在本地建一個源代碼的主目錄。

3,另外一個辦法則是採用google提供的一個部署工具depot_tools。雖然這幾種辦法都可下載完整的源代碼,但目前的情況是:chrome基於Visual Stdio 2005 進行編譯,如果順利完成編譯工作,自然少不了sln文件,較早的源代碼中包含有現成的sln和vcproject文件,但後來做了修改,這些文件被拋棄掉,Google自己開發了一種腳本工具叫做GYP,這個工具採用python編寫,GYP採用了自定義的一套規則,用於生成各種工程文件。而關鍵的python則包含於depot_tools中,因此不論採用什麼方法下載的代碼,都得下載depot_tools這個工具,以獲得必須的工程文件。
depot_tools位於 http://src.chromium.org/svn/trunk/tools 下面,包括一個目錄和一個zip格式的壓縮包。

3)關於編譯器
前面提到Chrome採用Visual Stdio 2005進行編譯,根據http://dev.chromium.org的說明,需進行如下操作正常編譯
a, 安裝Visual Studio 2005.
b, 安裝Visual Studio 2005 Service Packe 1.
c, 安裝Visual Studio Hotfix 947315.
d, 如果是vista系統,還需安裝Visual Studio 2005 Service Packe 1 Update for Windows Vista.
e, 安裝Windows 2008 SDK,如果是Visual Studio 2008則不需要這一步。
f, 配置Windows 2008 SDK,使2008 SDK成為首選開發庫,以獲得一些新功能和特性。辦法是在開始->程序->Microsoft Windows SDK v6.1 > Visual Studio Registration > Windows SDK Configuration Tool,選擇make current按鈕。也可以在VS裡面手動配置include和libary路徑,效果是一樣的。

二,如何配置工程文件
1,如果是採用depot_tools,那麼從代碼下載到生成sln文件會自動完成。其步驟是
(1)下載depot_tools到本地存儲,假設位於d:/depot_tools.
(2)將d:/depot_tools添加到系統環境變數中。
(3)創建一個源代碼根目錄,假設為 d:/chrome,目錄不得包含空格。
(4)在命令行下切換當前目錄到d:/chrome。
(5)執行命令 gclient config http://src.chromium.org/svn/trunk/src ,該命令會首先下載svn和python分別到d:/depot_tools/svn_bin和d:/depot_tools/python_bin。
(6)執行命令 gclient sync 這個命令會調用svn同步源代碼。這個過程會比較漫長。全部完成之後全部源代碼就保存在d:/chrome裡面。未編譯的代碼大約有4個G左右,過程將十分漫長。這樣獲得的源代碼已經包含所有的工程文件,可直接打開。

重點說明一下gclient,它實際上是一個批處理文件,它主要做了如下一些事情,首先設置環境變數,如代碼根目錄,工具根目錄等。其次調用win_tools.bat從伺服器下載svn和python。最後調用python.exe對Chrome.gyp進行解析生成所有工程文件。
另外需要說明的是,gclient sync的過程非常漫長,根據命令行的提示來看總共需要同步67個項目(不是工程),期間可能會因為一些原因導致錯誤而退出這個過程,需要繼續調用sync。比如網路出現故障svn會多次進入sleep狀態然後重試,如果多次失敗就會報錯退出,還有的情況是某些子目錄的屬性問題無法同步,可根據提示進行操作。還有個目前新出現的問題,下面2個目錄「src/webkit/data/layout_tests/LayoutTests」和「src/third_party/WebKit/LayoutTests」的源代碼是從src.webkit.org簽出來的,但是這個網站目前存在問題無法簽出代碼, 需要屏蔽掉這2個目錄,由於裡面是測試代碼,即使丟棄也不會影響整個工程的編譯,方法是打開trunk下面的.gclient文件,向裡面添加如下內容
"custom_deps" : {
"src/webkit/data/layout_tests/LayoutTests":None,
"src/third_party/WebKit/LayoutTests":None,
},

這樣svn就能完成代碼的同步了。最後gclient會調用depot_tools/python_bin/python.exe 對 src/build/gyp_
chromium進行處理,這樣就得到了所有的sln和vcproject文件。

2,如果是下載的代碼壓縮包或者checkout的代碼,代碼目錄裡面沒有sln文件,這個時候需要調用命令行進入源代碼根目錄,然後執行命令 gclient runhooks --force,命令執行後會直接對Chrome.gyp進行解析,生成sln文件。

在實際下載過程中,最開始的時候我用TortoiseSVN從http://src.chromium.org/svn/trunk/src checkout源代碼,但是得到的代碼只有幾百兆,執行gclient runhooks --force命令後也沒有找到sln文件,具體原因未知,不建議使用此方式。而直接下載代碼壓縮包的方式沒有嘗試過,不知道是否可行。因此最穩妥的方法還是使用depot_tools來部署和處理源代碼。

三 編譯工程
啟動Visual Studio 2005打開 src/chrome/browser/chrome.sln,或者打開src/build/all.sln,如果打開的是chrome.sln裡麵包含480個工程,而all.sln則包含507個工程,一些09年的編譯說明提到有300左右的工程,可見chrome的代碼變動比較大。對整個解決方案進行編譯,打開需要2個小時才能完成編譯,視硬體環境而定,內存越大越快,推薦4G以上內存,酷睿2核或者4核。編譯完成以後據說會佔用30G的空間。編譯後的文件位於 d:/chorme/chrome/debug 目錄或者 d:/chorme/chrome/release目錄下。

閱讀全文

與如何反編譯一個chrome插件相關的資料

熱點內容
在北京當程序員6年 瀏覽:127
編譯器gcc如何用 瀏覽:411
androidbringup 瀏覽:977
演算法設計與分析英文版 瀏覽:910
java程序員加班嗎 瀏覽:141
編譯檢查的是什麼錯誤 瀏覽:405
加密兔f碼生成器免費 瀏覽:292
思科路由器命令明文加密 瀏覽:171
方舟生存進化伺服器如何改名字 瀏覽:892
央行數字貨幣app怎麼注冊 瀏覽:431
51單片機顯示時間 瀏覽:770
我的世界網易版怎麼壓縮地圖 瀏覽:682
qq小程序雲伺服器和 瀏覽:740
方舟伺服器怎麼玩才好玩 瀏覽:559
單片機的部件 瀏覽:623
編譯原理遍的過程 瀏覽:274
python讀取json字元串 瀏覽:72
ubuntu1404安裝php 瀏覽:636
lua能編譯嗎 瀏覽:118
思仙怎麼看伺服器 瀏覽:660