본문 바로가기

Wargame Write-Up/Reversing.kr16

[Reversing.kr] (Revering) SimpleVM 풀이 ELF32 파일이다. 아이다로 열면 entry point 에러가 난다. gdb 로 열면 이상한곳에 와있다. 실행시키면 Access Denied 가 출력되고 끝난다. strace 로 확인한 결과이다. getuid32() 함수를 호출해 uid 를 가져온 뒤, Access Denied 가 출력되는걸 보면, root 로 실행해야한다는 합리적의심이 가능하다! sudo strace ./SimpleVM getuid32() 결과가 0이고, Input 이라고 출력되는 것을 볼 수 있다. helloworld! 을 입력했더니 Wrong 이라 뜬다. 패킹된 것같은데 프로세스를 덤프해서 정적분석해보자. procdump 리눅스버전을 쓸 수도 있고, gcore 으로 간단하게 할 수 있다. 터미널 2개를 띄우자 (터미널1, 터미널2.. 2021. 2. 1.
[Reversing.kr] (Reversing) HateIntel 풀이 mach-o 파일이다. 맥북이 없어서 실행시키지는 못하겠고, ghidra 로 정적분석을 해야겠다. ㅜㅜ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 undefined4 FUN_00002224(void) { char acStack100 [80]; undefined4 local_14; size_t local_10; int local_c; local_14 = 4; __symbol_stub4::_printf("Input key : "); __symbol_stub4::_scanf("%s",acStack100); local_10 = __symbol_stub4::_strlen(acStack100); FUN_0000232c(acStack100,l.. 2021. 2. 1.
[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.