이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 19046|회답: 0

[윈폼] .net/c# 애플리케이션이 호출된 DLL이 위조로 대체되지 않도록 어떻게 보장하나요?

[링크 복사]
게시됨 2017. 10. 19. 오후 5:14:49 | | | |
최근에 소프트웨어를 작성하면서 아이디어가 떠올랐습니다. 만약 제가 프로그램을 잘 보호.exe 실행하는데, DLL이 보호되지 않으면 제 애플리케이션이 dll 파일을 사용하면, 다른 사람들이 그 dll 파일을 통해 제 프로그램을 디버깅하나요?

오늘은 특별한 프로그램을 작성해 테스트해보고, 애플리케이션을 사용해 DLL에서 메서드를 호출해 봅시다.



코드는 간단합니다:

DLL 코드:

앱 코드:



그 다음, 새 프로젝트를 만들고 새 클래스 라이브러리를 만들고, 같은 타입과 cs 파일을 복사합니다.



생성된 dll을 다음 그림으로 대체해 보겠습니다:



프로그램이 우리가 위조한 dll 메서드를 성공적으로 호출하는데, 생성된 dll이 위조되는 것을 어떻게 막을 수 있을까요?

간단한 아이디어가 떠올랐습니다. 애플리케이션에 리소스 파일을 추가하고, 로드할 dll 파일과 파일의 md5 값, 프로그램 실행의 진입 지점을 입력한 뒤, 먼저 로드해야 할 dll의 md5 값을 확인하는 것입니다

DLL 파일의 MD5 값이 리소스 리스트의 MD5 값과 일치하지 않는다면, 이는 DLL 파일이 위조되었거나 악의적으로 변조되었음을 의미합니다. 실제로 실제로 시도된 적은 없으며, 논리적으로 실현 가능합니다!




이전의:Winform 폼이 확장하는 스케일
다음:.net/c#은 자체 DLL이 위조되는 것을 방지하기 위해 강력한 서명을 사용합니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com