본문 바로가기

Reversing24

[Reversing.kr] (Reversing) CSHOP 풀이 DIE 로 까보니 .NET 으로 컴파일 되어있다고 한다. 실행하니 빈창이 뜬다. 고쳐야하나부다. dotPEEK 으로 디컴파일 해보자. FrmMain.cs btnStart 라는 버튼의 size 가 0인데, _Click 이라는 이벤트 핸들러가 등록되어있다. 라벨들의 값을 지정해주는 함수다. 라벨이름도 같고, 멤버보다 지정해주는게 더 많아 이상하다. POSITION 을 보면, 라벨들은 수평으로 정렬되어 있다. 6번째 멤버인 lblT 는 P 인 것같다. dnsPy 로 열면 이름이 보여 구별할 수 있게된다. 주의해야할 점은 중간에 있는 숫자다. 위에서 lblT 에 해당하는 라벨만 중간숫자가 FFFD 임을 유의하고, 같은멤버가 두 번 변경된 경우도 있으니, 마지막으로 수정된 값으로 가져와야한다. 뒷글자만 봤을 때,.. 2021. 2. 1.
[Reversing.kr] (Reversing) randsomware 풀이 문제파일을 다운받으면, 이렇게 구성되어있다. file 은 암호화된 파일이다. 문제이름이 randsomware 이기때문에, file 을 바꿀것이라는걸 짐작할 수 있으므로, 복사본을 만들어놓자. 실행하면 입력한 키값을 바탕으로 복호화를 해주는데, 복호화된 모습을 보니, exe 파일과 비슷한것같다. 올리디버거로 열심히 분석을 해봐도, 이상하게 아무것도 안나와서, DIE 로 열어보니, UPX 로 패킹된걸 볼 수 있다. 바로 언패킹해버리자. x32 디버거로, 언패킹된 프로그램에서 key : 문자열을 찾아왔다. 여기가 main 함수인것같다. 참고로 앞으로 중간중간 있게될 0x401000 함수는 아무의미없는 명령어 덩어리이다. 실행속도약간 늦추는 역할을한다. 첫번째, ebp-0x18 = key key 배열의 주소값을.. 2020. 6. 22.
[Reversing.kr] (Reversing) Direct3D FPS 풀이 문제파일 다운 후 압축해제하면 FPS.exe 가 나온다. 고구마같은놈들이있다. 잡아보면 뭐가 나올것같다. 참고로 닿으면 죽는다. 다잡았는데, 여기안에 나머지가 있을거같다. Game Clear 문자열을 사용하는것이다. 다 잡았을때 Game Clear 과 수상한 문자열를 출력해준다. 이것은 FLAG 라는걸 추측해볼수있고, 하드웨어 BP 를 걸어 이 값에 접근하는 함수를 찾아보자. 고구마들을 학살하다보면, 이 함수에서 고구마를 죽였을때 문자열을 참조한다. 0xEB3440 함수로 번호를 가져오고, 210을 곱한다. EB9184 에서 번호에 210을 곱한값을 참조해 문자열의 번호에 해당하는값과 XOR 연산을 한다. EB9184 배열값을 가져와 배열[i*4] ^ 문자열[i] 연산을하면 FLAG 가 복호화될것이다. .. 2020. 4. 25.
[Reversing.kr] (Reversing] Position 풀이 키젠문제이다. 시리얼이 76876-77776 일때의 name 을 찾으라한다. 총 4글자로, 마지막글자는 p 이고, 여러값이 나올수있단다 입력폼이있다. default 문자열을 확인해두자. MFC 32bit EXE 파일이다. 올리디버거로 분석해야겠다. 글자를 입력했을때 반응하는함수이다. 0x01191740 함수에서 리턴한값으로 Correct인지 Wrong 인지 텍스트를 설정한다. [ 0x01191740 ] 0119178E |. 50 PUSH EAX ; /Arg1 = 4 0119178F |. 81C1 30010000 ADD ECX,130 ; | 01191795 |. C645 FC 02 MOV BYTE PTR SS:[EBP-4],2 ; | 01191799 |. FF15 80321901 CALL DWORD PTR.. 2020. 3. 25.