Constant(438)
-
[CodeEngn Basic Final]
2N이라는 동생이 코드 피드백을 해달라고 해서 문제가 기억이 안나서 다시 풀어보았다.. 문제 설명 이 프로그램은 Key파일을 필요로 하는 프로그램이다. 문구가 출력되도록 하려면 crackme3.key 파일안의 데이터는 무엇이 되어야 하는가 “문구 : Cracked by : CodeEngn!" 문제 컨셉 : KEY 값을 통해 바이너리에서 메시지박스를 출력시킬 수 있는가? CRACKME3.KEY를 생성해두어야 한다 이유 : OPEN_EXISTING(3) CRACKME3.KEY 내부 바이트는 18바이트가 되어야 한다. 18바이트가 아닐 경우, 프로그램은 종료된다. 초기화 작업을 거치고, .KEY에 있는 값[ESP+4]을 4바이트씩 ESI로 복사한다. 그 후 0x41값을 BL에 복사하게 되면 402041주소가 ..
2019.01.31 -
[Rootme] ARM Stack Buffer Overflow
local에서 쉘을 땄는데 remote에서 안됬다... 흠 어쨌든 푸는 법 알았으니 메모 페이로드는 공개안한다. mitigation : ASLR, RELRO(Read Only relocations) NX 안걸려있으면 arm 쉘코드 사용가능? SSH 진입 ch45, ch45.c , ._firewall, Makefile, .motd, .passwd, xinetd-app-systeme-ch45.conf가 있다. ssh -p 2224 app-systeme-ch45@challenge04.root-me.org ch45 파일을 가져와보자.scp -p2224 app-systeme-ch45@challenge04.root-me.org:/challenge/app-systeme/ch45/ch45 ./ 무작위로 200 바이트 ..
2019.01.29 -
리버싱 기초 문제
보호되어 있는 글입니다.
2019.01.16 -
elf
보호되어 있는 글입니다.
2019.01.01 -
Simple VM solve 공개용
root 권한으로 실행 한 후 gcore를 이용하여 덤프를 뜨고 분석을 하면 된다. 여러가지 문자열들이 xor 처리 되면, 성공, 실패, 에러 등의 구문이 된다. 이런것으로 어디 루틴에 들어가면 안되는지 판단 한 후, 정적으로 리버싱을 한다. 정적으로 리버싱 하다보면, 200바이트를 가지고 노는 부분이 있는데 asm으로 살펴보면 이를 아주 많이 이용함을 볼 수 있다. 200바이트를 테이블로 만들고, 특정 함수에서 여러개로 분기되는 부분이 있고, 연산하는 부분이 있다. 그 부분들을 잘 캐치해서 코드를 작성하면 키를 구할 수 있다.
2018.12.24 -
play.ps1
보호되어 있는 글입니다.
2018.09.21