
CAN 통신 위에서 동작하는 통합 진단 서비스CAN에서 data가 UDS 메시지가 된다. <구조>PCI | SID | DIDCAN ID: 메시지를 송수신 할 ECUPCI: 주로 UDS 메시지의 길이SID: 서비스 식별자Sub Function Byte: SID에 세
외부 진단기기가 차량 내의 모든 ECU(제어기)를 대상으로 보내는 공통 진단 요청(Functional Request) 메시지 식별자일종의 broadcast 역할response에 대하여CAN ID 0x7DF 요청에 대해 응답하는 ID들은 물리적 응답 ID(Physical

비록 시험이 모레지만 깔짝해봤다..생각보다 재밌었던거같다.오랜만에 정석 포너블 느낌... 시험기간이라 라업이 자세하진않을 예정먼저 서버 주소를 구해야한다.악성코드파일이랑 서버에서 실행되는 파일 2개를 준다. 서버는 c코드까지 준다. 악성프로그램을 먼저 확인해서 서버 주

2025년도 cce 예선 전에 작년 문제를 풀어보려고 했는데, 마침 cce에서 현제 제공하고 있는 모의체험장에 있는 문제들이 작년 문제인 것 같아서 업솔빙하고 라업을 작성해보려고 한다. 모의체험장 링크: https://apollo2.cstec.kr/challe

이번에 처음 열리는 대회라 정보가 많이 없어 한 번 후기글을 작성해보기로 했다. 문제 라업은 가장 밑에 적어놓았다. 2박 3일 간 열리는 대회였지만 첫날은 오리엔테이션 같은거만 해서 사실상 대회는 1박 2일이었고, 첫날은 7시간(10:00~17:00), 둘 째 날은 4

최신버전 기준 작성doubly linked list에서 청크를 연결 해제하는 과정인 unlink를 이용한 공격기법⇒원하는 공간에 값을 쓰거나 leak할 수 있게 해주는 공격 기법이다.<사용조건>1\. 힙 영역을 전역변수에서 관리 (힙 영역을 전역 변수같이 주소를

안드로이드에서 시스템 서비스는 클라이언트와 서버의 구조를 가지고 있다.시스템 서비스의 정의는 framework/framework.jar에서 찾을 수 있고, 실제 구현은 여러 곳에 흩어져있지만 주로 framework/services.jar에서 찾을 수 있다. | 프록시

nc로 접속하면 그 때 그때 다른 바이너리를 준다. 따라서 직접 실시간으로 바이너리를 받아와 분석해야 한다. 기본 구조를 살펴보면 canary값을xxd로 바이너리를 열었을 때 기준으로 0x3020 오프셋 부터 총 10개의 카나리 값이 저장되어 있고, 이 중 하나를 카나

glibc 2.34이후 훅변수가 사라지면서 aaw 취약점이 있어도 덮을 곳이 사라지는 문제가 생겼다. 이런 상황에서 보통 libc got를 덮는 방법도 많이 쓰지만 또 다른 방법을 소개하고자 한다. 바로 exit_handler함수를 이용하는 방법이다. 인자를 직접 지정

\>glibc 2.25<익스 시나리오>14개의 청크 할당 (fastbin 범위 내여야 함)그 중 7개를 free하여 tache를 다 채우기 청크를 하나 더 해제 (=victim청크, fastbin으로 이동)1~6개의 청크를 더 해제 (모두 fastbin으로 이동)

\>glibc 2.25에서 가능<익스 시나리오>=========사전 준비=========0x100 크기의 청크 7개 할당 (추후에 tcache를 채우기 위함)0x100크기의 병합을 위한 청크 1개 할당 (=prev chunk)Double free할 0x100크기의

stdout 구조체에 값을 쓸 수 있고, fflush(stdout)를 호출할 수 있을 경우 사용 가능한 libc leak 방법을 소개하려고 한다.libc leak이 필요한데 바이너리 내에 출력 함수가 아예 존재하지 않을 경우 사용할 수 있는 방법이다.다음은 \_IO_f

힙 관련 문제이다. 64bit Full relro, CANARY, NX, PIE 최종 익스 코드는 아래와 같다. 쉘이 따졌다. 이 문제.. 로되리안 때문에 거의 며칠동안 삽질했는데 알고보니 오프셋 문제였다. 뭔가 이상해서 libc를 다시 다운받아 확인했더니 이전에
이전에 개인적으로 libc_malloc을 살펴본 적이 있는데, libc_malloc 내부에서 \_int_malloc의 호출이 이루어졌었다. 그때 분석한 바로는 tache bin에 있는 청크의 재할당은 libc_malloc에서 이루어졌었고 그 외의 상황에서는 \_int_
size_t형의 bytes(동적할당 크기)를 인자로 받아 void형 포인터 victim(할당된 힙 영역의 주소)를 반환한다.부분을 나눠 자세하게 살펴보자.우선 mstate형 ar_ptr변수와 void형 포인터 victim이 선언된다.mstate는 malloc_state
\_int_free의 내부를 살펴보자. 우선 함수의 형태와 맨 처음 선언된 변수들을 살펴보자.mstate형 av와 mchunkptr형 p를 입력받는다. \_int_free를 호출하는 \_\_libc_free함수를 살펴보면, p는 할당 해제할 청크를 가리키는 포인터이며

Potluck Ctf의 문제 중 난이도가 어려운 건 아니지만 풀이 방식이 인상적이었던 문제가 있어 WU을 적어보려 한다.ctf 중 익스에는 실패했지만, 종료 후 디코에서 힌트를 얻어 풀었다. 바이너리와 libc파일이 주어졌다. 우선 IDA로 코드를 살펴보자. 메인 함수