본문 바로가기

해킹/리버싱

(3)
[reversing.kr] Direct3D FPS 우선, 실행을 시켜보았다. 그러면 위와 같이 나오게 되는데 뭔가 엄청 재밌어 보인다. 근데 이속이 느려서 개답답함.. 요런 귀여운 녀석이 있는데, 총을 마구 쏴도 데미지가 다는건지 마는건지.. 가만히 있기만 하다. 게임 내를 둘러봤지만, 이속도 매우 느리고 답답해서 그냥 나왔다. 딱히 별거는 없고, 저런 녀석들이 매우 많이 있다. (근데 뭐 어쩌라는 건지..) 이제 직접 디버거로 까보자. 문자열 참조로 Game Clear!를 찾으면 위와 같은 루틴을 찾을 수 있는데, eax가 0x309194부터 0x210씩 커지며, 0x30F8B4와 크거나 같아지면 clear가 된다. 이 때 eax의 주소에 있는 값이 전부 1이 아니어야 한다. (flag같으므로, 0이어야 함을 예상할 수 있다.) 위의 MessageBo..
[reversing.kr] position 우선 readme를 읽어보자. name을 통해 serial을 gen하는 그런 문제인것 같다. 그러면 우리는 serial generation 루틴을 찾아서 분석해야 할 것이다. 우선 패킹은 되어있지 않은 것으로 확인하였다. 문자열 참조를 통해 다음의 루틴을 찾아보자. 그러면 위의 call position.8D1740에서 eax값이 세팅되고 이 값이 0이면 Correct를 띄우는 것을 확인할 수 있다. 그러므로, 위 함수 안에 key gen과 비교 루틴이 있을 것이다. 그전에, 이 프로그램은 event handling 방식이기에, 위의 루틴이 실행되는 event를 알아보면, serial이나 name칸에 어느것이든 적힐 때마다, 위의 루틴을 반복한다. 그러므로, 우선 serial 칸에 readme에 제공되어있..
[reversing.kr] easyELF 안녕하세요? 오늘은 EasyELF라는 문제를 풀어봤어용! 그러면 저와 함께 풀어볼까요?? Easy_ELF를 실행해줄까용?? "안녕!" 이라고 써줬는데, 바로 틀렸다면서 종료 해버리네요.. 그러면 gdb로 열어볼까요? 헉! strip 되어있나? main이 안뜨네용 그러면 start를 눌러서 들어가 볼까요?? 어떤 루틴이 존재하네요! 그리고 연달아서, 세 개의 함수와 아래의 cmp eax, 0x1을 보아하니,, 첫 번째 함수는 init 문장 출력 두 번째 함수는 read 세 번째 함수는 key auth를 하는 것을 예측할 수 있네요! 그러면 세 번째 함수에 들어가서 어셈을 좀 읽어볼까요? 0x804a021에서 1byte를 읽어오고 있어요! 흠.. 갑자기 어떤 주소가 나온 것도 모자라, 1로 끝난다고? 이거 ..