가끔 .net으로 프로그래밍된 것을 볼때가 있다.

OllyDbg로 디버깅 하려고 Dll을 열어봤는데 OTL(털썩) 이건 뭔지...

그래서 도전하기로 했다. IL Dasm 고고싱~

역시 MSDN에는 튜토리얼이 나와 있었다.

Ildasm.exe Tutorial
http://msdn.microsoft.com/en-us/library/aa309387(VS.71).aspx

MSIL Disassembler (Ildasm.exe)
http://msdn.microsoft.com/en-us/library/f7dy01k1(VS.80).aspx(영문판)
http://msdn.microsoft.com/ko-kr/library/f7dy01k1(VS.80).aspx(한글판)

방법: 어셈블리 내용 보기
http://msdn.microsoft.com/ko-kr/library/ceats605(VS.80).aspx

Reverse Engineering To Learn .NET Better
http://www.blong.com/Conferences/DCon2003/ReverseEngineering/ReverseEngineering.htm


자 그럼 ildasm.exe를 받아야 하는데... 설마 .net SDK를 다 받으란 말인가?

결국 MS에서 다운 받았다.(354MB)
http://www.microsoft.com/downloads/details.aspx?FamilyID=fe6f2099-b7b4-4f47-a244-c96d69c35dec&displaylang=en

다운의 압박이 끝나고 설치를 완료하니 ILDASM.exe를 찾을 수 있었다. ㅎㅎ
118kb짜리 다운로드 받기 위해서 무려 354MB를 다운 받을 수 밖에 없었다.(T_T MS의 압박)

ildasm.exe는 찾았는데... ilasm.exe가 없네.. 쩝..
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ilasm.exe" 여기에 있었구나!!

자 이제 다 찾았으니 리버스 엔지니어링 좀 해볼까?

xxx.dll 파일을 xxx.il로 다음과 같이 출력한다.
ildasm.exe xxx.dll /output:xxx.il

그러면 해당 폴더에 리소스 파일 + xxx.il 파일이 생기는 것을 볼 수 있다.
우리는 notepad로 xxx.il 파일을 수정한 후
 
ilasm /dll xxx.il

이렇게 Cmd 명령을 입력하면 xxx.dll이 출력된다.

흐흣. .net 리버스 엔지니어링도 결국 어려운게 아니었다. 
2008/07/08 23:33 2008/07/08 23:33

덧글을 달아 주세요