disassembly

    0熱度

    1回答

    我想獲得一個ASM文件,它是使用IDA專業版解散,並使用腳本一次製作大量的ASM文件。 我嘗試了兩種方式來獲得ASM文件 第一個是與idapython: idc.GenerateFile(idc.OFILE_ASM, idc.GetInputFile()+".asm", 0, idc.BADADDR, 0) 生成的ASM文件成功,但是該文件有其牆根 一些像這樣的功能: ; [0000000C

    0熱度

    1回答

    爲什麼編譯器在函數調用之前放置瞭如此多的命令(查看下面的鏈接)?據我所知,它應該只在調用之前傳遞函數參數。 struct A{ int c = 5; void test(unsigned int a){ a++; c++; } }; struct C{ int k =2; A a; }; struct D{ int k =

    0熱度

    1回答

    我有linux CPP編譯的二進制文件。基於類(符號)名稱,我如何知道運行時符號的大小,它將佔用的內存;使用任何反彙編工具?或者其他方法? (它可能指向額外的堆內存,這不是我關心的問題,但存儲指向堆的類成員應該被計算)。

    13熱度

    1回答

    說我這樣做: #!/usr/bin/env python # encoding: utf-8 class A(object): pass 現在我拆開它: python -m dis test0.py 4 0 LOAD_CONST 0 ('A') 3 LOAD_NAME 0 (object) 6 BUILD_TUPLE

    1熱度

    3回答

    我想了解一些反彙編的代碼,但我無法理解這裏發生了什麼。你能解釋它的作用嗎? sub ecx, edi sar edx, 1 mov eax, 2AAAAAABh imul ecx mov eax, edx shr eax, 31 add eax, edx test eax, eax jle ... ecx,edx和edi包含此代碼某種輸入值。 我只能假設最後兩行

    2熱度

    3回答

    以下代碼包含一個8字節的緩衝區。 void vuln() { char buffer[8]; gets(buffer); printf("%s",buffer); } int main() { vuln(); return 0; } 所以,只有8個字節堆棧有望被保留用於此緩衝液中。但反彙編顯示保留16個字節。 (gdb) Dump o

    -1熱度

    1回答

    我使用gcc。我想知道每一行代碼的地址。有沒有辦法通過拆分來獲得它? dis組裝輸出的第一列似乎對我有用,但我不確定。 #include <stdio.h> #include <string.h> int main() { char name[20],address[500]; printf("enter your name::: \n"); fgets(na

    2熱度

    1回答

    我繼承了一個用Flash編寫的舊應用程序,它使用Google Map來本地化一些要點。 由於前幾天地圖不起作用,我在服務器或網絡配置上沒有任何修改。顯示的錯誤是: 初始化失敗:請檢查API密鑰,swf位置,版本 和網絡可用性。 我所擁有的就是SWF。爲了獲取我所能獲得的所有信息,我對其進行了反彙編,並設法獲得了Google API密鑰。現在,我不知道該密鑰是從哪個帳戶生成的,如果它仍然有效,我想我

    1熱度

    2回答

    我試圖在ollydbg中反彙編一個軟件,並且發現了一些奇怪的東西。這是類似以下內容: ASCII"C:\FolderName\SubFolder\exec.h" ASCII"C:\FolderName\SubFolder\Include\variable.cpp" 我沒有一個名爲FolderName在C文件夾,軟件運行良好。這可能是什麼?

    1熱度

    2回答

    有沒有辦法在不實際運行代碼的情況下獲取特定類的所有成員變量的大小? (即沒有sizeof(),offset_of()操作) 是否objdump或otool有一些選項可以從中間目標文件(甚至是最終的ELF文件)中提取此信息? 編輯: 「我現在想幹什麼?」: 我兩者之間建立注意到我們的軟件是一個特定的類實例的大小激增的。這個類非常大,有很多很多成員變量。有問題的類在兩個構建之間沒有改變,但是它的成員變