disassembly

    2熱度

    1回答

    我正在關注這個編譯的代碼(我不知道編譯器也沒有源代碼)。 Sub1: mov edx,[esp+04h] and edx,00000300h or edx,0000007Fh mov [esp+06h],dx fldcw word ptr [esp+06h] retn 我的理解: Sub1(4byte param1) edx=param1&0x00000300|0x0000007

    1熱度

    1回答

    以下彙編代碼的結果是什麼? fld qword ptr [address2] fld qword ptr [address1] fldl2e fmulp ST(1),ST fld ST(0) frndint fxch ST(1) fsub ST,ST(1) f2xm1 fld1 faddp ST(1),ST fscale 在這裏,我不明白這段代碼在做什麼。我已經解釋是如下

    0熱度

    2回答

    我有一字符串打印輸出到屏幕上一個C++代碼,就像這樣: cout << "Hello, World" << endl 我需要做的是,使用Visual Studio內存反彙編程序,找到該字符串文字(「你好,世界」)中的第一個字符的內存地址(在這種情況下,字母'H',和最後一個) 我該怎麼做? 謝謝。

    0熱度

    1回答

    我有一個exe文件,它是一個必須獲取輸入數據文件的程序。我試圖在免疫調試器中運行它。我如何在那裏添加一個輸入文件來正確運行它?我沒有找到選項

    1熱度

    2回答

    我遇到68000彙編語言的問題。 指令集導這樣說: 的指令或者執行對位的邏輯運算「或」位。有 是這樣做的兩種方法: 源是一個有效的地址,目的地是dataregister。 來源是dataregister,目的是有效地址」 但在此: or d0,d6 爲D0的源或目標,我怎麼能告訴?

    0熱度

    1回答

    請檢查圖像鏈接,我需要從MSIL文件中提取資源內容。我已經使用ILSpy調試了該文件,但我需要以任何其他方式執行此操作。沒有使用任何人工干預。 http://i.stack.imgur.com/ZQdRc.png

    0熱度

    1回答

    我讀了AMD64手冊和附近部分,它說的CALL: 對於64位模式下,操作數大小默認爲64位附近的電話。 E8操作碼 導致RIP = RIP + 32位有符號位移,並且FF/2操作碼結果爲 RIP =寄存器或存儲器的64位偏移量。沒有前綴可用於在64位模式下對32位的操作數大小進行編碼 。 看起來每次操作碼都是E8,接下來的32位用作偏移量,對嗎?我反編譯了一個程序,我試過了: 4003f0: e

    2熱度

    1回答

    我有一個包含ARM v8二進制代碼的文件。我想反彙編這個文件,並得到它包含的實際彙編代碼。 假設文件名是tmp.o我運行: /opt/linaro/A64-tools/bin/aarch64-linux-gnu-objdump -b binary -m AARCH64 -D tmp.o 這給了我正確的拆卸。但是,分支指令的偏移量假定此代碼位於地址0x00000000中。 如果我知道這些代碼將坐

    1熱度

    1回答

    我在gdb中爲32位和64位intel處理器反彙編了以下代碼。 void main() { 5 char *args[2]; 6 7 args[0] = "/bin/sh"; 8 args[1] = NULL; 9 execve(args[0],args,NULL); 10 exit(0); 11 } 以下是生成的彙編代碼。 對於64位 Dump of assemble

    2熱度

    1回答

    正如標題所示,我想拆解elf文件,但是我遇到了一個問題,我不知道哪個指令是arm指令,哪個指令是thumb指令。由於arm指令爲32位,而Thumb指令爲16位,因此拆卸方式不同。那麼如何從十六進制指令中檢測到拇指指令呢?