Simple VM solve 공개용
root 권한으로 실행 한 후 gcore를 이용하여 덤프를 뜨고 분석을 하면 된다. 여러가지 문자열들이 xor 처리 되면, 성공, 실패, 에러 등의 구문이 된다. 이런것으로 어디 루틴에 들어가면 안되는지 판단 한 후, 정적으로 리버싱을 한다. 정적으로 리버싱 하다보면, 200바이트를 가지고 노는 부분이 있는데 asm으로 살펴보면 이를 아주 많이 이용함을 볼 수 있다. 200바이트를 테이블로 만들고, 특정 함수에서 여러개로 분기되는 부분이 있고, 연산하는 부분이 있다. 그 부분들을 잘 캐치해서 코드를 작성하면 키를 구할 수 있다.
2018.12.24