나는 C#으로 컴파일 된 실행 파일을 가지고 있으며 어셈블러 코드에 코드를 덤프하고 싶습니다. 그렇게 할 수있는 도구가 있습니까? 또한 생성 된 어셈블러에서 실행 파일을 생성 할 수 있습니까?실행 파일에서 덤프 어셈블러를 만드는 방법
답변
C#은 어셈블러 수준까지 컴파일되지 않지만 동일한 중간 언어 (CIL)로 컴파일됩니다. 컴파일 된 C#은 통역사가 필요하며 항상 필요합니다. 컴파일 된 양식을 비 .NET 프로그램으로 복사 할 수는 없습니다.
을 "재 컴파일 할 수 있습니다. 컴파일 된 C#은 통역사가 필요합니다"- 기술적으로, 아니오. CIL은 VM을 필요로합니다 (심지어 보편적 인 법칙도 아니며 JVM 바이트 코드를 실행하는 틈새 CPU가 있고 CIL에 대해서도 가능해야합니다). C#을 CIL (예 : 원시 코드) 이외의 다른 것으로 컴파일하는 것이 가능합니다. 일부 런타임 (예 : GC의 경우, 이는 실행 파일에 정적으로 링크 될 수 있음)이 여전히 필요할 수 있습니다. 이것은 막대한 프로젝트 일 뿐이며 CIL을 사용하고 기존 구현과 JIT 컴파일러 (또는 AOT 컴파일이 필요한 경우 ngen)를 사용하는 것에 비해 거의 제로에 가깝습니다. – delnan
시작 시간이 가장 중요한 기본 이점입니다. Afaik NGEN은이 문제를 해결하기 위해 개발되었습니다. –
C#이 컴퓨터 코드로 컴파일되지 않거나 적어도 Microsoft C# 컴파일러가 컴퓨터 코드로 컴파일되지 않습니다. 그러나 ildasm을 사용하여 어셈블리와 같은 인쇄물에서 중간 언어 바이트 코드를 가져올 수 있습니다.
또한 CLR에서 J # 코드를 Just-In-Time 컴파일 할 수있는 방법을보고 싶다면 Mono를 사용하여 어셈블리 언어로 컴파일하십시오. 예는 website에 주어진 :
mono --aot program.exe
그런 다음 당신은 적어도 Cygwin에서 또는는 MinGW와 * nix에서 스크립트/맥 컴퓨터, 또는 Windows 시스템에서,이에서 어셈블리 언어를 얻을 수 -d objdump를 할 수 있습니다.
- 1. .m 파일에서 실행 .exe 파일을 만드는 방법
- 2. java.lang.Class가 jar 파일에서 덤프 됨
- 3. .sql 파일에서 데이터 덤프 추출
- 4. 어떤 어셈블러를 대상으로합니까?
- 5. 안녕하세요. Mac에서 x86 어셈블러를 사용하는 세계 0SX
- 6. SVN : "관련없는"파일에서 올바른 분기를 만드는 방법
- 7. 실행 파일에서 asynctask 호출
- 8. Eclipse에서 파일에서 프로그램 실행
- 9. 실행 파일에서 변수 확인
- 10. PDB의 파일에서 명령 실행
- 11. 배치 파일에서 rake 실행
- 12. 간단한 의사 어셈블러를 작성하려면 어떻게해야합니까?
- 13. C 객체 파일에서 실행 파일을 만드는 방법은 무엇입니까?
- 14. 여러 데이터베이스에서 마이그레이션 실행/스키마 덤프 오류
- 15. 스레드 덤프 분석 도구/방법
- 16. 클래스를 실행 파일에서 DLL로 내보내기
- 17. Dos 배치 파일에서 완고한 실행 파일 실행
- 18. 덤프 내용
- 19. 단일 실행 파일 VS 2010을 만드는 방법
- 20. AppleScript에서 실행 가능한 프로그램을 만드는 방법
- 21. xna에서 웹 사이트 실행 파일을 만드는 방법
- 22. 우분투에서 C 프로그램의 실행 파일을 만드는 방법
- 23. 메모리에있는 실행 파일에서 아이콘을 추출하십시오.
- 24. 하나의 실행 파일에서 패킷 스니핑
- 25. 실행 파일에서 배열을 추출하려면 어떻게해야합니까?
- 26. 로컬 파일에서 XMLHttpRequest 실행 허용
- 27. lighttpd의 PNG 파일에서 PHP 실행
- 28. 파일에서 입력으로 Java 프로그램 실행
- 29. 자식 실행 파일에서 gdb 실행하기
- 30. 잠김 파일에서 선택 규칙 실행
ildasm.exe를 사용하여 생성 된 IL을 확인하십시오. 그리고 예, ilasm.exe는 .exe –