'과거의 컴퓨터 공부/reversing.kr'에 해당하는 글 3건

반응형

쉬운 문제가지고 이상한데서 헤매가지고 3시간을 날려먹엇네요 


문제입니다 

Easy_UnpackMe.zip

압축해제해서 보면 OEP를 찾으라는 문제임을 확인할 수 있습니다 


UPX 언패킹 해보신 분들이라면 정말 쉽게 풀 수 있는 문제였습니다 


우선 문제를 실행하면 


정말 아무것도 안나옵니다 오로지 OEP를 찾게 하기위한 문제임을 알 수 있습니다

그러면 이제 문제로 들어가서 트레이싱 하다보면 무한루프에  2번(총3번) 빠지게 됩니다 (Animate Over를 사용하였습니다) 

각 다음 라인에 브포를 걸어주고 넘어가다보면 끝문장에서 한번더 루프에 걸리게되는데 문제의 부분입니다 

어떤부분이 OEP 부분으로 들어가게 되는지  UPX 언팩해보신들은 쉽게 보이실 겁니다(브포 걸어논 부분은 맨 마지막 부분입니다 ) 

OEP라는것이 UPX의 경우에는 PUSH AD/ POP AD 와 동반되는 JMP 부분을 찾으면 되지만,

이 패킹문제에서는 그런 부분은 볼수가 없엇고, 마지막에 어디로 점프하는지를 찾는 문제였습니다 

따라서 00401150이 답이됩니다 

반응형

'과거의 컴퓨터 공부 > reversing.kr' 카테고리의 다른 글

[Reversing.kr]Easy_Keygen (100p)  (0) 2014.07.31
[reversing.kr] Easy_crackme (100p)  (0) 2014.07.30
,
반응형

txt파일은 제가문제 풀면서 푸는 도중에 정리한 것입니다 

easy_Keygenme by symnoisy.txt

Easy_KeygenMe.zip


제가 좀 무식한 방법으로 푼거 같긴 합니다.. 다른 분들 푼거를 조금 찾아봐야 할것같습니다 

맨처음에는 제아이디를 넣엇을때원하는 serial을 찾는 것인줄 알고 왜안되나 햇는데;; (readme안읽고 바보같이)

readme읽어보니까 제시된 serial이 나오게하는 NAME을 찾는 문제였습니다 

우선 먼저 파일을 실행하게 되면


이런식으로 Name 을 먼저 물어보게 되고,  Serial 을 넣게되면 틀렷을때는 wrong , 맞으면 Correct! 라는 문구를 뱉어주게 됩니다 

여기까지 어떻게 했는지 살펴봅시다

맨처음 문제에서 흰트를 얻은 것은  Name을 입력하라는 것과 Serial을 입력하라는 부분입니다 따라서,

Serial 부분을 입력하였을때 비교하는 부분에 브레이크를 걸어주고, ESP에 들어가는 값을 확인해주면 됩니다

(쉬운 문제여서 따로 첨부안해도 알아서 접근하실 수 잇을거라 생각합니다) 

개노가다로 풀었는데, 위의 풀면서 제가 쓴 텍스트 파일을 참조하시면 될것 같습니다. 

반응형

'과거의 컴퓨터 공부 > reversing.kr' 카테고리의 다른 글

[Reversing.kr] Easy Unpack (100p)  (0) 2014.08.07
[reversing.kr] Easy_crackme (100p)  (0) 2014.07.30
,
반응형

Easy_CrackMe.exe


실행을 먼저해보면 다음과같이 키를 물어보는 창이 뜨게됩니다

당연히 올바른 키값을 넣게된다면 올바르게 넣었을때 뱉어주는 문구가 나오게 될테고, 실패했을때는 실패했을때 

뱉어주는 문구가 나올겁니다. 


디버깅을해서 조금 살펴보면  


성공문과 실패문이 보입니다 실패문의 첫부분을 눌러보게 되면  cmp문에서 분기되는 부분이 보입니다  cmp문

에서의 ESP값(0x12FCA0)을 따라가보면 우리가 입력햇던 값들이 보입니다. 다시 cmp문을 보면,  esp+5값 

즉 우리가 입력한 값과 0x61(아스키값 a)와 비교하고있습니다 (왜 두번째 값이냐 하면, ESP가 가리키는 곳에서 

차례대로 카운트해보면 이해가 될겁니다.)

정리해보면 -a----------(앞에 입력한 한자리와 두번째자리가 a라는 값을 제외하고는 아직은 뒤에 몇글자가 나오는지는 알수없습니다.)

바로 다음에 나오는 JNZ의 경우는 답이아닐때 실패문을 뱉는거니까 무시하고, 다음 명령어를 보면

LEA ECX, DWORD PTR SS:[ESP+A]가 보입니다

위에서 봣듯이 마찬가지로 이부분도 키값을 물어보는 부분인데 [ESP+A] 부분은 a다음 위치를 가리키고, 

오른쪽에 노골적으로 아스키값이 5y라고 보여주고 있습니다

따라서, 


-a5y ----

뒤에부분에 아스키 값으로 보이는 R3versing은 5y 부분뒤의 실패문으로 분기되는 부분 바로다음에 그냥 PUSH 가 됩니다 따로 설명할 것없이


-a5yR3versing 이 됩니다 

뒤를 쫙 살펴보면 따로 추가되는 부분은 없어보이고, 우리가 알지못하는 가장 첫번째 부분단어를 비교하는 부분

이 나옵니다(0x40110D) 

이부분은 첫번째 문자열 값과 0x45(아스키값 E) 와 비교하는걸 볼수 있습니다 따라서 

Ea5yR3versing 이라는 문자열을 입력하게되면, 


다음과 같이 답이 됩니다. 

반응형

'과거의 컴퓨터 공부 > reversing.kr' 카테고리의 다른 글

[Reversing.kr] Easy Unpack (100p)  (0) 2014.08.07
[Reversing.kr]Easy_Keygen (100p)  (0) 2014.07.31
,