C#은 Java와 매우 유사한 점을 가지고 있는데, 그 중 하나가
Java는 JVM,
C#은 .NET위에서 프로그램이 동작 된다는 것이다.
Java는 작성된 소스 코드를 가상머신(JVM)이 이해할 수 있는 바이트 코드로 컴파일하여 사용한다.
C#은 작성된 소스 코드를 가상머신(.NET CLR)이 이해할 수 있는 CIL문법의 바이트 코드로 컴파일하여 사용한다.
C언어처럼 CPU마다 전부 다른 바이너리코드로 컴파일 되는게 아니라
JVM이나 .NET을 사용하는 언어들은 하나의 바이트코드로 컴파일 된다 이 바이트 코드를 운영체제나 CPU별로 JVM이나 .NET이 다시 컴파일 해주는 것이기 때문에 한 종류의 바이트코드만 있으면 거의 99% 원본 코드로 디컴파일이 가능하다.
자바는 전에 올렸던 자바 디컴파일러 글을 참고 해주고,
2022.03.11 - [안드로이드/APK 분석] - JADX를 사용하여 안드로이드 악성코드 분석하기
JADX를 사용하여 안드로이드 악성코드 분석하기
첫번째로 APK 와 ZIP의 압축 방식은 동일하다. 확장자만 다를 뿐이다. 그렇기 때문에 확장자 .apk를 .zip으로 바꾸어압축 해제를 해도 파일이 깨지거나 안보이는 경우는 없다. 두번째로 안드로이드
wonlf.tistory.com
오늘은 dotPeek을 사용할건데 그냥 JADX하고 거의 비슷하다.
https://www.jetbrains.com/ko-kr/decompiler/
먼저 dotpeek을 설치하고 C# exe파일을 열게되면,
이런식으로 코드 전부를 확인할 수 있다.
프로젝트 이름에 우클릭을 하면...
비주얼 스튜디오로 프로젝트를 Export할 수도 있다.
당연하게도 C#개발 환경은 구축이 되어 있어야 Export해서 사용할 수 있다.
'도구' 카테고리의 다른 글
JADX를 사용하여 안드로이드 악성코드 분석하기 (0) | 2022.03.11 |
---|
최근댓글