2016-07-22 1 views
0

소스가없는 C#으로 작성된 DLL이 있습니다. DLL을 수정하기 위해 다른 C# decompiler를 시도했지만 수정 사항을 사용하여 다시 컴파일하려고 시도 할 때 오류가 발생합니다. 따라서 IL 디 컴파일 제한 때문에 발생합니다. .cs 파일을 DLL의 루트에 순서대로 추가하거나 기능을 추가하는 방법을 삽입 할 수 있습니까? 추신 : 이것은 소프트웨어를 해킹하기위한 것이 아니라 DLL 수정이 필요한 게임의 모드를 만들기위한 것입니다.DLL에 C# 파일을 삽입하십시오.

+0

수정하지 않고 컴파일 해 보셨습니까? 그게 작동하면, 오류가 아마 당신의 추가에 놓여 있습니다. 그리고 모든 참조를 확인 했습니까? – derpirscher

+0

수정하지 않고 컴파일하면 오류가 발생합니다. 참조가 너무 많아 오류가 발생했는지 알 수 없습니다. – cgcmake

+0

컴파일 할 수 있으려면 올바른 빌드 구성을 설정해야하며 올바른 참조를 설정해야합니다. 그렇게하지 않으면 컴파일 할 수 없습니다. 어떤 오류가 있습니까? – derpirscher

답변

0

.NET Reflector에 대한 Reflexil 플러그인은 작성자가 video에 예시 한대로 메소드 또는 클래스를 DLL에 삽입 할 수 있습니다. 어셈블리에서 IL 코드를 삽입하기 때문에 디 컴파일 컴파일 오류를 방지합니다.

이 플러그인을 설치하려면 these steps을 따르십시오.

2

가장 좋은 방법은 dll 주위에 래퍼 프로젝트를 만들어 원하는 기능을 추가하는 것입니다. 귀하의 코드는 dll 대신 프로젝트를 참조 할 수 있습니다. 수업이 봉인되지 않는 한 당신은 그들로부터 상속받을 수 있어야합니다.

아마도 액세스 권한이없는 코드를 수정하는 것은 좋지 않습니다. 특히 dll이 미래에 업데이트 될 수 있다면.

1

동일한 네임 스페이스로 새 DLL을 만들 수도 있습니다. 이것은 마치 같은 위치에있는 것처럼 보일지도 모릅니다.하지만 네임 스페이스가 프로젝트/dll 이름과 일치해야하기 때문에 혼란을 줄 수 있습니다.

랩퍼가있는 벤자민의 솔루션은 합리적인 것처럼 보입니다.