본문 바로가기

CS & Reversing15

[book] 리버스 엔지니어링 기드라 실전 가이드: Chapter 3 3. downloader.exe downloader.exe는 윈도우 실행 형식인 PE 포맷의 32비트 프로그램이다. 외부에서 다른 프로그램을 다운로드해 실행하는 간단한 다운로더이다. 3.1 분석 접근법 3.1.1 main 함수 분석 main 함수 분석의 장점은 대상을 포괄적으로 분석하고 이해할 수 있다는 점이다. 그러나 특정 처리만을 분석하고 싶거나 용량이 큰 프로그램에는 적합하지 않다. 프로그램 작성 시는 main 함수부터 시작하지만 프로그램 실행 시는 main 함수 앞에 초기화 처리 등이 진행된다 보통 PE 포맷 파일의 실행 파일은 PE 헤더 내의 AddressOfEntryPoint의 RVA에 ImageBase를 가산한 주소에서 실행된다. 기드라에서 엔트리 포인트의 심벌 명은 Entry이다. Addr.. 2023. 7. 24.
[book] 리버스 엔지니어링 기드라 실전 가이드: Chapter 2 2. 기드라 입문 2.1 기드라란 기드라는 미국 국가 안보국(NSA)이 개발한 소프트웨어 리버스 엔지니어링(SRE) 도구이다. 기드라가 지원하는 운영체제는 윈도우 7,10(64비트), 리눅스, 맥 OS(10.8.3 이후)의 버전이다. 동작에 필요한 하드웨어 요건은 메모리 4GB이상, 1GB 이상의 빈 스토리지이다. 또한 자바 11이 설치되어야 한다. 2.2 사용 가이드 2.2.1 프로젝트 생성 프로젝트 생성: 프로젝트 타입은 [Non-shared Project]와 [Shared Project]가 있다. Shared Project를 이용하려면 기드라 서버가 별도로 있어야한다. 생성 후 CodeBrowser과 Version Tracking 버튼을 볼 수있다. 2. 기드라 입문 2.1 기드라란 기드라는 미국 .. 2023. 7. 24.
[book] 시스코 네트워킹 Vol 2 8. 라우팅 프로토콜 RIP 다이내믹 라우팅 프로토콜로 내부용 라우팅 프로토콜(IGP)이다. 디스턴스 백터 알고리즘으로 거리와 방향으로 길을 찾아간다. 길을 결정하는 기준은 홉(Hop) 카운트이며 최대 15 홉 카운트까지만 갈 수 있어 소규모 네트워크에 적합하다. 디폴트 업데이트 주기는 30초이다. 단점은 홉 카운트로만 판단을 하기 때문에 속도나 회선의 신뢰도, 회선의 로드 등은 확인하지 않는다. 또한 15카운트 이상은 Unreachable로 정의해 데이터를 보내지 못한다. *로드 밸런싱이란 모두 같은 홉 카운트를 가지는 경우 패킷을 분산해서 보내는 것이다. 서버에 가해지는 부하(=로드)를 분산시킨다. //RIP 사용을 알림 Router(config)# router rip //라우팅에 참가하는 네트워크 .. 2023. 5. 4.
[book] 시스코 네트워킹 Vol 1 1. 네트워크의 세상에 들어서며 네트워킹: 서로 연결된 장비들끼리 대화를 주고받는 것. 인터넷: 여러 네트워크를 연결한 것. 하나의 프로토콜을 사용한다. 익스플로러나 크롬, 파이어폭스 등과 같은 웹 브라우저를 이용해 통신한다. 필요한 정보가 모두 존재한다. 특징 인트라넷: 회사 직원들만 이용하는 내부의 네트워크. 엑스트라넷: 내부 네트워크를 협력사나 고객까지로 확대한 개념. 2. 네트워크와 케이블, 그리고 다른 친구들 LAN/WAN LAN(Local Area Network): 어느 한정된 공간에서 네트워크를 구성 WAN(Wide Area Network): 멀리 떨어진 지역을 서로 연결하는 경우 이더넷/토큰링 : 네트워킹의 한 방식으로 CSMA/CD 프로토콜을 사용해 통신하는 방법. 100/1,000Mbp.. 2023. 5. 4.
[book] 리버스 엔지니어링 기드라 실전 가이드: Chapter 1 실습 환경 설정 실습 파일 다운로드(https://www.hanbit.co.kr/support/supplement_survey.html?pcode=B7974847632): GZF(기드라 데이터베이스), PE, ELF, APK 포함 기드라 다운로드: https://github.com/NationalSecurityAgency/ghidra/releases *기드라 실행을 위해선 Java 17+ 이상 버전이 필요: https://www.oracle.com/java/technologies/downloads/#jdk20-windows 가상머신에 VM을 올려 기드라 분석 환경 설정 (참고 블로그: https://maktony.tistory.com/11) 기드라에 연습 스크립트 경로 추가 과정 1. Chapter 1:.. 2023. 5. 4.
[book]리버싱과 시스템 해킹의 원리(x64dbg 디버거) 1. x64dbg 디버거 1.1 설치 및 사용 - 링크: https://sourceforge.net/projects/x64dbg/ 최신 버전 설치 후 압축을 해제하면 “release” 폴더에 있는 exe로 실행이 가능하다. 실행시 다음과 같은 창을 볼 수 있는데 메인 창에 해당하는 기능은 다음과 같다. idx 구분 설명 (1) 프로그램 코드 어셈블리어 코드와 명령어 코드를 나타내고 있는 목적 코드 (2) 레지스터 CPU의 레지스터의 값을 보여주는 창이며, 실행 단계에서 값의 변화를 확인 가능 (3) 메모리 메모리 공간의 값을 HEX 코드(16진수)와 ASCII 코드로 보여주며, 관심 있는 주소를 설정해 값의 변화를 확인 가능 (4) 스택 함수에서 사용하는 스택을 보여줌. 지정 확인 가능 (5) 실행 상태.. 2023. 5. 4.
암호학 - 해시 함수 1.1. 해시 함수의 종류 해시 함수의 종류로는 md5, SHA-1, SHA-256, SHA-384, SHA-512, BLAKE2 등이 있다. 1. MD5: Rivest가 1991년에 만든 해시 함수로 128비트의 해시 값을 가진다. MD5 내부 구조 일부에 대한 공격 방법이 몇 개 발견되었기 때문에 더이상 사용되지 않는다. 2. SHA - SHA-1: 1995년에 제작되어 1650비트로 해시 값이 출력된다. 해시 충돌에 취약해 MD5 및 SHA-1는 2005년에 이론적으로 중단되었다, - SHA-2(224 및 256/384 및 512)는 2001년에 발표되어 가장 보편적으로 사용되고 있다. 보안 애플리케이션 및 프로토콜, 암호 화페 거래 검증, 디지털 인증서 및 기타 어플리케이션에 사용한다. - SHA.. 2023. 1. 16.
리눅스 방화벽/ iptable, ufw, firewall Columbia 대학 컴퓨터 공학과 교수인 Steven Bellovin는 원치않는 네트워크 트래픽을 필터링하는 과정을 방화벽으로 처음부른 사람이다. 내부 네트워크가 외부와 연결되는 부분에 일종의 필터를 삽입하는 행위를 방화벽이라고 부르게 되었다. 지금은 현재 5가지 유형의 방화벽이 있다. 패킷 필터링 방화벽 회로 수준 게이트웨이 애플리케이션 수준 게이트웨이(일명 프록시 방화벽) 상태 기반 검사 방화벽 차세대 방화벽(NGFW) 다섯가지 종류에 대한 자세한 설명은 여기 링크를 참고해 설명을 볼 수 있다. 우리는 이 방화벽을 통해 네트워크 패킷에 대한 관리를 할 수 있는데 여러 운영체제 중 리눅스의 방화벽에 대해 살펴보겠다. 리눅스 방화벽은 iptable이 기본으로 되어있다. iptable와 ufw는 모두 리.. 2022. 10. 1.
configure: error: no acceptable C compiler found in $PATH 해결 🔥 에러문 root@ubuntu:/home/root1/Downloads/Python-2.6.5# ./configure –prefix=/opt/python2.65 –with-threads –enable-shared configure: error: invalid variable name: –prefix root@ubuntu:/home/root1/Downloads/Python-2.6.5# ./configure –prefix=/opt/python2.65 –with-threads –enable-shared configure: error: invalid variable name: –prefix root@ubuntu:/home/root1/Downloads/Python-2.6.5# root@ubuntu:/home/ro.. 2022. 9. 28.