Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Generowanie samego kodu maszynowego


Rekomendowane odpowiedzi

Opublikowano

Jestem w trakcie pisania kodu, który jest wczytywany przez VM x86 - to znaczy żadnych nagłówków PE, żadnych segmentów .text, .data i innych, żadnych paddingów. Czysty kod x86.

Najpierw pisałem to w assemblerze i kompilowałem NASM'em z parametrem '-f bin'. Teraz jednak projekt się rozrósł i chciałbym przerzucić się na C.

Chciałbym użyć Microsoftowego kompilatora (cl.exe, link.exe). Jednak nie mam zielonego pojęcia, jak zrobić, żeby kompilator ten wypluł mi czysty machine code, bez jakichkolwiek domieszek.

Skończ proszę się kompromitować. Jesteś nikim.

Opublikowano

­

 

On Visual Studio;

 

set a breakpoint

run the program until it stops at the breakpoint

rightclick on the sourcecode and pick "show dissasembly"

http://stackoverflow.com/questions/840321/how-can-i-see-the-assembly-code-for-a-c-program

 

Albo używaj modyfikatora naked, kompiluj program a potem disasemblerem (np. IDA) szukaj swoich funkcji i kopiuj kod.

846331404756772371599.jpeg
Opublikowano

@Phoenix_PL - dzięki za linka, kompiluję teraz cl.exe /c <flagi> src.c i potem dumpbin /rawdata /section:.text src.obj, działa jak należy :)

@Vesim - niestety nie umiem używać inline'owego asm'a w gcc :v (składnia at&t, jakieś dziwne argumenty). Ale dzięki za sztuczkę z /FAs, już mi się nawet przydała :D

Skończ proszę się kompromitować. Jesteś nikim.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...