VS2010에서 프로그램을 작성하고 있습니다. 빌드 대상은 .NET 4입니다. DEP 호환성 플래그가 기본적으로 설정되어 있다고 생각합니다. 그게 사실이야? .NET은 기본적으로 ASLR과 호환되며 내 프로세스에서 ASLR이 기본적으로 설정되어 있습니까? 아니면 런타임에 요청해야합니까?
테스트 '크래시'의 경우 운영 체제가 DEP 위반 사항을 이벤트 로그에 기록하는 방법을 보려면 작은 델피 코드가 필요합니다. DEP 활성화와 관련된 많은 출처를 발견했지만 DEP 위반을 '트리거하는'방법에 관한 정보는 없습니다. 예가 있습니까? 관련 질문 : 생성 된 실행 파일의에서 procedure DoJump(Address: Pointer);
asm
LLVM-5.0 사용 런타임에 32 비트 정수 "42"를 반환하는 함수에 대한 어셈블리를 생성하고 실행하는 최소 테스트 케이스를 구현했습니다. Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7ff5000 in ??()
내 작업 이론이 메모리 페이지 LLVM 쓴 것입니다 기능 수율을 호
Windows 7 Ultimate 64 비트를 실행하고 있습니다. 저는 남아프리카 공화국 (TELKOM)의 주요 텔레콤 서비스 제공 업체가 출시 한 dll을 호출하는 Windows 서비스 (C#으로 작성)를 보유하고 있습니다. dll은 MPIEst.dll이라고하며, C++로 작성된 것 같습니다. 링크 (http://social.msdn.microsoft.c
어떻게 프로그램을 격리하고 보호 할 수 있는지 이해하려고합니다. 프로세스가 메모리 페이지에 PROT_WRITE |PROT_EXEC을 필요로하는 유효한 경우가 있습니까? 피할 수 있습니까? 이것은 NX 비트 또는 W^X 또는 DEP가 달성하려고했던 것과 반대입니다. 리브레 (Libre) 사무실이이를 사용하고 있으며 강화 된 리눅스에서 많은 문제를 일으키는 것
.Net 프로그램에 심각한 문제가 있습니다. 원시 DLL을 호출 한 다음 원시 메소드를 찾을 수 없어 즉시 충돌합니다. 이것은 우리가 이전에 보았던 행동입니다. C# 컴파일러는 무한한 지혜로 프로그램이 DEP와 호환된다는 플래그를 설정합니다. 즉, 명백히 그렇지 않은 네이티브 DLL을 호출하더라도 마찬가지입니다. 이 빌드에는 빌드 단계에서 플래그가 DEP