導航:首頁 > 源碼編譯 > 反編譯工具緩存

反編譯工具緩存

發布時間:2023-02-12 13:39:03

① 如何在eclipse中配置反編譯工具jadclipse

1.下載net.sf.jadclipse_3.3.0.jar地址為jadclipse.sourceforge.net

2.將net.sf.jadclipse_3.3.0.jar(作用:如果不安裝,第6步則搜不到JadClipse)復制到eclipse安裝目錄下的plugins下

3. Jad.exe下載,地址為www.javadecompilers.com/jad

4.將壓縮解壓到eclipse安裝目錄新建文件夾Jad(也可以自定義目錄);

5.進入Jad目錄,在該目錄下新建Jadtemp文件,用於存放jad.exe執行程序的緩存文件夾

6.在eclipse中指定Jad.exe路徑,和緩存文件夾Jadtemp的路徑。eclipse中點擊上方菜單Windows->Preferences,在搜索框中輸入jad


9.測試

①.如果不生效,重啟eclipse,再不生效則配置存在問題。

②.Jad反編譯工具偶爾會出現解析不了class文件,這也是不可避免的。

② lua 怎麼反編譯

1.Lua的虛擬機指令,5.2 的有40條

Lua的指令使用一個32bit的unsigned integer表示。所有指令的定義都在lopcodes.h文件中(可以從Lua 官方網站下
載),使用一個enum OpCode代表指令類型。在lua5.2中,總共有40種指令(id從0到39)。根據指令參數的不同,可以將所有指令分為4
類:

typedef enum {
/*----------------------------------------------------------------------
name args description

------------------------------------------------------------------------*/
OP_MOVE,/* A B R(A) := R(B) */
OP_LOADK,/* A Bx R(A) := Kst(Bx) */
OP_LOADKX,/* A R(A) := Kst(extra arg) */
OP_LOADBOOL,/* A B C R(A) := (Bool)B; if (C) pc++ */
OP_LOADNIL,/* A B R(A), R(A+1), ..., R(A+B) := nil */
OP_GETUPVAL,/* A B R(A) := UpValue[B] */

OP_GETTABUP,/* A B C R(A) := UpValue[B][RK(C)] */
OP_GETTABLE,/* A B C R(A) := R(B)[RK(C)] */

OP_SETTABUP,/* A B C UpValue[A][RK(B)] := RK(C) */
OP_SETUPVAL,/* A B UpValue[B] := R(A) */
OP_SETTABLE,/* A B C R(A)[RK(B)] := RK(C) */

OP_NEWTABLE,/* A B C R(A) := {} (size = B,C) */

OP_SELF,/* A B C R(A+1) := R(B); R(A) := R(B)[RK(C)] */

OP_ADD,/* A B C R(A) := RK(B) + RK(C) */
OP_SUB,/* A B C R(A) := RK(B) - RK(C) */
OP_MUL,/* A B C R(A) := RK(B) * RK(C) */
OP_DIV,/* A B C R(A) := RK(B) / RK(C) */
OP_MOD,/* A B C R(A) := RK(B) % RK(C) */
OP_POW,/* A B C R(A) := RK(B) ^ RK(C) */
OP_UNM,/* A B R(A) := -R(B) */
OP_NOT,/* A B R(A) := not R(B) */
OP_LEN,/* A B R(A) := length of R(B) */

OP_CONCAT,/* A B C R(A) := R(B).. ... ..R(C) */

OP_JMP,/* A sBx pc+=sBx; if (A) close all upvalues >= R(A) + 1 */
OP_EQ,/* A B C if ((RK(B) == RK(C)) ~= A) then pc++ */
OP_LT,/* A B C if ((RK(B) < RK(C)) ~= A) then pc++ */
OP_LE,/* A B C if ((RK(B) <= RK(C)) ~= A) then pc++ */

OP_TEST,/* A C if not (R(A) <=> C) then pc++ */
OP_TESTSET,/* A B C if (R(B) <=> C) then R(A) := R(B) else pc++ */

OP_CALL,/* A B C R(A), ... ,R(A+C-2) := R(A)(R(A+1), ... ,R(A+B-1)) */
OP_TAILCALL,/* A B C return R(A)(R(A+1), ... ,R(A+B-1)) */
OP_RETURN,/* A B return R(A), ... ,R(A+B-2) (see note) */

OP_FORLOOP,/* A sBx R(A)+=R(A+2);
if R(A) <?= R(A+1) then { pc+=sBx; R(A+3)=R(A) }*/
OP_FORPREP,/* A sBx R(A)-=R(A+2); pc+=sBx */

OP_TFORCALL,/* A C R(A+3), ... ,R(A+2+C) := R(A)(R(A+1), R(A+2)); */
OP_TFORLOOP,/* A sBx if R(A+1) ~= nil then { R(A)=R(A+1); pc += sBx }*/

OP_SETLIST,/* A B C R(A)[(C-1)*FPF+i] := R(A+i), 1 <= i <= B */

OP_CLOSURE,/* A Bx R(A) := closure(KPROTO[Bx]) */

OP_VARARG,/* A B R(A), R(A+1), ..., R(A+B-2) = vararg */

OP_EXTRAARG/* Ax extra (larger) argument for previous opcode */
} OpCode;

**********************************************************
虛擬機指令(2) MOVE & LOAD

OP_MOVE A B
OP_MOVE用來將寄存器B中的值拷貝到寄存器A中,由於Lua是基於寄存器虛擬機,大部分的指令都是直接對寄存器進行操作,而不需要對數據進行壓棧和彈棧。OP_MOVE 指令的作用 是將一個Local變數復制給另一個local變數.
例子:
local a = 10;
local b = a;
編譯出來的結果
1 [1] LOAD 0 1;1代表的是常量表的項,這里代表的是10
2 [2] MOVE 1 0
所代表的二進制為
B A OP_Code
Load 0 1 = 100000000 000000000 00000000 000001 = 0x80000001 ,
也就是說, 0x80000001 的二進制所代表的指令為 Load 0 1,這里B中的最高位為1,表示的B為常量表的序號,而不是寄存器

MOVE 1 0 = 000000000 000000000 00000001 000000 = 0x40

*****************華麗分割線***********************************************
1.lua 的二進制格式,官方的luac.exe 編譯出來的格式

原始的lua 腳本為
local a = 10
local b = a
print(b)

下面介紹格式文件,介紹每個欄位的意思.當然啦,這種格式是官方的,各個游戲公司可能會做一些改動,但是萬變不離其宗。個個欄位已經用顏色標明了
在lua 的源文件中,前面四個位元組 1b 4c 75 61 也就是 \033Lua , 標識的是lua文件的特有的標示符數據格式,代表是lua
#define LUA_SIGNATURE "\033Lua" 033時八進制 = 0x1b ,很多那些反編譯工具判斷這四個位元組的值,來判斷是否能反編譯,很多公司都會偷偷的去掉或者用其他的值來替換,以迷惑菜鳥。呵呵

52 第五個位元組,表示的是,當前lua 的目標版本,這里指的是5.2 版本。
感覺編輯的好痛苦,我還是直接貼我的比較圖算了,看起來比較舒服

函數的頭描述
linedefined = 00 00 00 00 ;函數定義開始處的行號
linedefined = 00 00 00 00 ; 函數定義結束處的行號 ;頂級函數開始和結束行號都是為00
numparams = 00 ;固定參數的數目 number of fixed parameters
is_vararg = 01 ;可變參數標識符
• 1=VARARG_HASARG
• 2=VARARG_ISVARARG
• 4=VARARG_NEEDSARG
maxstacksize = 03 ;調用函數所需要的堆棧空間指令段
sizecode = 06 00 00 00 ; 函數中 指令的數目,緩存區的大小 = sizecode * sizeof(Instruction),每四個位元組為一條指令
code = 02 00 00 00 41 00 00 00 87 40 40 00 c1 00 80 00 a0 40 00 01 1e 00 80 00

常量列表 保存著函數中引用的常量的列表 (常量池)
Constant.sizek = 02 00 00 00 ;常量列表的大小 ,緩存區的大小 = Constant.sizek * sizeof(TValue) = 2 * 8 = 16,每項為8個位元組,
TValue * = 03 00 00 .
00 00 00 00 24 40 04 06 00 00 00 70 72 69 6e 74 [email protected]
Constant list 數據結構 保存著函數中引用的常量的列表 (常量池)
Integer 常量列表的大小 (sizek)
[
1 byte 常量類型 (value in parentheses): • 0=LUA_TNIL, 1=LUA_TBOOLEAN,• 3=LUA_TNUMBER, 4=LUA_TSTRING
Const 常量本身: 如果常量類型是0這個域不存在;如果類型是1,這個是0或1;如果類型是3這個域是 Number;如果類型是4 這個域是String。
]
這里的String 是包含"0"為結束的字元串

為什麼上傳圖片以後,圖片都變小了,而且不清晰呢?

***********************給大家發一點福利,矯正虛擬機指令的函數**************************************
//矯正虛擬機指令
DWORD Rectify(DWORD Source);
{
DWORD Instruction = Source;
BYTE Source_OpCode = Instruction & 0x3F;
switch(Source_OpCode)
{
case OP_MOVE:
Source_OpCode = Target_OpCode;
break;
...
}
Instruction = ((Instruction & 0xFFFFFFC0) | Source_OpCode);
return Instruction
}

③ 怎麼清理myeclipse的緩存

1、項目清理: 選擇菜單欄的Project——>Clean..——>勾選需要清理的項目(也可以選擇all)
切記:clean了項目,需要重新編譯
2、項目如果是maven項目,則有時候clean project並不起效。這時候需要用maven來清理緩存:右鍵項目——>Run As ——> Maven clean
切記:此方法清除後,需要重新進行maven編譯,可以使用Maven——>Update Project 或者 自定義的 Maven build
3、如果是以上兩個都不起效,那就直接進入項目的classes 目錄下,查看編譯後的class,進行反編譯,與現在的項目進行對比,看看是否更新了,如果沒有,刪除重新編譯
4、如果是web項目,並用Tomcat啟動的,發現緩存問題,項目沒更新,解決辦法:刪除項目,並進入Tomcat 的webapps 和 work 目錄,刪除你的項目,然後重新導入項目,重新編譯
5、瀏覽器緩存:瀏覽器緩存包括瀏覽器自帶的緩存 和 程序緩存
(a)自帶緩存:很多瀏覽器,比如google有時候會問你保不保存數據,如果你點的是,在很多時候容易出現數據沒更新的問題
解決辦法:對於瀏覽器記住密碼或是保存數據什麼的 要慎重.. 如果出現問題:如google,選擇歷史記錄——>清除瀏覽數據——>全部
(b)程序緩存:對於這個的解釋:如用到了ajax進行get查詢 等等
解決辦法:ajax有個cache屬性,默認為true, 就是頁面是否需要緩存的問題,改成false就ok了

④ 如何把C#編譯成的DLL放在一個地方作為全伺服器不同域名調用

使用全局程序集GAC

關於GAC,復制點東西給你:

Gac就是C:\WINDOWS\assembly文件夾,中文叫全局程序集緩存,把dll放到這個文件夾里,bin下面就不用放dll了,目的是為了程序集共享。

如何把asp.net網站部署到Gac裡面

首先在你Visual Studio的安裝目錄里找到sn.exe文件,放到cmd里執行
sn.exe -k C:\testKey.snk
這樣就會在你C盤的目錄下生成testKey.snk密鑰文件
然後
VS2003
在網站項目的AssemblyInfo.cs裡面的[assembly: AssemblyKeyFile("")]做類似如下配置
[assembly: AssemblyKeyFile(@"C:\testKey.snk
")]
注意這里寫絕對路徑最好,相對路徑很難寫
生成網站
這時網站的dll就是個強命名程序集,
打開程序---管理工具---.net framework1.1(或2.0)配置
我的電腦,程序集緩存,右鍵添加,把剛生成好的dll添加進去,無錯的話就添加成功了。

這時你可以把自己bin目錄下的dll刪了,但這時網頁還打不開,對webconfig做如下修改
<compilation
defaultLanguage="c#"
debug="true"
>
<assemblies>
<add assembly="youDllname, Version=1.0.2811.20076, Culture=neutral, PublicKeyToken=c52d31a7559027ce"/>
</assemblies>
</compilation>

至於assembly後面的dll全名怎麼寫,你可以用反編譯工具Reflector.exe去查你的dll,也可以在.net framework1.1(或2.0)配置裡面找到你的dll查屬性得到。
配好後網頁就應該可以打開了,如果打不開,重啟下iis

VS2005
要麻煩一點,你生成好snk文件後,第一步,當你確定好網站程序不改了後,點網站發布,在發布裡面用固定命名和單頁程序集,和對預編譯程序用強命名,下面有一個可以選擇snk文件的按紐,把snk文件選進去,發布網站,
然後再用上面的方法把bin目錄裡面的dll加到Gac裡面,這時可以把bin目錄裡面的dll刪了。然後配製webconfig如下
<configuration>節點下
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<qualifyAssembly partialName="CE.EIP.CRMBusinessEntities" fullName="CE.EIP.CRMBusinessEntities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=C75F352AFF88DAD1"/>
</assemblyBinding>
</runtime>
這時網站應該可以運行。qualifyAssembly 在2005裡面是通知運行時去Gac找dll的方法
基本上是這樣,但你第一次很可能操作成功不了,所以要注意如下問題
webconfig永遠是在你部署時修改,你要是在開發時修改就有錯
當你都配製好後,要重啟下iis,你更新dll的時候最好也重啟下iis,為什麼呢?
因為運行時是先去找C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files
下面的一個叫root 文件裡面的dll,如果找到了,就不會去Gac裡面找了,重啟IIS的目的就是為了把裡面的文件刪除
並不是所有dll都可以放到Gac裡面的,比如ajax.dll系列,因為這個dll會生成xml文檔,dll在GAC裡面,那xml會生成在哪裡呢?所以凡是要生成xml文檔的dll都不適合放進去(當然也有解決方案不過麻煩)

⑤ 怎樣從緩存中找出小程序

微信小程序搜索我們要解包的小程序,點擊進去。讓電腦進行載入小程序,緩存小程序文件到本地。然後微信設置查看文件管理,微信文件保存的位置。小程序包也儲存在那裡,可以看到wx開頭就是。可以看到電腦已經緩存了剛才的小程序文件,默認的路徑一般在C:位置。找不到的話可以搜索applet,查看路徑。wx開頭的都是。找到自己要解包的小程序,如果太多分不清哪個是我們需要的話,可以把wx開頭的文件清空刪除,重新載入小程序,生成新的。就是我們能需要的。點擊到文件裡面,會看到_APP_開頭的主包,打開下載好的小程序,選擇PC小程序解包,把裡面的_APP_.wxapkg拖拽進去,選擇解包後保存的路徑,點擊開始解密。然後選擇小程序反編譯,把解包出來的文件放進去,選擇保存的路徑。點擊開始反編譯。找到反編譯後保存的路徑,大功告成。

⑥ 在51自學網上利用IE緩存文件下載了視頻教程,是swf格式的,大部分不能正常播放,請問如何編輯

要編譯SWF文件也有好幾種方法,一·你可以下載個AE把SWF文件導進去,再渲染導出來,二,下載個SWf 反編譯軟體,如碩客閃思精靈 之類,進裡面看SWF的代碼根據代碼要求播放文件,前提是你要看的懂那一堆代碼是什麼意思。三,把SWF文件反編譯出來,刪改代碼,,………………

⑦ jd-gui反編譯工具緩存在哪兒

表示沒出現過,大多就是代碼錯亂而已,

⑧ 怎樣把SWF文件批量反編譯成AS 用什麼軟體 具體怎麼做 主要是什麼軟體可

放假發現提過佛歐克恭喜恭喜一次過辛苦幸福就感覺感覺媳婦規范從看媳婦hk里抽沖刺個處理好了超級好吃剛開學顧客系統

⑨ 如何將APK格式游戲里的音樂提取出來感覺很好聽。

1、如果音樂是直接打包進安裝程序的,可以用解壓軟體解壓打開,然後查看assets或者res文件夾下,即可找到
2、如果音樂是從網上緩存到本地的,就要找這個軟體的緩存地址,有些軟體的緩存文件是經過特殊處理的,就算找到了也不能使用

⑩ vs中的sdk命令提示,這個有什麼用,他和dos有何聯系

其實就是DOS命令行,不同的是,因為SDK裡面提供了很多工具都是基於命令行的,所以它啟動的時候已經將那些命令行的路徑都放進了系統的Path變數裡面,這樣當使用那些工具的時候,你可以直接用程序名了,而不需要再去切換目錄或輸入帶路徑的完整文件名。可以直接使用的工具比如:gacutil 管理和查看GAC緩存的工具sn 關於程序集強命名和密鑰相關的功能ildasm IL反編譯查看工具corflags 對程序集的CLR標識進行設定的工具ilasm 將IL編譯為程序集的工具resgen 關於資源的工具 等等。這些工具能在MSDN中找到列表和用法介紹。

閱讀全文

與反編譯工具緩存相關的資料

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