profile
오소리입니다.

포너블 가젯 몇가지

CTF문제 풀면서 알게된 가젯이다.64비트 기준으로 alarm 함수의 인자로 rax 세팅가능sleep 함수로 rsi, rdx를 0으로 세팅 가능하다.

2023년 1월 22일
·
0개의 댓글
·

리눅스 커널 메모리 권한 가지고오기

최근 리눅스 커널 익스플로잇을 하면서 실행가능한 가젯을 찾는게 생각보다 좀 빡칠 수 있다는 생각이 들었다. 지금까지는 계속 gdb로 확인하고 있었는데.. 원격 gdb는 너무 느렸다. 그래서 그냥 ROPgadget 결과를 토대로 싹다 검사해버리는 커널 모듈을 하나 만들어

2022년 5월 30일
·
0개의 댓글
·
post-thumbnail

OS 만들기 - 부트로더 제작

64bit os책을 참고하면서 만드는 글이긴 한데, 책이랑 코드가 동일한건 거의 없을 것이다. 책이 나온지가 좀 오래된 만큼, 2022년인 지금에는 동작하지 않는 코드가 존재한다. 책을 본만큼 인텔 개발자 가이드북도 봤다고 장담할 수 있다. 부트로더는 16비트 코드로

2022년 4월 3일
·
0개의 댓글
·
post-thumbnail

LineCTF 2022 Rolling

이거 한문제 풀었다..TrustCode 좀만 더 삽질했으면 됬을 수도 있지 않았을까 했는데.. 너무 졸렸다.폰으로 앱을 다운받아서 켜서 버튼을 누르면 종료되서 뭔가 문제가 있다 싶었다. 일단 native library 를 까보면여기서 검사를 1바이트씩 하는 것을 볼 수

2022년 3월 27일
·
0개의 댓글
·
post-thumbnail

OS 개발 일지

그냥 하고 있던 내용을 좀 재미있고, 시스템 개발자가 아니더라도 알아듣기 쉽게 정리해봤다. 개발자라는 타이틀을 가졌으면, 대부분 BIOS에는 진입을 해봤을 것이다.요즘은 UEFI가 주류지만, 나는 UEFI 는 잘 모르고 BIOS 기반으로 OS를 개발중이기 때문에..먼저

2022년 3월 24일
·
0개의 댓글
·
post-thumbnail

시스템 메모리 크기 구하기(BIOS)

현재까지의 OS 모습이다. 32비트 보호모드에서 IA-32e(64비트)모드로 넘어갈 준비를 하고 있다.메모리의 크기를 구하는 코드가 책에서는 직접 접근하여 값을 기록하는 식으로 설명이 되있었는데, 이 방법이 마음에 안들었다. cpu-z 같은 프로그램에서는 메모리가 몇번

2022년 3월 21일
·
0개의 댓글
·

CVE-2019-1215 원데이 분석

BoB 경연단계 과제로 제출한 원데이 분석.한국어로 된 분석글은 아마도 이게 최초일겁니다 ㅎㅎ.https://www.notion.so/CVE-2019-1215-165f1d720d4f44aba08692d621c30038

2022년 1월 25일
·
0개의 댓글
·

우분투 네트워크 어댑터가 사라졌을 때

2021년 9월 21일
·
0개의 댓글
·
post-thumbnail

libc 2.32 의 Safe-linkng 을 알아보자

시스템 해킹을 공부하는 입장에서 heap 과 관련된 취약점은 굉장히 매력적이라고 할 수 있다. 대표적으로 heap spray만 봐도 그렇다. 그리고 fastbin 과 libc 2.26 부터 추가된 tcache는 보안적인 관점에서 mitigation 을 우회하기가 쉽다는

2021년 8월 30일
·
0개의 댓글
·
post-thumbnail

파일탐색기를 후킹해서 폴더를 숨겨보자

우리들은 누구나 남에게 보여주기 싫은 폴더가 있을 것이다. 그리고 상용 프로그램들도 많이 존재한다. 원리는 잘 모르겠지만. 누군가 컴퓨터의 파일에 접근할 일이 생기면 파일탐색기로 파일탐색을 하기 때문에 파일탐색기를 후킹해서 내가 숨기고 싶은 폴더를 숨긴다면( 숨김폴더

2021년 8월 13일
·
0개의 댓글
·
post-thumbnail

dl_make_stack_executable 함수

링커인 ld에 존재하는 함수이다. 이름 그대로 스택에 실행권한을 줄 수 있다. \_libc_stack_end 의 주소를 찾을 수 있다면 eax를 해당 주소로 세팅하고 \_stack_prot 을 7로 설정. 이후 dl_make_stack_executable 호출시 mpr

2021년 5월 14일
·
0개의 댓글
·

Go-Back-N 구현

Reliable UDP를 Go-Back-N으로 구현을 해보았다. 사용 방법은 송신자측에서는 send 이후 wait로 패킷이 다 보내지길 기다리면 되고 수신자는 계속 receive를 하면된다. 문제는 경악할만한 속도. 윈도우 사이즈는 지금 4(...) 인데 이때가 가장

2021년 4월 25일
·
0개의 댓글
·

BadApple 아스키아트 만들기 with C#

심심해서 만들어보았다. 코드는 아래 첨부. 팟플레이어를 이용해 영상을 1프레임씩 캡쳐해서 이를 읽어서 아스키아트로 만드는 내용이다.

2021년 4월 13일
·
0개의 댓글
·

캐시 메모리 동작 예제

앞서 이글은 igoros 라는 분의 Gallery of Processor Cache Effects 글을 번역한 것을 토대로 작성되있음을 알립니다. 링크는 마지막 레퍼런스에 있습니다. 캐시는 cpu의 입장에서는 너무나도 느린 메모리(RAM)에서 데이터를 가져오는 시간을

2021년 4월 3일
·
0개의 댓글
·

Instruction-level 병렬화

아래와 같은 c++ 코드가 있다고 하자. for문 2개가 있는데, 첫번째는 a[0]++를 두번 수행하고, 두번째는 b[0]++,b[1]++ 를 순차적으로 실행한다. 이 결과는 어떻게 나올까? 놀랍게도 상당한 차이가 난다. 그 이유는 첫번째 코드인 a[0]++, a[

2021년 4월 2일
·
0개의 댓글
·

메모리 정렬과 캐싱

아래 코드를 보자. int 형의 2048x2048 크기의 배열을 생성해서 인덱싱을 하는 기본적인 코드이다. 과연 속도차이가 날까?결과거의 3배 가까운 시간의 차이가 난다! 대체 어떻게 이런 결과가 나온걸까? 이를 이해하기 위해서는 2차원배열이 메모리에서 어떻게 할당되는

2021년 4월 1일
·
0개의 댓글
·
post-thumbnail

SIMD 프로그래밍

SIMD란 Single Instrument Mutliple Data 라는 뜻으로 하나의 명령어로 여려개의 데이터를 처리할 수 있는 인텔의 기술을 말한다.

2021년 4월 1일
·
0개의 댓글
·

CAOV Write up

pwnable.tw 의 CAOV 문제. 처음 풀어보는 C++ 문제이며 재미있는 취약점이 존재한다.

2021년 3월 23일
·
0개의 댓글
·

House of orange 분석

heap exploit의 끝판왕 house of orange 이다.

2021년 3월 23일
·
0개의 댓글
·

sysmalloc 분석

매우 재미있는 sysmalloc 함수. malloc의 최종단을 분석해보자!

2021년 3월 22일
·
0개의 댓글
·