소스 코드 편집기
Ctrl + Z : 되돌리기
Ctrl + Shift + Z : 되돌리기 취소
##### Visual Studio 잡기술 #####
Ctrl + f5 : 컴파일
Ctrl + D : 해당 줄 복사
Ctrl + K + C : 드래그 되있는 영역 주석처리
Ctrl + K + U : 드래그 되있는 영역 주석처리 해제
Ctrl + Shift + A : 소스파일 생성
/* 이 사이에 있는 것들은 전부 주석처리 */
##### Python IDLE 잡기술 #####
f5 : 컴파일
Ctrl + T : 문자자리바꾸기
Ctrl + ] : 오른쪽 들여쓰기
Alt + 3 : 드래그 되있는 영역 주석처리
Alt + 4 : 드래그 되있는 영역 주석처리 해제
'''
이 사이에 있는 것들은 전부 주석처리
'''
Ubuntu 환경
##### 공개키 발급 #####
다음 서명이 올바르지 않습니다: EXPKEYSIG XXXXXXXXXXXXX CF CLI Team cf-cli-eng@pivotal.io
apt-get update와 같은 명령어를 쳤는데 위와 같은 오류와 함께 진행이 안되는 경우가 있다
아래 명령어를 통해 새로 공개키를 발급 받으면 꿑!
wget -q -O - https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key | apt-key add -
해당 경우도 아래 명령어를 통해서 키값을 추가해주면 꿑!
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys XXXXXXXXXXXX
### Ubuntu terminal ###
$ sudo apt-get install terminator
Ctrl + Alt + T : 터미널 창 띄우기
Ctrl + Shift + e : 가로 분할
Ctrl + Shift + o : 세로 분할
Ctrl + Shift + p : 다음 터미널창으로 이동
Ctrl + l : 창 비우기
Ctrl + p : 이전 명령어
Ctrl + n : 다음 명령어
$ vi ~/.config/terminator/config
[global_config]
tab_position = bottom
handle_size = 0
focus = system
[keybindings]
[profiles]
[[default]]
scrollbar_position = hidden
use_system_font = False
visible_bell = True
background_darkness = 0.8
background_type = transparent
background_image = None
show_titlebar = False
font = 나눔고딕코딩 Bold 14
[layouts]
[[default]]
[[[child1]]]
type = Terminal
parent = window0
[[[window0]]]
type = Window
parent = ""
size = 1000, 600
[plugins]
개인 terminator_setting.sh
#!/bin/sh
apt install fonts-nanum-coding
cat << EOF > /home/minishell/.config/terminator/config
[global_config]
tab_position = bottom
handle_size = 0
focus = system
[keybindings]
[profiles]
[[default]]
scrollbar_position = hidden
use_system_font = False
background_darkness = 0.8
background_type = transparent
background_image = None
show_titlebar = False
font = 나눔고딕코딩 Bold 10
[layouts]
[[default]]
[[[child1]]]
type = Terminal
parent = window0
[[[window0]]]
type = Window
parent = ""
size = 1000, 600
[plugins]
EOF
### Vim setting ###
$ vi ~/.vimrc
set number " line 표시
set ai " auto indent
set si " smart indent
set cindent " c style indent
set shiftwidth=4 " 자동 공백 채움 시 4칸
set tabstop=4 " tab을 4칸 공백으로
set ignorecase " 검색 시 대소문자 무시
set hlsearch " 검색 시 하이라이트
set nocompatible " 방향키로 이동 가능
set fileencodings=utf-8,euc-kr " 파일 저장 인코딩 : utf-8, euc-kr
set fencs=ucs-bom,utf-8,euc-kr " 한글 파일은 euc-kr, 유니코드는 유니코드
set bs=indent,eol,start " backspace 사용가능
set ruler " 상태 표시줄에 커서 위치 표시
set title " 제목 표시
set showmatch " 다른 코딩 프로그램처럼 매칭되는 괄호 보여줌
set wmnu " tab 을 눌렀을 때 자동완성 가능한 목록
syntax on " 문법 하이라이트 on
filetype indent on " 파일 종류에 따른 구문 강조
set mouse=a " 커서 이동을 마우스로 가능하도록
출처: https://gabii.tistory.com/entry/Ubuntu-vim-%EC%84%A4%EC%B9%98-%EB%B0%8F-EC%84%A4%EC%A0%95
### from pwn import * ###
알아두면 유용한
p = process(['./binary'], env={'LD_PRELOAD':'./libc.so.6'}) #LD_PRELOAD setting
log.info("libc_base : {}".format(hex(libc_base))) #value printing
gdb.attach('./binary', 'b *address') #gdb auto attach
bruteforce 예시
while num:
p = process('./binary')
p.sendafter('input? ',pay)
try:
p.recvuntil("Correct!")
print "Success"
break
except:
print "Failed!"
p.close()
continue
IDA(Interactive DisAssembler)
### 정적 분석 ###
shift + F12 : 문자열 검색
n : 함수 또는 변수의 이름 변경
y : 함수 또는 변수의 타입과 인자 변경
값 선택 + r : 숫자 <-> 문자
값 선택 + h : 10진수 <-> 16진수
코드 옆 빈공간 선택 + / : 주석 생성
코드 선택 + G : 원하는 주소로 이동
변수 선택 + x : 해당 변수가 참조되는 영역 탐색
(Fucntion window)Ctrl + F : 함수 찾기
### 동적 분석 ###
Edit -> Patch Program : 바이너리 패치
F2 : break point 설정
실행코드 선택 + F2 : 해당 코드 내용 수정
실행코드 선택 + Ctrl + n : 해당 코드 건너뛰기
Ctrl + F2 : 디버깅 중지
F9 : 디버깅 시작
F7 : 함수 내부 호출 (pwndbg의 si명령어)
F8 : 함수 1줄 진행 (pwndbg의 ni명령어)
'System Hacking > Study Notes' 카테고리의 다른 글
pwntool 함수 (0) | 2020.01.07 |
---|---|
LD 와 libc.so.6 (0) | 2019.12.29 |
Address SANitizer 미완 (0) | 2019.11.04 |
Tcache_Duplicate (0) | 2019.10.08 |
Unsafe_Unlink (0) | 2019.09.05 |