You are on page 1of 16

EASY REVERSING

키워드들

• .NET
• C# VB
목차
I. 적을 알고 나를 알면 백전백승
II. 그 적의 이름은 유니티다
* 인사말
제작자 Dhhd

• 실습도구는 DNSPY
• 리버싱을 더공부하고 싶은분들에게
이번 리버싱 프레젠테이션은 쉽게 개발자에게 리버싱의재미를 느끼게하고 그리고 가능하다면
일반인에게도 리버싱의맛을 느끼기 위해 제작하였습니다
리버싱은 즐겨야하지만 악용을 하면 안됩니다
이번것은 쉽기떄문에 더더욱 악용을 하면 안됩니다
악용하면 나쁜사람입니다
악용하면 싫어합니다
악용하지마세요
제발 악용하지마세요(진지한 궁서체)
모든 예제는 https://github.com/pec2016/EASY_REVERSING 에서 다운로드 할수있습니다
제작자 Dhhd

Writing by Dhhd 3
1 EASY REVERSING
I. C#

• LEVEL 1

Writing by Dhhd 5
1 EASY REVERSING
I. C#

• 디버거로보면 kernelbase.dll 으로 분석하기 어렵다

Writing by Dhhd 6
1 EASY REVERSING
I. C#

• DNSPY로보면 소스코드가 보인다

Writing by Dhhd 7
1 EASY REVERSING
I. C#

• 왜 소스코드가 보일까?
컴파일 과정에서 C언어나 C++ 처럼 어셈블리어로 변환되지않고
중간언어인 IL언어로 바뀌기 떄문에 이 IL언어는 디컴파일을 통해 소스코드와 거의 흡사하게 뽑을수있다

Visual Basic : VB decompiler


Delphi : DeDe
C : HexRays
.NET (C #) : dotPeek , dnspy, ilspy, .net reflector
범용 : 기드라

Writing by Dhhd 8
1 EASY REVERSING
I. C#

• 총정리 C#으로 만들어져서 DNSPY로 디컴파일이 된다면


소스코드를 봐서 사용할수있다

Writing by Dhhd 9
2 EASY REVERSING
II. Unity

• 유니티

Writing by Dhhd 11
2 EASY REVERSING
II. Unity

• 유니티는 리소스를 배치하고 C#스크립트를 통해 작동한다


우리는 리소스가 아니라 C#코드를 보고 그 코드를 바꾸어서 크랙을 할것다
LEVEL 2/REVERSING_UNITY_Data/Managed/Assembly-CSharp.dll
이 DLL에 핵심코드가있다.

Writing by Dhhd 12
2 EASY REVERSING
II. Unity

• 저렇게 원하는게 나와서 써도되고 아니면 소스코드를수정해도된다


밑에 코드같은경우 FLAG 리소스의 위치를 바꾸기떄문에 이걸 삭제해서
실행하면 리소스가 재대로 보인다.

그리고 spin안에 Update도 삭제하것나 캡쳐후 그림판으로보면된다


그림이 돌아가는건 캡쳐찍으면된다

Writing by Dhhd 13
2 EASY REVERSING
II. Unity

• 사실상 C#이나 Dnspy로하는건 너무 쉬워서 더 이상 알려줄것이 없다


유니티게임이나 그런것도 .Net덕분에 이렇게 쉽게할수있지 다른 게임엔진들은
안될수도있고 뭐 그렇다
사실상 소스코드를 저정도로 디컴파일이 가능하기때문에 이렇게 쉽게할수있다
이건 초보자나 유니티 개발자 아니면 C#개발자가 조금더 쉽게 리버싱을
시작할수 있게 도와주는 PPT다

이 지식을 악용하려고마라

Writing by Dhhd 14
2 EASY REVERSING
II. Unity

• 물론 저정도로 유니티나 그런것들이 쉽게 크랙은 되지않을것이고


할것면 유니티로 직접개발해서 혼자 개발하고 뜯으면서 하것나
C#공부를 하면서 같이 하면 좋다

뭐저것도 나중에가면 암호화 해독 등등의 보안들이 나오고 안티들이 많지만


기본이라면 저건 너무 쉬운 리버싱이다

Writing by Dhhd 15
Q & A

You might also like