목록전체 글 (421)
외로운 Nova의 작업실
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mMAnn/btrWDEMKClp/8mnUTADqZN1OfAJn4G1IP1/img.png)
- 카나리 스택 카나리는 함수의 프롤로그에서 스택 버퍼와 반환 주소 사이에 임의의 값을 삽입하고, 함수의 에필로그에서 해당 값의 변조를 확인하는 보호 기법입니다. 카나리 값의 변조가 확인되면 프로세스는 강제로 종료됩니다. 카나리값의 첫번째 값은 leak을 방지하기위해 보통 null값입니다. - 카나리 할당 과정 1. 프로세스는 프로그램을 실행하고 카나리를 fs 세그먼트의 주소값을 설정합니다. 이때 fs 주소값이 설정되면 시스템은 arch_prctl()함수를 호출합니다. 2. 이후 fs 세그먼트 공간이 확보되면 프로그램이 작동하면서 fs세그먼트 시작부분으로부터 0x28번째 공간에 임의의 값으로 넣습니다. 3. 이후 카나리를 사용해야하는 프로그램은 이 카나리값을 사용합니다. - 카나리가 적용된 프로그램과 미..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cvdzjy/btrWCgFGfs8/aIovEYTFyU3NI4eefUCE7k/img.png)
- 제트팩 제트팩이란 안드로이드 플랫폼이 기본적으로 제공하는 플랫폼 API외에 따로 추가된 라이브러리입니다. 플랫폼 API란 android.App.Activity와 같은것입니다. 제트팩은 androidx로 시작하는 패키지명을 사용합니다. 제트팩은 크게 다음 3가지 목적으로 제공됩니다. 앱을 개발하는 데필요한 권장 아키텍처를 제공합니다. API레벨의 호환성 문제를 해결합니다. 플랫폼 API에서 제공하지 않는 다양한 기능을 제공합니다. 호환성 문제를 해결해주기때문에 플랫폼 API에서 지원하는 것을 제트팩에서도 지원한다면 제트팩을 많이 사용합니다. 제트팩의 화면 구성과 관련된 라이브러리를 소개하면 다음과 같습니다. androidx.appcompat : 앱의 API 레벨 호환성을 해결합니다. androidx.r..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/by4aqb/btrWyLLMWrr/7WgiXLnSPdClhfY3vTZIa0/img.png)
안녕하세요. 이번시간에는 basic_exploitation_001을 풀어보도록 하겠습니다. - 문제인식 이번에는 NX 보호기법이 걸려있어서 스택에 쉘코드를 집어넣고 실행하지 못하는 걸 알 수 있습니다. 운영체제는 우분투 16.04를 쓰고 아키텍처는 i386 아키텍처를 쓰는 것을 알 수 있습니다. 이 환경에서 리버싱을 해서 프로그램의 구조를 알아야되지만 저는 윈도우를 쓰고 있기때문에 불가능합니다. 그에따라 리버싱관련해서 알아내는 것은 다른 페이지를 참조할까합니다. #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF,..