원래 32 비트 Exe 네이티브 코드 래퍼로 보호되는 메모리에로드 된 Pure C# 어셈블리 실행 파일의 덤프를 막을 수있는 방법이 있습니까?Packed .Net 실행 파일의 메모리 덤프 방지?
답변
@ 하산은 메모리 덤프를 막을 수있는 방법이 없다고 말하고 있습니다. 그러나 여기에는 더 깊은 문제가 있다고 생각합니다. C# 어셈블리에 대해 "원래 은 32 비트 Exe 네이티브 코드 래퍼로을 보호했습니다."(강조 광산), C# 어셈블리 자체의 내용을 누군가가 검사하지 못하도록하려는 것 같습니다.
다른 사람이 어셈블리에 손을 대면 곧 열어서 더 자세히 알 수 있습니다. 예를 들어, 그들은 dotPeek 또는 ILSpy을 사용하여 C# 소스 코드로 디 컴파일 할 수 있습니다. obfuscator를 사용하면 이러한 도구를 사용하는 사람의 삶을 더 어렵게 만들 수 있지만 난독 화만이 지금까지 진행됩니다.
결론은 누군가 다른 사람이 사용할 수있게하면 손에서 벗어났습니다. 누군가 다른 사람이 귀하의 코드를 디 컴파일하여 토렌트 사이트에 게시 할 것입니다 (어쨌든 무료가 아닌 경우). 코드에 암호를 디 컴파일하고 일반 텍스트로 암호를 읽을 수 있으므로 코드에 암호 데이터베이스 암호를 넣지 마십시오. 서버에서이 코드를 실행하더라도 코드에 암호를 넣지 마십시오. 이유는 다른 SO 대답 here에 설명되어 있습니다.
N.B. 소프트웨어 배포를 시작하면 다른 사람이 실행 파일에 디버거를 부착하는 것을 막을 수있는 방법이 없으므로 런타임 정보를 검사하기 위해 메모리 덤프가 필요하지 않습니다.
메모리 덤프를 방지하는 어리석은 방법은 없습니다. secure strings에 값을 입력 할 수 있습니다. 누군가 메모리 덤프를 걸면 암호화 된 것입니다. 그들은 그것을 이해할 수 없을 것입니다.
보호 된 프로세스로 실행되는 Windows 드라이버를 작성하십시오. 이 드라이버를 통해서만 프로그램을 실행하고 보호 된 프로세스로 실행하십시오.
이렇게해도 바이러스 백신 프로그램도 프로그램 메모리를 검사 할 수 없습니다. 이는 보호 된 프로세스의 openprocess 또는 readprocessmemory를 호출하려고 시도한 것처럼 액세스가 거부 될 것입니다.
여기에서 가장 중요한 문제는 드라이버가 Windows 인증 드라이버 여야하며이를 달성하는 데 시간이 많이 걸리는 것입니다.
또한 보호 된 프로세스 드라이버가 프로그램을 호출했는지 확인하고 프로그램을 여는 데 실패하지 않았는지 확인하는 방법을 구현해야합니다. 이런 종류의 수표는 쉽게 제거 될 수 있습니다.
- 1. MIPS 메모리 실행 방지
- 2. .NET app.config 파일의 configSections 방지
- 3. 단일 실행 파일의 다중 프로세스 인스턴스 방지
- 4. .NET 실행 파일의 SQL 편집
- 5. 메모리 덤프 복원
- 6. 프로세스의 덤프 메모리
- 7. 실행 파일의 변수를 메모리 세그먼트에 매핑
- 8. .NET 객체 덤프
- 9. .Net 메모리 덤프 :! eeheap -gc : GC 생성은 어디에서 시작하고 끝나나요?
- 10. WinDbg를 사용하여 .NET 덤프 분석
- 11. .NET 객체 실행 가능 명령어 메모리 소비?
- 12. 분석을위한 도구. 닷넷 애플 리케이션 메모리 덤프
- 13. pcap 덤프 파일의 패킷 필터링
- 14. 덤프 파일의 데이터를 잘라 내기
- 15. 메모리 부족시 힙 덤프 오류
- 16. 16 진수 덤프 메모리 위치에서
- 17. Android 메모리 부족 방지
- 18. AJAX 메모리 누수 방지
- 19. Packed COBOL 변환
- 20. windbg를 사용한 .NET 덤프 분석
- 21. .NET MVC 덤프 경로 표
- 22. .NET : 방지 XmlDocument.LoadXml DTD
- 23. gdb - 실제 메모리 덤프 파일이있는 커널 디버깅
- 24. Windows 서비스의 데이터 실행 방지
- 25. 확장자가없는 PHP 파일의 리디렉션 방지
- 26. 단일 js 파일의 캐싱 방지
- 27. 실행 파일의 런타임 무결성 검사
- 28. 메모리 매핑 파일의 경로를 가져올 수 있습니까? (.NET 4.0)
- 29. mysql 덤프 파일의 인코딩을 변경하는 방법
- 30. Oracle 내보내기 덤프 파일의 내용을 나열하십시오.
동일한 문제가 있습니다. 해결책을 찾았습니까? –