2011-01-10 4 views
1

정확히 하나의 어셈블리 명령어 코드를 얻는 방법은 무엇입니까?정확히 하나의 어셈블리 명령어의 기계 코드를 가져 오는 방법은 무엇입니까?

예를 들어 "mov eax 0x14". 나는 gcc 또는 gdm을 사용하여 리눅스 터미널에 설치하고 싶다. radare2 패키지에서

+1

오히려 "GDM"이 아닌 "GDB"을 찾으시는 것입니까? 또한 언어를 지정하지 않았습니다. C에서 인라인 asm을 원하나요? –

+0

나는 그것을 전혀 얻지 않는다. – fancyPants

+0

물론 나는 gdb를 의미했습니다. 인텔 표기법을 컴퓨터 코드로 변환하고 싶습니다. 예를 들면 다음과 같습니다. "nop"-> "0x90" gdb에서 메모리를 검사 할 수는 있지만 예상했던 가장 간단한 방법은 아닙니다. 출력은 (하나 이상의) 16 진수 또는 이와 유사한 시퀀스 일 수 있습니다. – ninjaaa

답변

6
$ echo "mov eax, 0x14" | as -o /dev/null -al -msyntax=intel -mnaked-reg 
GAS LISTING    page 1 


    1 0000 B8140000 mov eax,0x14 
    1  00 
+0

고마워, 지금은 나쁜 OS 아래에서 일하고있다.)하지만 몇 시간 후에 확인해 보겠다. – ninjaaa

+0

(gdb) disas/r 메인은 내 응용 프로그램에서 꽤 잘 작동하지만 mingw에서 gdb로 이것을 시도하고 "disas/r "은 효과가 없었습니다 - 재미있었습니다 - 왜? 리눅스에서는이 문제가 없습니다. – ninjaaa

관련 문제