본문 바로가기

prob/reversing.kr4

[Reversing.kr] Direct3D_FPS 프로그램을 실행시키면 감자들이 서성이는대에임맞춰서 열댓발정도 쏘면 죽일 수 있는것 같다. 시간투자를해서 모든 감자들을 처리해도 역시 게임은 끝나지 않는다.프로그램의 시작지점을 찾아서 보면 시작부분에 data폴더에서 이미지들을 불러와서 적용시키는 부분들이 있는대이 부분들에서 벽을 이미징하는부분을 jmp로 처리하면 벽 뒤에 숨어있던 감자 2마리를 볼수있다.처리하면 auth key를 볼 수 있더라. ※ shoot 사운드를 실행시켜주는 부분 근처를 조작하면 감자를 한방에처리한다거나 그런것도 찾을수 있을것같지만..... 이미 키를 찾았으므로..... 2015. 11. 11.
[Reversing.kr] Position 문제가 압축파일로 되어있는대 열어보면 문제와 텍스트파일이 주어져있다.텍스트파일의 내용은 다음과 같다.ReversingKr KeygenMe Find the Name when the Serial is 76876-77776This problem has several answers. Password is ***p 시리얼이 저거일때의 이름을 찾으라고한다.문제를 켜보면 시작하자마자 Wrong이 달려있으니 문자열 탐색으로 찾아보면바로 Congraturation 과의 분기가 보이고바로 위에 함수가 보이니 저 함수에서 어떤 검증을 하는것같다. 각 함수들별로 들어가서 관찰해보면 특정함수에서 내가 입력한 이름을 반환하는 것을 볼 수 있고그때 내가 입력한 이름의 길이를 4와 비교하는것을 볼수있다. 처음 주어진 텍스트파일에서 .. 2015. 11. 5.
[Reversing.kr] imageprc 문제를 켜보면 키 입력도 안되고 정말 황당하다.체크박스를 눌러봐도 무심하게 Wrong만 출력되는대뒤적거리다보니 윈도우창에 그림을 그릴수있었다 그림을 그려서 맞추는건 힘들어보이니우선 아까봤던 문자열 로 탐지하여 찾아가 보면 GetDIBits 함수를 볼 수 있는대 이 함수는 비트맵 관련 함수라고한다. FindResourceA 함수의 결과가 가리키는 주소 0047E048로 가보면60부터 시작해서 0000과 FFFF만 반복되는대 이는 GetDIBits함수를 통해 부른 결과이기때문에 .bmp의 파일 내용임을 알수있다.이 부분을 추출해서 정상적인 .bmp파일에 끼워넣으면 키를 볼수있을것같다. 원본파일의 가로 0xC8(200) 세로 0x96(150)값이 GetDIBits를 실행하기전에 레지스터에서 노출된다. .bmp.. 2015. 11. 5.
[Reversing.kr] Replace 문제를 다운받아서 실행시켜보면 숫자값만 입력받을 수 있는것을 알수있다. 디버거 붙여놓은 다음 아무 숫자나 입력을 해보면 MOV [EAX], 90 명령을 실행할때 잘못된 주소를 참조하여 오류가 발생한다. 여러차례 값을 넣어가며 관찰하다보면0x601605cb + 내가넣은 숫자 10진수 값이 eax에 들어있게 된다. 우선 적당히 참조가능한 스택의 주소로 대략 0x0012fa20 쯤이 EAX에 들어갈 수 있도록 계산해주고,아까 에러가 발생한 곳에 브레이크 포인트를 걸어놓으면 이번에는 프로그램이 계속 진행되는것을 볼 수 있다.해당 함수를 빠저나간 뒤에 보면 jmp가 하나 더 있는대 왠지 여기를 점프하면 안될것 같아보인다. 그래서 nop으로 처리한뒤에 실행해보니 Correct!가 나오는것을 볼수있다.그렇다면 정상적.. 2015. 11. 2.