[2013 HUST]5번 문제

5번 문제는 주어진 링크로 SSH 접속을 하면 아래와 같은 문제를 볼 수 있다.



문제 바꾸지마, 루트 로그인 하지마, 파일 만들지마,.... 하지 말라는것도 많다..


진짜 문제인 문제파일은 권한이 스티키로 잡혀있다.


일반적인 포너블 문제처럼 루트권한으로 쉘을 따는 문제가 아니다.


일단 실행해보면 다음과 같다



힌트에 주목하자..1번 힌트는 풀고나서 생각해보면 버퍼사이즈 범위를 알려주려는듯(실제 40), 힌트2는 키를 뿌려주는 함수 주소다.!!!!!


버퍼크기 40 + 함수주소(0x8048b64)를 프로그램 실행할떄 인자값으로 넣어주면 base64 인코딩된 키값이 떨어진다~


너무나도 간단히 풀려서 허무한 문제...



저작자 표시
신고

'Simple Story > CTF' 카테고리의 다른 글

[2014 Codegate]Reversing 250 write up  (0) 2014.03.02
[2013 HUST]6번 문제  (0) 2013.12.04
[2013 HUST]5번 문제  (0) 2013.12.04
[2013 HUST]4번 문제  (7) 2013.11.29
[2013 HUST]3번 문제  (0) 2013.11.28
[2013 HUST]2번 문제  (0) 2013.11.28

Device Tree For Android

Device Tree (디바이스 트리)

Intro

"오픈 펌웨어 디바이스 트리" 또는 간단히 디바이스 트리(DT)는 하드웨어를 서술하기 위한 데이터 구조와 언어입니다. 더 정확하게는, 어떤 운영 체제에 의해 읽혀져서 운영 체제가 그 머신의 상세 사항을 하드 코딩할 필요 없게 하는 한 하드웨어의 서술입니다.

구조적으로, DT는 이름있는 노드들로 이루어진 하나의 트리, 또는 사이클이 없는 그래프이고, 노드들은 임의의 데이터를 캡슐화하는 이름있는 프로퍼티 를 임의의 개수만큼 갖습니다. 또한 한 노드에서 자연스러운 트리 구조의 밖 다른 곳으로 임의의 연결을 만들 수 있는 메카니즘도 존재합니다.

개념적으로, 데이터 버스, 인터럽트 라인, GPIO 연결, 그리고 부속 장치들을 포함하는 일반적인 하드웨어 속성을 서술하기 위해서 트리 안에서 데이터가 어떻게 나타나야 하는지를 위한 '바인딩'이라고 부르는 사용 용법의 공통 부분이 정의됩니다.

가능한 한 많이, 이미 존재하는 지원 코드의 사용을 최대화하기 위해서 이미 존재하는 바인딩을 사용해서 하드웨어가 서술됩니다. 그러나 프로퍼티와 코드 이름은 간단한 문자열이기 때문에, 이미 존재하는 바인딩을 확장하거나, 새로운 노드와 속성을 정의하는 것으로 새로운 것을 하나 생성하는 것은 쉽습니다. 그러나, 이미 존재하는 것에 대한 어떤 과제를 먼저 하지 않고, 새로운 바인딩을 생성하는 것은 조심하세요. 이전에 어떻게 기존 시스템에서 i2c 디바이스들이 열거되는지를 먼저 파악하지 않고 생성된 새로운 바인딩 때문에 현재 두가지 다른, 호환되지 않는 i2c 버스를 위한 바인딩이 있습니다.

  • ATAG : 부트로더와 커널간의 파라미터를 주고 받는 전통적인 인터페이스
  • Device Tree : Embedded에서 수많은 포팅을 지원하기 위해 하드웨어를 기술한 자료구조

Ref URL : http://devicetree.org/Device_Tree_Usage


Boot Image For Android

Header & Layout


QC table of device tree 

  • Android는 QCDT의 Device Tree를 사용
  • device tree의 새 테이블을 가리키도록 기존의 부트 이미지 헤더의 "unused #1, #2"를 사용(#1 - device tree의 QC 테이블 크기)
  • Android의 Device Tree Format의 구조는 아래와 같다.

Format

신고

http://samygo.tv/

신고

'Secure Story' 카테고리의 다른 글

0x0001 임베디드 해킹 해외 참고사이트[스마트TV]  (0) 2013.11.29