본문 바로가기

[레나 튜토리얼] FINAL 본문

보안/악성코드

[레나 튜토리얼] FINAL

Seongjun_You 2022. 4. 2. 15:13

이번에도 스크립트를 준다

해당 프로그램을 시작하면 알 수 없는 코드로부터 시작되는데

IAT테이블을 먼저 확인하도록 했다.

 

ReadFile을 참조하는곳을 분석하기로 했다.

 

첫 번째로 이동한 후 함수의 시작 부분을 보면 nop 처리되어있다.

 

재시작하면 원래 코드가 있었다는 것을 알 수 있다.

일단 해당 주소를 호출하는 곳으로 이동했다.

 

이 부분으로 이동하고 bp를 걸어준다.

해당 프로그램을 실행하고 나면

 

이런 식으로 코드가 변형되어있다.

어딘가에서 해당 부분을 패치한 것으로 보인다.

 

패치가 시작된 부분부터 참조 주소를 확인했다.

 

역시나 참조하는 주소가 있다

 

어떠한 분기문에 따라 패치를 진행하게 된다.

다른 주소도 확인해보았다.

 

패치가 진행이 된다.

 

패치가 진행되지 않게끔 무한루프를 돌려주었다.

이렇게 패치를 해주면 40495f 40495a에서 무한루프가 돌려진다.

패치를 해주고 다시 디버거와 어태치를 해주었다.

 

무한루프가 도는 상태에서 new origin here로 eip를 변경해주었다.

라이센스 루틴으로 의심되는 함수인 404966으로 info 해준다.

 

쭉 이동하면 lena151이라는 파일을 사용하는 것을 알 수 있다.

 

파일을 만들어주었다.

참고로 길이는 0c이상으로 만들어주어야 한다.

길이를 검사하는 부분도 포함되어 있다.

 

 

쭉 이동하고 해당 부분에서 넘어가져야 되는데

나는 확률적으로 잘되지 않아서

정신이 나갈 뻔했다.

그 이유는 처음 new origin here을 걸 때

바로 함수 부분으로 걸어서 계속 삽질을 했다.

-스택에 영향이 가지 않는 곳에 eip를 바꾸자...!!

 

401b96은 보통 배드 루틴을 빠지기 때문에 가급적

루트를 타 주면 안 된다.

 

이 부분도 타지 말자

 

 

 

이 부분은 라이센스를 검사하는 부분으로 이동할 수 있는

중요한 부분이다.

우리가 만든 파일에서 7byte부터 14byte까지의 합이

486이면 jmp eax를 실행할 수 있다.

그 후 eax로 이동된 곳을 다시 전 함수의 다음 코드로 실행하게끔

패치를 해준다.

 

 

 

그 후 라이선스 루틴을 만날 수 있는데

실행하면 바로 register문구를 확인할 수 있다.

 

 

 

 

후기: 진짜 너무 어렵다

내가 알던 리버싱과는 다른 세계였다.

이게 튜토리얼이야...?

그래도 긴 시간 동안 고통스럽기도 하고

뿌듯하기도 하고 재미있었던 것 같다.

고생했구나

'보안 > 악성코드' 카테고리의 다른 글

악성코드 분석 개념과 종류  (0) 2022.07.31
[CodeEngn] Basic RCE L13 보고서  (0) 2022.05.14
[레나 튜토리얼] 39  (0) 2022.03.31
[레나 튜토리얼] 38  (0) 2022.03.30
[레나 튜토리얼] 37  (0) 2022.03.30
Comments