실행 파일을 분해 할 수 있도록 어셈블러에 대해 알아야합니까? 프로그램이하는 일을 이해하고 있습니까? 고맙습니다.실행 파일을 디스 어셈블하려면 어셈블러에 대해 알아야합니까?
1
A
답변
3
실행 파일을 분해 할 수 있도록 어셈블러에 대해 알아야합니까?
아니, 필요한 것은 디스어셈블러/디버거입니다.
무엇이 프로그램을하고 있는지 알고 계십니까?
예. 디스어셈블러가 디스 어셈블리를 생성하면 디스 어셈블리를 읽는 방법과 다양한 명령어가 수행하는 작업을 알아야합니다. 어떤 레지스터가 존재하는지, 메모리 모델이 무엇인지, 어떤 특수 함수 레지스터가 존재하는지 등과 같은 CPU 아키텍처에 대해서도 이해해야합니다. 또한 실행 파일이 실행중인 운영 체제에 대한 기본적인 이해가 있어야합니다 (보호 된) 운영 체제 계층으로의 특정 서브 루틴 호출 또는 호출을 이해합니다.
이 모든 것은 시스템에 따라 다릅니다. 좋은 시작점은 일반적으로 아키텍처에 대한 섹션과 명령어 세트를 설명하는 참조 섹션이 포함 된 구체적인 CPU의 데이터 시트/매뉴얼입니다.
0
해체 된 프로그램을 읽는 방법에 대한 해결 방법이 있습니다. IDA 디스어셈블러를 사용하는 경우 이전에 캡처 한 원시 어셈블리에서 C 스타일 코드를 작성할 수있는 HexRays 플러그인을 적용 할 수 있습니다 (관심있는 함수 코드를 열고 F5 키를 누름). 어셈블러를 전혀 모른다면 유용 할 수 있습니다. 그러나 제 경험에 따르면 HexRay는 완벽하지 않으며 때때로 잘못된 C 스타일 코드를 생성 할 수 있으며 때로는 코드를 생성하지 못할 수도 있습니다. 그래서 이것으로 인해 코드 분석에서 보조 도구로만 사용합니다. 그러나 어셈블러를 전혀 모르는 경우에는 어셈블러를 사용하려고 할 수 있습니다.
관련 문제
- 1. Intel AT & T 어셈블러에 대한 단계별 실행?
- 2. 개체와 실행 파일의 디스 어셈블리의 차이점
- 3. 코드 액세스 보안 (CAS)에 대해 알아야합니까?
- 4. 이벤트에 대해 얼마나 많은 이벤트 처리기를 알아야합니까?
- 5. Eclipse for PHP, 지원 파일을 알아야합니까?
- 6. 어셈블러에 출력이 표시되지 않았습니까?
- 7. 인라인 어셈블러에 대한 질문
- 8. objdump가 사용하는 디스 어셈블리 라이브러리
- 9. x86 어셈블러에 포함 된 리소스와 특정 VERSIONINFO 정보로 Win32 PE 실행 파일을 만들려면 어떻게해야합니까?
- 10. 모든 종속성을 풀지 않고 Maven으로 콘솔 애플리케이션을 어셈블하려면 어떻게해야합니까?
- 11. 구조체 오프셋 특성을 어셈블러에 부여하십시오.
- 12. 모바일 앱을 만들기 위해 웹 애플리케이션 개발에 대해 알아야합니까?
- 13. 웹 프레임 워크를 사용하기 전에 JSP에 대해 알아야합니까?
- 14. 어셈블러에 대한 문서는 어디에서 찾을 수 있습니까?
- 15. Visual Studio Express 및 매크로 어셈블러에 포함됩니다.
- 16. OpenCV를 사용하기 위해 Python을 알아야합니까?
- 17. 가장 빠른 디스 큐 알고리즘?
- 18. 테스터는 어떤 개념을 알아야합니까?
- 19. 루프에서 실행 파일을 실행
- 20. Visual FoxPro 9.0 exe 파일을 디스 어셈블 할 수 있습니까?
- 21. hsqldb에 대해 즉시 실행
- 22. cpp 파일에 대해 xcode에 새 실행 파일을 추가하는 방법은 무엇입니까?
- 23. Makefile - 폴더 내의 각 .c에 대해 실행 파일을 만듭니다.
- 24. GCC는 메르 센 프로그램에 대해 매우 큰 실행 파일을 출력합니다.
- 25. 동일한 프로젝트에 대해 두 개의 실행 가능 jar 파일을 만드시겠습니까?
- 26. 전처리기를 flex + bison 어셈블러에 어떻게 추가해야합니까?
- 27. Java에서 다형 적으로 디스 패칭
- 28. 디스 어셈블 된 코드 읽기
- 29. VS2005 디버거 디스 어셈블리 창
- 30. 커널 스레드 디스 패칭이란 무엇입니까?
우리가 말하는 CPU 또는 명령어 세트 아키텍처는 무엇입니까? – Jens