2010-07-08 3 views
6

많은 사람들이 이전의 DOS 프로그램 인 - 디버그를 떠 올릴 수 있습니다. 여러면에서 구식이긴하지만 좋은 점 중 하나는 프로그램 작성, 컴파일, 디스 어셈블, 파일 내용 검사 등의 과정을 거치지 않고도 주어진 명령에 대한 바이트 시퀀스를 쉽게 찾을 수 있다는 것입니다. 명령을 입력 한 다음 명령 주소를 덤프하십시오. '디버그'는 유감스럽게도 32 비트 명령어를 수행하지 않습니다.32 비트 x86 어셈블리 용 DOS 디버그 프로그램과 유사

누구나 32 비트 x86 명령어와 비슷한 기능을하는 도구를 알고 있습니까? 나는 전체 컴파일 과정을 거치고 싶지 않다. 난 그냥 몇 가지 지침을 입력하고 명령의 길이와 그 바이트 순서를 낼 수 있어야합니다.

+0

흥미로운 질문!. 왜 "디버깅"에 태그를 지정하지 않습니까? – pmod

+0

언급 할 때까지 '디버깅'태그를 추가하지 않았습니까? 고맙습니다. – Sparky

답변

4

DOS debug 대화 형 어셈블러뿐만 아니라 디버거이었다 (... 내가 링크 된 버전이 포함되어 있는지 확인하지 않은하지만) 명령 줄 디버거를 의미 CDB, 이름 하나를 포함, 어셈블리 코드를 입력하면 해당 라인이 즉시 머신 코드로 변환됩니다. 이는 머신이 버려진 것입니다.

스크립트 나 배치 파일을 사용하여 자주 사용하는 어셈블러를 자동화하면됩니다.

opcode() { 
    echo $* > tmp.S && nasm tmp.S -o tmp.o && od -x tmp.o 
    rm -f tmp.o tmp.S 
} 

이 초 미만 걸린다 :

는 여기에 내가 2 분에 인기 nasm 어셈블러를 사용하여 함께했다 떠들썩한 기능입니다. 호출은 다음과 같이 보입니다 :

$ opcode mov eax, [ebx] 
0000000 6667 038b 
0000004 
$ opcode fadd st0,st1 
0000000 c1d8 
0000002 

훌륭하지만 훌륭하게 출력하려면 od 명령 줄을 조정할 수 있습니다. 이 아이디어는 간단한 바이너리 출력 형식을 사용하도록 명령하는 한 모든 명령 행 어셈블러에서 작동해야합니다.

+0

고마워요! 너 락! – Sparky

1

몇 가지 간단한 32 비트 명령 행 디버거가 있습니다. 귀하의 설명에 따라 OllyDbg 귀하의 요구에 잘 맞을 수도 있습니다. 적어도 일부 버전의 마이크로 소프트의 Debugging Tools for Windows

+0

흥미 롭습니다. 그것이 나의 목적에 어울리는지는 아직 확신 할 수 없지만, 나는 아직도 그걸 가지고 놀고있다. 제안 해 주셔서 감사합니다. – Sparky

관련 문제