전체 글 145

[WinAPI] 프로세스 순회해보자

#WinAPI #프로세스 탐색 1. EnumProcesses(DWORD *lpidProcess, DWORD cb, LPDWORD lpcbNeeded); #include 로 불러와서 실행가능하다. 현재 실행 중인 프로세스들의 PID 를 불러와서 배열에 저장한다. [인자설명] lpidProcess : 실행 중인 프로세스들의 PID 를 저장할 DWORD 배열이다. cb : 첫 번째 인자 배열의 사이즈이다. lpcbNeeded : 전체 프로세스 PID 들의 총 바이트를 저장할 DWORD 변수이다. ( DWORD(4) * 프로세스들의 수 ) = ( 총 바이트 ) 2. HANDLE OpenProcess(DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId);..

VMware Windows 에서 RDP 환경 구축하기

#VMware #RDP #원격데스크탑 #분석환경 노트북을 하나 새로 장만했다. 구형 노트북은 그냥 집에 두고 VM 돌려서 원격이나 붙일 참이다. 대강 망 구성(?) 이라고 하면 이렇다. 집에서 그냥 공유기 하나 붙잡고 쓸 때의 상황 집 밖에서 공인IP를 통해 통신할 때의 상황 후자는 급하게 필요한 상황이 아니어서 일단 전자를 기준으로 해보자. 첫 번째로는 해당 Windows VM 세팅에 들어간다. 그리고 Network Adapter 세팅에서 커넥션 타입을 Bridged 로 설정해놓는다. 아마 기본적으로 대부분은 NAT 로 쓰고 있어서 호스트 PC 랑은 다른 대역을 쓰면서 원하면 포워딩을 했을 것이다. Bridged 세팅은 호스트 PC 의 공유기에 VM 이 실제로 하나 더 물려있는 것처럼 물리 공유기와 직..

ASUS 젠북 14 UM425QA-KI063 1주일 사용리뷰

ASUS 젠북 14 세잔 전역을 맞이한 기념으로 새학기 대비 노트북을 장만해야했다. 입대 전 쓰던 한성 인민에어가 캠, 스피커 등등 맛가기 시작했기 때문이다... 사양도 사양이고 머신이랑 여러가지 돌리기가 애매해서 노트북을 알아보기로 하였는데, AMD 라이젠 CPU 노트북이 괜찮은 것 같아서 조금 물색해보고 있다가 ASUS 젠북 14 가 7월? 에 나온 걸 발견했다. 전체적인 하드웨어 사양은 이렇다. 세잔 5600H cpu 가 굉장히 눈에 띈다. 코어 수를 눈여겨 보았는데, 6코어 12스레드 면 머신 한 두개 정도는 넉넉히 돌릴 듯 해서 일단 합격점을 주었다. 그리고 동시에 발열도 걱정을 많이했다. 이전 세대인 르누아르, 루시엔 에 비해서 세잔은 발열관리가 잘 안된다는 평이 많았기 때문에... 이거는 뭐..

<사는이야기> 2021.08.08

[Git] fork 한 리포지토리 최신버전 동기화하기

#Git #Github #merge #pull #fetch Fork 를 해온 리포지토리 저장소가 최신버전 커밋으로 업데이트 되었을 때 가져오는 법. 맨날 까먹어서 적어놓음. 1. remote 리포지토리 git remote add upstream [원본저장소 URL] 2. 해당 리포지토리 fetch git fetch upstream 3. fetch 한 리포지토리의 master 브랜치로 부터 merge git merge upstream/master 4. 내 리포지토리에 변경 내용 push git push -u origin master 끗

[그래프이론] SCC(Strongly Connected Component)

#SCC #그래프이론 #DFS #코사리주 알고리즘 Strongly Connected Component(이하 SCC) 는 특정 그룹에서 뽑은 두 노드 A,B 에서 A->B 로 향하는 경로가 항상 존재하면 해당 그룹을 SCC 라고 칭한다. - 같은 SCC 그룹 내에 서로 다른 두 노드 간의 경로가 항상 존재해야함. - 서로 다른 SCC 그룹 내에서 노드 한 개씩 뽑아서 A,B 노드라고 하면 A->B 가 존재하면 B->A 는 존재하면 안된다. 그룹 간의 사이클을 없앤다. 위 사진은 방향 그래프 내에서 SCC 그룹을 표시한 것이다. SCC 를 다룬다는 것은 주로 SCC 그룹찾기(그룹 안의 노드 출력하기), SCC 그룹 수 찾기 등등에 쓰인다. SCC 를 찾기, 탐색 하기 위해서 쓰는 알고리즘이 두 가지 있는데 ..

<개발>/<algo> 2021.07.30

[Chapter1] 기본적인 분석지식

기본 분석지식 Microsoft 프로그램의 Linking 방식 대개 공통적으로 쓰여지는 윈도우 라이브러리 파일(.dll) Function Name Convention 조금 다시 상기할 부분만 정리 1. Microsoft 프로그램의 Linking 방식 MS Program uses 3 types of Linking methods. Static, Runtime and Dynamic Linking. I only deal with Runtime Linking method. Runtime linking is commonly used in malware, speciallly when it&#39;s packed or obfuscated. .exe file that use runtime linking type conn..

[CSS] flex display 에서 justify-content 가 제대로 작동하지않을때?

.container { display: "flex" ... } 가로, 세로 축 정렬을 할 때 flex display 방식을 많이 썼는데 갑자기 justify-content 가 제대로 작동을 안했던 일 때문에 찾아봄. justify-content property isn&#39;t working 결론적으로는 flex 내부 아이템들이 고정되고 나서도 밖의 컨테이너와의 남은 여백이 있어야 justify-content 가 잘 작동한다는 당연한 사실이었다. 자세한 이유는 아래와 같다. if your flex items are all inflexible (flex: none or flex: 0 0 auto), and smaller than the container. if your flex items are flexi..

[Pwnable.kr] loveletter

#Pwnable.kr #loveletter #Rookiss loveletter 문제이다. main 함수의 처음 부분이다. 전역변수 loveletter 256 바이트를 0으로 셋팅 해놓고, epilog 와 prolog 문구의 길이를 산출해내어 지역변수에 저장해놓는다. 해당 전역변수들은 후에 사용된다. 그리고 256 바이트짜리 배열 s 에 값을 입력받는다. 취약점 촉발의 시작이다. 그리고 protect 함수에 s 를 집어 넣고 "약간" 의 s 배열 손질을 한다. protect 함수에서의 문제 로직은 대강 이러한데 strcpy 부분에 있는 특수문자 목록에 있는 문자가 s 에 있으면 즉시 멈춰서 해당 부분에 0xA599E2 를 때려박는다. 이 부분은 정확히 3바이트를 넣는 것처럼 보이지만, 디버거에서 보면 dw..

[Pwnable.kr] brainfuck

#Pwnable.kr #brainfuck #Rookiss brainfuck 문제이다. main 함수부터 까보면 위와 같이 생겼다. 단순히 fgets 로 입력받아오는 것처럼 보인다. 입력 받은 값을 전달하는 do_brainfuck 함수를 보자. do_brainfuck 함수의 모습이다. main 함수를 다시보면, tape(0x0804A0A0) 전역변수 값을 받아오는 전역변수 p(0x0804A080) 가 있는데 do_brainfuck 에서는 이 p 변수를 가지고 포인터조작을 할 수 있는 함수이다. " 결론적으로는 got_overwrite 문제이다. " 시나리오는 다음과 같다. p 변수와 멀리 떨어지지 않은 곳에 위와 같은 got table 이 존재하는데, 이곳은 do_brainfuck 함수에서 문자로 원하는 ..

반응형