2009-11-23 5 views
3

간단히 말해서, VSS는 코드 변경을 허용하지 않기로 결정했습니다. 나는 다시 쓰기를 원하지 않는 알맞은 크기의 기능을 놓치고있다. (지난 여름 직장 협동 조합에 줬다.) 그것은 훌륭하게 작동하며 고객이 원하는 것을 수행합니다. 그러나 ... 나는 기계를 가지고 있지 않으며 기계가 개발 된 이후로 낮은 곳에 포장되어있다!미리 컴파일 된 ASP.NET 웹 사이트에서 소스를 가져 옵니까?

Do'h!

우리는 Visual Studio에서 직접 테스트 환경에 사이트를 게시 한 다음 파일을 제작에 복사했습니다. 그래서 VS에서 "컴파일 된"파일을 게시합니다.

어떻게 코드로 다시 가져갈 수 있습니까? 나는 그것이 어떤 DLL인지 알아낼 수 있다고 확신한다. 반사경과 같은 것이 내 최선의 방법이라고 생각한다. 원래 변수 이름이 유지됩니까?

+0

거의 확실하게 불가능합니다. 바이트 코드에서 코드를 재구성하려는 경우가 아니라면. – Earlz

+1

리플 렉터가 최선의 방법입니다. – Jason

+0

나는 모든 것을 필요로하지 않는다. 단지 약간. 웹 사이트는 실제로 아주 작고 그것에 많이 가지지 않습니다. 어쨌든 시작하는 것보다는 아마도 나아질 것입니다. – bdwakefield

답변

8

.NET 리플렉터를 사용합니다. PDB 파일과 DLL이있는 경우 원래 변수 이름이 보존됩니다 (obfuscator를 실행하지 않았다면).

+0

일치하는 pdb가 없으면 IIRC (메소드) 변수 이름이 존재하지 않습니다. –

+0

공정한 - 충분히 그가 pdb를 가지고있다! ;-) –

+0

Re comment : 이제 pdb를 삭제하고 다시 시도하십시오 ... –

4

나는 당신의 컴파일 된 코드를 반영하고 그것을 읽을 수있는 방법을 보려는 것이 좋습니다.

http://www.red-gate.com/products/reflector/

+0

반사경이 잘 작동합니다. 컴 파일 된 코드를 탐색 할 때 표시 할 C# 또는 VB를 지정할 수도 있습니다. – Chris

1

반사경 모든 방법. 로컬 변수 이름은 실제로 존재하지 않으므로 (필드 만 이름을 유지하므로) 로컬 변수 이름에 의존 할 수는 없지만 일치하는 pdb를 사용하면 도움이 될 수 있습니다. 리플렉터 pro/EAP 버전을 사용하는 경우 작업을 수행해야합니다 (전체 C# 디스 어셈블리 등을 생성하므로 메소드 별 메소드를 사용하거나 플러그인을 사용할 필요가 없습니다).

물론 각 디렉토리를 별도로 볼 필요가있을 수 있습니다.

1

최상의 컴파일러는 http://www.red-gate.com/products/reflector/과 같습니다. 변수 이름과 주석을 잃어 버릴 것이지만, 당신이 얻는 것은 컴파일 될 것입니다.

흠모하지만 처음부터 다시 시작하는 것이 좋습니다.

0

나는 비슷한 문제가있어서 Reflector를 사용하여 디 컴파일했다. 소스 코드를 얻은 다음 원하는 비트를 변경하고 다시 빌드합니다. 그런 다음 해당 dll을 프로덕션 사이트로 다시 복사했습니다. 그것은 나의 변화를 반영하기 시작했다. 사전 컴파일 된 사이트에는 모든 페이지에 대해 dll이 있었고 업데이트 가능하므로 dll에 코드 숨김 파일 만 있었기 때문에 매우 쉽고 전혀 어렵지 않았습니다. 참고로

는 :