일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- reversingg
- gdb
- 데이터 형태
- Linux
- 스테가노
- 침입감지시스템
- phase_1
- 리눅스
- 툴
- binarybomb
- bomblab
- 밤랩
- phase_6
- IDS
- bomb lab
- 리버싱
- pwntool
- phase_2
- mandb
- phase_5
- 파일
- Bomb
- phase_4
- pwnable
- 서브모터
- 아두이노
- 명령어
- Reversing
- 디렉터리
- phase_3
- Today
- Total
목록분류 전체보기 (59)
Flag={C0MPU73R}
----------------------코드-------------------- #define TRIG 2#define ECHO 3 void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(TRIG, OUTPUT); pinMode(ECHO, INPUT); pinMode(7, OUTPUT);} void loop() { // put your main code here, to run repeatedly: digitalWrite(TRIG, LOW); delayMicroseconds(2); digitalWrite(TRIG, HIGH); delayMicroseconds(10); digitalWrite(TRIG, LOW);..
#bomb 문제는 phase_1 부터 phase_6까지 6개의 문제로 이루어져있다#1단계부터 6단계까지 모두 맞춰야 폭탄이 해체되는 형식이다 문제를 실행한다 phase_1은 답을 알았기 때문에 바로 입력해준다 뭔가 또 입력할 수 있게 됬는데 gdb로 분석을 해봐야겠다 라는 함수가 있다 아마 6개의 인자를 숫자로 넣어줘야 하는 것 같다 phase_2의 맨 처음에 break를 걸고 실행해준다 일단 "1 2 3 4 5 6"를 입력해줬다 첫번째 비교하는 곳 까지 왔다 rsp와 0x0을 비교해서 양수(+)면 점프하는 것 같다 #아마 js는 음수(-)면 점프 rsp의 값을 보면 첫번째 인자인 "1"이 들어있다 우린 양수(+)만 입력했기 때문에 통과되어 넘어왔다. 그 다음을 정리해 보면 rsp(인자"1")을 rbp에..
#bomb 문제는 phase_1 부터 phase_6까지 6개의 문제로 이루어져있다#1단계부터 6단계까지 모두 맞춰야 폭탄이 해체되는 형식이다 문제를 실행해본다 bomb 파일을 실행하면 문장 두 줄이 뜨고 뭔가를 입력할 수 있게 된다뭔가를 입력하게 되면 사진과 같이 BOOM!!! 하면서 폭탄이 터진 것 같이 하면서 종료된다 먼저 gdb로 bomb 문제를 연다그 후 phase_1을 분석한다 phase_1은 문자열을 입력해서 그게 정해진 문자열과 일치하면 다음으로 넘어가는 문제인 것 같다 explode_bomb이란 함수(?)는 문자열이 틀리면 저 주소로 호출되서 폭탄이 터지는 것 같다 폭탄이 터지기 바로 전에 break를 걸어서 그 부분에서 내가 입력한 문자열이 어디에 들어가있는지 확인해본다 폭탄 터뜨리는 함..
1 + 1 = 2 스택 이용C언어- Sum(1,2)--------어셈블리어- Push 2- Push 1- Call sum 레지스터 이용C언어- Sum(1,2)--------어셈블리어- mov rsi, 2- mov rdi, 1- call sum
Security Factoryhttp://securityfactory.tistory.com/153
어셈블리어- 어셈블리 언어는 기계어와 1:1 대응하는 언어- 어셈블리 언어를 배우면 시스템을 이해하는데 도움이 된다. C언어 vs 어셈블리어C언어- 소스코드의 크기가 크다- 효율이 낮다- 가독성이 좋다 어셈블리어- 소스코드의 크기가 작다- 효율이 높다- 가독성이 나쁘다 에셈블리어 종류Linux 32bit (가장 쉽고 오래됨)- intel- At&tLinux 64bit등등 레지스터 역할EAX : 함수의 리턴 값 저장ECX : 계산 값에 대해 저장 (For문의 i, j같은 역할)ESP : 명령어 수행 시 스택의 위치 저장EBP : 스택의 맨 위 주소를 가리킴EIP : 다음 실행할 인스트럭션의 주소 가리킴 레지스터RAX : 64비트용 레지스터EAX : 32비트용 레지스터 / RAX의 하위 32비트AE : EA..
리버싱이란?- Reverse Engineering의 줄임말 / 역공학- 이미 완성된 프로그램을 분석하여 유지, 개발, 보안에 사용(좋은쪽) / 크랙에 사용(나쁜쪽) 용도- 악성코드 분석- 취약점 찾기- 패치 도구IDA- 가장 많이 쓰이는 디스어셈블러 툴 Debugger(Olly, Immunity 등)- 윈도우 환경에서 프로그램을 동적으로 분석하기 위해 사용하는 툴 그 외 툴- Wireshark, CheatEngine, WinDbg 등 수많은 툴이 존재
먼저 java를 최신버전으로 받아준다https://java.com/ko/download/manual.jsp 그리고 jarfix를 다운로드한다 http://johann.loefflmann.net/en/software/jarfix/index.html 순서1. jarfix를 다운받고 폴더를 만들어서 넣는다2. 그 폴더에 텍스트파일을 만들어서 jarfix /64를 입력한다 (64bit인 경우에만)3. 다른이름으로 저장하기 해서 텍스트파일.txt를 텍스트파일.bat으로 저장한다4. 폴더에 텍스트파일.bat이 생겼으면 실행한다끝
설치$sudo apt-get install binwalk 명령어$ binwalk [파일명] #칼리(kali)는 기본적으로 설치 되어있음