목록분류 전체보기 (82)
'll Hacker
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/6kexI/btsG2V96FQu/fPG5SjicKK3UHlNCeCwjXK/img.png)
SubTopic : 컴퓨터 구조, 명령어 집합구조, x86-64컴퓨터 구조 ⊃ 명령어 집합 구조 ⊃ x86-64 아키텍처 1. 컴퓨터 구조 (Computer Architecture)Def. 컴퓨터가 효율적으로 작동할 수 있도록 하드웨어 및 소프트웨어의 기능을 고안하고, 이들을 구성하는 방법을 말함. 폰 노이만 구조중앙처리장치(연산, 제어) + 기억장치(memory) => 버스로 통함버스란? 💡 컴퓨터 부품과 부품 사이 또는 컴퓨터와 컴퓨터 사이에 신호를 전송하는 통로 - 데이터 이동 = 데이터 버스 - 주소 지정 = 주소 버스 - 읽기/쓰기 제어 = 제어 버스 - 랜선, 데이터전송을 목적으로 하는 소프트웨어, 프로토콜 = 버스 명령어 집합 구조(Instruction..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dc1xLT/btsGuofUCkU/oZiRmCMPjlfHPSknzkml31/img.png)
어떤 소프트웨어를 분석하기 위해 사용하는 분석 1) 정적 분석 프로그램을 실행시키지 않고 분석 프로그램의 전체구조 파악 용이 프로그램이 어떤 함수로 구성됐고, 함수들을 서로 어떤 호출 관계를 갖는지, 어떤 API를 사용하고 어떤 문자열을 포함하는지 등을 종합적으로 살펴볼 수 있음 분석 환경 제약 X 난독화 적용되면 분석이 어려워짐 다양한 동적 요소 고려하기 쉽지 않음 2) 동적 분석 코드를 자세히 분석해보지 않고도 프로그램의 개략적인 동작 파악가능 분석 환경을 구축하기 어려울 수 있음 안티 디버깅 취약 동적 분석 도구 = x64dbg(디버거) 디버거 = 프로그램의 버그를 찾아내고 제거하기 위해 사용되는 도구, 이를 이용하면 실행 중인 어셈블리 코드, CPU의 레지스터 상태, 메모리와 스택의 값을 확인하며..
프로그램과 컴파일 프로그램 = 연산 장치가 수행해야하는 동작을 정의한 일종의 문서 프로그램을 연산 장치에 전달하면, CPU는 적혀있는 명령들을 처리하여 프로그래머가 의도한 동작을 수행 (컴퓨터의 대부분이 Stored-Program Computer의 형태로 개발) = 바이너리 컴파일러와 인터프리터 CPU가 수행해야 할 명령들을 프로그래밍 언어(고급언어)로 작성 = 소스 코드 컴퓨터가 이해할 수 있는 기계어(저급언어)의 형식으로 번역 = 컴파일 컴파일을 해주는 소프트웨어 = 컴파일러 ex) GCC, Clang, MSVC 등 이외 파이썬이나 자바스크립트는 컴파일이 필요없음. 왜냐면 사용자의 입력 또는 사용자가 작성한 스크립트를 그때 그때 번역해서 CPU에 전달하기 때문에(이를 인터프린팅이라고 함, 똑같이 처리..
Engineering = 완성품과 이를 구성하는 부품들의 기능과 설계를 고안, 제작하는 과정 Reverse Engineering = 완성품을 거꾸로 해부?하는 과정(이라고 이해함) 리버싱의 용도 1) 좋은 일😀 각종 프로그램의 보안성을 평가 악성코드 분석 2) 나쁜 짓😡 상용 프로그램을 구매하지 않고 무료로 이용하기 위해 쓰는 불법 프로그램을 생성, 각종 프로그램을 분석해서 게임핵 만들기 관련 저작권법 저작권법 제35조의3 (저작물의 공정한 이용) 제1항 제23조부터 제35조의2까지, 제101조의3부터 제101조의5까지의 경우 외에 저작물의 통상적인 이용 방법과 충돌하지 아니하고 저작자의 정당한 이익을 부당하게 해치지 아니하는 경우에는 보도ㆍ비평ㆍ교육ㆍ연구 등을 위하여 저작물을 이용할 수 있다. 저작권법..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/craBL2/btsGktNqZdA/g6akENmn502sjNU7qXbx40/img.png)
문제 Ctrl+F 눌러서 organization 검색 결과 중 플래그인 것처럼 위장한 게 보임. 따라서 서버 열어서 기본설정 파일에 나와 있는 admin계정 id와 비번 확인하고 그것으로 로그인 후 찾아보았다. Server admin settings에 플래그가 있는것을 확인!
사전적 의미 : Embedded = 내장된, 내재된 임베디드 ⊃ 펌웨어 Def. 펌웨어(Firmware) - EPROM, Erasable Programmable Read-Only Memory에 담긴 데이터를 칭하는 단어 - 비휘발성 메모리 - 중앙에 있는 칩에 자외선을 사용하여 데이터를 작성하면 프로세서는 EPROM을 읽어 데이터에 있는 명령어를 실행 => 최근에는 비휘발성 메모리로 EPROM이 아닌 Flash memory 사용 💡Flash memory는 전기적으로 읽고 쓰기가 가능한 메모리로 USB나 SSD나 Flash memory를 사용하고 있음 - 요즘은 임베디드 기기의 비휘발성 메모리에 담긴 데이터로 부르게 됨 예제 firmware 는 API 서버를 작동시켜 1413포트와 8899포트를 여는 동작..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dEMaxE/btsFQSgiZ0S/QinBzGopOJMx0wah20SHo1/img.png)
코드 분석 믿을 수 있는 주사위와 카드: 블랙잭과 크랩스를 믿을 수 있는 방식으로 구현하기 위해서는 검증 가능한 주사위와 카드가 필요합니다. 정보 이론적인 커밋먼트를 사용하여 플레이어가 부정을 저지르지 못하도록 함: 플레이어가 부정을 저지르는 것을 방지하기 위해 정보 이론적인 커밋먼트를 사용했습니다. 1. 주사위 게임 1~6사이 무작위 정수 생성 roll -> 주사위를 굴린 결과 #주사위결과 검증 pk -> 커밋에 사용된 키 comm -> 커밋된 값 guess -> 추측한 값 r -> 커밋에 사용된 임의의 값 2. 카드 게임 #카드 뽑기(draw_card) suits -> 카드 무늬 C (클로버), S(스페이드), D (다이아몬드), H(하트) value = 카드값 (2,3,4,5,~,Ace) card ..