導航:首頁 > 源碼編譯 > obj反編譯

obj反編譯

發布時間:2022-02-22 01:04:18

『壹』 反編譯後,關於Object的困惑!

ghgb

『貳』 什麼軟體能將C語言的執行文件反匯編為匯編源代碼

可以使用Linux下的objmp命令來反匯編。
常用命令:
objmp -x obj:以某種分類信息的形式把目標文件的數據組成輸出;<可查到該文件的的所有動態庫>
objmp -t obj:輸出目標文件的符號表
objmp -h obj:輸出目標文件的所有段概括
objmp -j ./text/.data -S obj:輸出指定段的信息(反匯編源代碼)
objmp -S obj:輸出目標文件的符號表,當gcc -g時列印更明顯
objmp -j .text -Sl stack1 | more
-S 盡可能反匯編出源代碼,尤其當編譯的時候指定了-g這種調試參數時,效果比較明顯。隱含了-d參數。
-l 用文件名和行號標注相應的目標代碼,僅僅和-d、-D或者-r一起使用
使用-ld和使用-d的區別不是很大,在源碼級調試的時候有用,要求編譯時使用了-g之類的調試編譯選項。
-j name 僅僅顯示指定section的信息

『叄』 webpack打包過的代碼怎麼反編譯回來

javaScript Document
function show(str)
{
var str1="td"+str;
var str="show"+str;
for (var i=1; i<18; i++)
{
var obj = document.getElementById('show' + i.toString());
if (obj) obj.style.display = 'none';
}
document.getElementById(str).style.display="block";
}

『肆』 混淆的class文件怎麼進行反編譯

一般情況下Java應用的開發者為了保護代碼不被別人抄襲,在生成class文件的時候都java文件進行了混淆,這種class文件用反編譯工具得到的結果很難看懂,並且不能進行編譯。
從研究的角度,淺析如何讀懂這種反編譯過來的文件。
例子一:賦值
反編譯過來的代碼如下:
Node node;
Node node1 = _$3.getChildNodes().item(0);
node1;
node1;
JVM INSTR swap ;
node;
getChildNodes();
0;
item();
getChildNodes();
0;
item();
getNodeValue();
String s;
s;
原始語句:
Node node;
Node node1 = currDocument.getChildNodes().item(0);
node = node1;
String s = node.getChildNodes().item(0).getChildNodes().item(0).getNodeValue();
註解:
JVM INSTR swap ; //賦值語句
練習:
String s1;
String s8 = node.getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
s8;
s8;
JVM INSTR swap ;
s1;
10;
Integer.parseInt();
int i;
i;

例子二:不帶參數創建對象
反編譯過來的代碼如下:
JVM INSTR new #244 ;
JVM INSTR p ;
JVM INSTR swap ;
CrossTable();
CrossTable crosstable;
crosstable;
原始語句:
CrossTable crosstable = new CrossTable();
註解:
練習:
JVM INSTR new #246 ;
JVM INSTR p ;
JVM INSTR swap ;
Database();
Object obj;
obj;
例子三:帶參數創建對象
反編譯過來的代碼如下:
JVM INSTR new #262 ;
JVM INSTR p ;
JVM INSTR swap ;
String.valueOf(s2);
StringBuffer();
s.substring(j, i);
append();
s6;
append();
toString();
s2;

原始語句:
s2 = (new StringBuffer(String.valueOf(s2))).append(s.substring(j, i)).append(s6).toString();
註解:
此語句實際上是:s2 += s.substring(j, i) + s6;
練習:
例子四:for循環
反編譯過來的代碼如下:
int k = 0;
goto _L4
_L8:
...
k++;
_L4:
if(k < as.length) goto _L8; else goto _L7
原始語句:
for(int k=0;k < as.length;k++)
{
...
}
註解:
例子五:while循環
反編譯過來的代碼如下:
String s1 = "";
goto _L1
_L3:
JVM INSTR new #262 ;
JVM INSTR p ;
JVM INSTR swap ;
String.valueOf(s1);
StringBuffer();
_$2(resultset, s, l);
append();
toString();
s1;
_L1:
if(resultset.next()) goto _L3; else goto _L2
原始語句:
String s1 = "";
while(resultset.next())
{
s1 = s1 + resultSetToString(resultset, s, l);
}

『伍』 .Net環境下如何引用*.obj文件高程出手相救!

一:你可以在「解決方案資源管理器」窗口中的「項目」下的「引用」節點上右鍵——「添加引用」,然後點「瀏覽」找到你要加入引用的程序,並點擊「確認」。
另外,在使用時,你要引用它的命名空間(using namespace)

二:如果你是用「引用其他DLL」的方法去寫的這個程序,那麼你沒有辦法將你所引用的DLL放到你的程序里而不需要被引用的DLL的。
除非你反編譯你引用的那個DLL,並將它原樣放到你的程序中。

『陸』 asm轉換成obj的原理是什麼

你以為得到源碼是那麼容易的。。。
自己去看看匯編原理就明白了。
特別是,程序是怎麼編譯成可執行程序的。

而且,obj是C語言的目標文件,
和匯編有多大關系呢?反編譯出來估計你也很難看懂。

如果實在想看,弄個ollydbg打開它,慢慢研究

『柒』 編寫的C語言文件程序 保存以後生成.obj 和.exe的可執行文件。。怎麼在其他電腦里讀出來啊

可以直接運行的,exe是可執行文件,不需要安裝c語言軟體(你的系統都是c語言編的)。
.C的文件直接用記事本打開編輯,這個你肯定知道。
.OBJ的就不知道了,這個一般不用看的。

『捌』 java反編譯後得到的源碼 很混亂 怎麼辦

不是每個反編譯都能完美的,用eclipse規范下代碼,然後不符合的語法的方法,自己換成適合當前jdk版本支持的就可以了,反編譯還是得花力氣在代碼的上,偷懶有限啊。

閱讀全文

與obj反編譯相關的資料

熱點內容
php顯示星期幾 瀏覽:169
phpfun 瀏覽:868
wdcpphp安裝路徑 瀏覽:112
python拼音多音字 瀏覽:501
發動機壓縮比951 瀏覽:473
androidnetfilter 瀏覽:559
ci隱藏indexphp 瀏覽:439
視頻外發加密軟體限次數播放 瀏覽:680
刺激戰場輕量服怎麼換伺服器 瀏覽:492
一般買書上什麼app 瀏覽:220
php開發框架2017 瀏覽:69
電腦控制單片機 瀏覽:626
ios15如何修改app名稱 瀏覽:862
linuxphp安裝mysql資料庫 瀏覽:271
程序員怎麼鍛煉身體 瀏覽:102
電表伺服器斷開是什麼意思 瀏覽:810
華為伺服器的許可id怎麼找 瀏覽:89
程序員吃雞比賽 瀏覽:890
筆記本電腦加密軟體 瀏覽:94
命令變數控制有什麼用 瀏覽:584