reversing.kr - CSHARP

2017. 10. 25. 00:54


reversing.kr CSHARP



C# 리버싱 문제다. 근데 툴로 디컴파일이 제대로 안된다. 쉽게 풀지 못하도록 해 둔 듯 하다. 






이 말은 반대로 디컴파일이 제대로 되지 않는 함수만 분석하면 된다는 뜻과 같다. 


보통 이런 문제는 동적 호출 등으로 실행 중에는 보여지도록 하는 경우가 많으니 디버깅을 하면서 살펴보려 했으나...


당 함수가 호출도 안되고 디버깅이 제대로 되지 않아 처음에 사알짝 헤맸다.




 자세히 살펴보니 method reflection (동적 호출) 을 하고 있어 디버깅이 되지 않는 것으로 확인했다.








.ctors 를 살펴보니 동적 호출하는 함수의 특정 바이트를 조작해주는 부분이 있었다. 





이 부분에 브레이크 포인트를 걸고 확인해 보자. 디컴파일이 되지 않던 메소드(MetMett, 동적으로는 Form1.bb) 의 바이트들을 전부 바꿔주는 것을 확인할 수 있다.



dnspy 에서는 어셈으로만 바꿔줄 수 있고 바이트 코드를 바로 고칠수가 없어서 그냥 헥스에디터 열어서 직접 바이트를 고쳐줬다.



위는 고치기 전, 아래는 바이트 코드를 실제 동적으로 수행되는 코드로 변경해준 상태.(디컴파일 잘된다 우왕)



이제 코드를 보고 키값을 코딩으로 뽑아주면 끝~



끝~!!


'wargame > reversing.kr' 카테고리의 다른 글

reversing.kr - CSHARP  (1) 2017.10.25
Reversing.kr - replace  (0) 2017.10.23
  1. Hakcer 2018.01.07 01:26

    안녕하세요, 문제 풀다가 모르는 게 생겨서 질문들 비니다.. 브레이크 포인트를 걸고 나서 Local 창을 보면 사진과 다르게 나오더라고요... 어떻게 bb에 대해 나왔는지 여쭤봐도 될까요..?

+ Recent posts