cost 145 ms
如果 `objdump -d --start-address` 從 x86 指令的中間開始打印會發生什么?

[英]What happens if `objdump -d --start-address` starts printing from the middle of an x86 instruction?

...換句話說,x86-64 是否是一個獨特的可解碼代碼,無論我從哪里開始解碼,最終總是會產生正確的反匯編代碼? 假設這(基本事實)是 ELF 文件的一部分。 第一條指令有六個字節長,從 0x5de5a2 到 0x5de5a7: 如果我執行objdump -d --start-address=0 ...

這條指令發生了什么: mov edi, dword ptr [ebx + offset32]

[英]What happens to this instruction: mov edi, dword ptr [ebx + offset32]

這是一個 32 位 Windows 程序隨機崩潰。 我使用 Visual Studio 2019 對其進行了調試。這是我所看到的。 行刑前, 點擊“Step Into”執行后: CPU 似乎將指令分成了 3 個部分: 8B BB, 4C, F6 07 00 。 什么是8B BB ? 我確 ...

比終端+objdump 更好的方法來讀取程序集?

[英]Better way than a terminal+objdump to read assembly?

例如,如果我在perf report中,我可以按 enter 鍵跟隨一個分支。 如果一個 bin 使用-g一些源也會出現。 我真的不需要源代碼,但如果我能跟隨跳躍會很方便。 我該怎么做才能使閱讀匯編更容易? 因為我在 linux 上,所以我最終運行了 perf 並使用 report 來閱讀這個 ...

call *(%rax, %rcx,8) 在循環中是什么意思? 為什么RAX和RCX之后要變?

[英]What does call *(%rax, %rcx,8) mean in a loop? Why do RAX and RCX change afterwards?

我有這個 function 指針和這段代碼: 就是一個迭代11次的循環,真不知道怎么處理function這個指針。 當有call *(%rax,%rcx,8)時,涉及的兩個寄存器(RAX 和 RCX)發生變化,但我不明白如何或為什么,因為我不知道那個呼叫中發生了什么...... 我不能設置斷點。 ...

如何在 Python 反匯編程序中訪問堆棧的內容?

[英]How to access content of stack in Python disassembler?

這個賞金已經結束了。 此問題的答案有資格獲得+100聲望賞金。 賞金寬限期在5 小時后結束。 mathfux正在從信譽良好的來源尋找答案。 我正在創建一個分析用戶定義函數定義中使用的代碼的工具,例如: 測試 1 ✅ 但是,我了解如何解釋dis.dis(test1)的結果: 我的期望輸出是: 為了 ...

movl to memory 在此循環中做什么?

[英]What is movl to memory doing in this loop?

我正在做一些作業,但我不明白這個 movl 在做什么(我認為這是一個 for 循環之類的,但我真的不明白) 請幫忙 我嘗試使用谷歌搜索,但似乎沒有任何格式相同,所以我不確定到底在做什么。 我只知道那是在移動一個整數。 ...

如何在沒有調試信息的情況下獲取 __malloc_printerr__ 的變量值?

[英]How to get the variable values of __malloc_printerr__ without debug-info?

我有一個 C++ 程序,它使用 gcc4.4.5 編譯並在 redhat 6.1 上運行。 程序用-m64編譯,CPU為Intel-64。 它總是在幾天后(隨機)中止。 由於找不到redhat6.1 的debug-info 文件,我不得不反匯編function malloc_pinterr來嘗試找 ...

清潔昂格拆機 output

[英]Clean Angr disassemble output

我正在為 Angr 開發一個 python 腳本,它必須以以下形式打印為 output: 這是我的 python 腳本: 在我的腳本中,我收到了一個 output,它有兩件事我不想要:行首的地址和打印在塊末尾而不是每行末尾的操作碼字節,因為例子: 不幸的是,該塊是作為一個整體打印的,我無法刪除地址 ...

ARM Thumb GCC 反匯編 C。調用者保存的寄存器未保存並立即加載和存儲相同的寄存器

[英]ARM Thumb GCC Disassembled C. Caller-saved registers not saved and loading and storing same register immediately

上下文:STM32F469 Cortex-M4 (ARMv7-M Thumb-2),Win 10,GCC,STM32CubeIDE; 學習/嘗試內聯匯編和讀取反匯編、堆棧管理等,寫入核心寄存器,觀察寄存器內容,檢查堆棧指針周圍的 RAM 以了解其工作原理。 我注意到,在某些時候,當我調用 funct ...

如何在 GDB session 期間訪問特定的 memory 地址?

[英]How can I access particular memory address during a GDB session?

這是一個非常簡單的 C 程序的反匯編( strcpy()一個常量字符串並打印它): 我目前正在學習如何充分使用 GBD ,我想知道: 如何訪問特定地址,如“ 0x206f746e656d654d ”? 當我嘗試使用x/x或x/s GDB 這樣做時說: 同樣適用於0x6e49090a69726f4d ...

ARMv7E-M VCVT.F32.U32編碼

[英]ARMv7E-M VCVT.F32.U32 encoding

我正在編寫一個ARMv7E-M Thumb2二進制分析工具,並手動解碼指令stream。 使用-mcpu=cortex-m4和-mfloat-abi=hard標志調用的 arm-gcc 在編譯我的 C 代碼時發出以下指令: 40280: eeb8 7a47 vcvt.f32.u32 s14, s14 ...

如何將零成本異常的反匯編與舊方法進行比較?

[英]How to compare disassembly of zero cost exceptions with the old approach?

我想了解“零成本異常”與以前用於編譯異常的方法有何不同,因此我想查看使用兩者編譯的某些程序的匯編代碼,以進行比較。 我怎樣才能做到這一點? 我可以使用 GCC 選項在它們之間切換嗎? 或者是否有使用舊方法的 GCC 的舊版本(理想情況下可以在 Godbolt 的 Compiler Explorer ...

如何在 gdb 中找到二進制字符串的地址?

[英]how to find address of string in binary in gdb?

所以這里是二進制的源代碼: 以下是此源代碼的編譯: @CTOS:/tmp/mytemp$ gcc helloWorld.c -o helloWorld 現在,當我在 gdb 中反匯編我的二進制文件時,如下所示: 現在我想知道傳遞給 function 調用的“Hello World”字符串的地址, ...

為什么 lea rax [ rip ± 0xeb3] 中有一個“±”?

[英]Why is there a "±" in lea rax, [ rip ± 0xeb3]?

我剛開始在 VMware 的 Kali Linux 中學習匯編語言。 我有一個銳龍 5 CPU。 在下面的代碼片段中,我有一些我不明白的事情。 <main + 17> 處的lea rax, [rip ± 0xeb3]是什么意思? 我了解lea的作用,但 ± 的含義是什么? 而RDI更 ...

使用 libopcodes 進行 Wii Broadway 反匯編

[英]Wii Broadway disassembly with libopcodes

我想反匯編 C 中的 Wii 游戲可執行二進制文件,它使用百老匯微處理器,不幸的是,我知道我可以使用的唯一反匯編程序是 libopcodes。 關於這個庫的文檔很少,我正在使用本教程https://blog.yossarian.net/2019/05/18/Basic-disassembly-wit ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM