본문 바로가기

2012/11

kernel object 와 handle 정리 쓰레드의 경우 쓰레드에 대한 기본 정보가 커널 오브젝트에 생성됩니다. 커널 오브젝트 핸들은 프로세스에서 커널 오브젝트에 접근하기 위한 키 같은 녀석이구요. 프로세스는 커널 오브젝트 핸들 테이블(핸들값과 커널 오브젝트의 실 주소값의 매핑 테이블)을 통해 커널 오브젝트에 접근하게 됩니다. 다시 말하지만, 커널 오브젝트는 해당 오브젝트의 기본 정보를 담고 있습니다. 쓰레드의 경우, 쓰레드의 서스펜드 카운트, 컨텍스트 정보등이 포함되어 있습니다. 결론부터 말씀드리면, 쓰레드의 커널 오브젝트는 하나입니다. 여러 방법을 통해 커널 오브젝트는 공유할 수 있는데.... 1. 자식 프로세스에게 상속 2. Named (쓰레드의 경우 Named가 없죠) 3. DuplicateHandle 이렇게 여러 프로세스가 하나의 커널 .. 더보기
[시스템 기초] 스터디(3주차) 파일 리스트와 파일 속성리눅스에서 ls- al을 했을경우 나타나는 파일정보를 상세히 설명한 그림 입니다. 맨 앞에 -은 파일유형으로 보통 디렉토리의경우 d의 값을 가직 ㅗ있습니다.파일 허가권은 [3-3-3] 식으로 rwx의 값들을 가지고 있는데, 각각이 소유자 그룹 다른사용자의 권한 설정을 가지고 있습니다.링크수는 말그대로 하드,소프트 링크가 걸려있는 수를 말해 줍니다.파일 소유자의 이름과 그룹이름은 따로 설명이 필요 없을 것 같습니다.파일크기는 byte로 나타나며, 마지막 변경 날짜/시간이 그 뒤에 나오고, 마지막으로 파일이름이 있습니다. 파일허가권을 상세히 설명한 그림 입니다. 위에 [3-3-3]이라고 설명 해드렸는데, 더 자세히 설명해 드리도록 하겠습니다.r -> 읽기권한 4 (2의2승)w - > .. 더보기
리그 오브 레전드 첫 금장 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ그냥 기분좋아섴ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 더보기
TCHAR, _tmain등 (SBCS, MBCS, WMCS)의 이해 및 정리 1. 문자셋의 종류와 특성- 문자셋 (Character Sets) : 약속된 문자의 저장과 표현방법, 대표적으로 아스키코드와 유니코드가 있음.- 아스키코드 (ASCII CODE) : 영어 및 확장문자 256개 표현. 1 바이트.- 유니코드 (UNICODE) : 전 세계 모든 문자 표현. 65,536 개 표현가능. 2 바이트. - 문자셋의 종류1) SBCS (Single Byte Character Set)- 문자 저장과 표현에 1 바이트만 사용. 아스키코드가 해당됨. 2) MBCS (Multe Byte Character Set)- 문자 저장과 표현에 1 바이트 혹은 2 바이트를 사용.- MBCS 는 SBCS 를 포함한다. 대부분의 문자들을 2 바이트로 처리하되, 경우에 따라서 1 바이트로 처리한다. 즉, .. 더보기
[문제풀이] abexcm5 분석 문제는 쉬운편이고, 단순히 점프문 수정이라든지 비교하는부분의 값들을 바꾸면 되는 문제입니다.그래서 문제 자체의 풀이보다는 함수가 어떻게 흘러가고 호출되며 무슨일을 하는지에초점을 맞춰서 공부 했습니다. abexcm5의 실행 화면 입니다. 인증키를 요구하고 틀린지 맞는지를 확인 합니다. Ctrl + N을 눌러서 abexcm5의 함수 목록을 확인 했습니다.GetDlqItemTextA는 입력을 받는 함수이고Istrcat은 C언어의 strcat의 함수와 비슷한 함수이고Istrcmp는 C언어의 strcmp 함수와 비슷한 함수입니다. (이름 거의 똑같네요.....) 맨처음 GetModuleHandleA의 시작 주소를 구합니다.(DialogBoxParmA의 생성을 위해) 우선 DialogBoxParmA를 호출해서 사용.. 더보기
스터디 3주차 http://blog.naver.com/pk920207?Redirect=Log&logNo=110146983473 더보기
아파치 설정법 모음 not found 해결법http://blog.naver.com/PostView.nhn?blogId=emtype&logNo=100156272283 우분투 apm 설정(아파치설치 등등)http://www.cmsfactory.net/ubuntu-install-apache-php-mysql 고정 ip 설정http://www.cmsfactory.net/ubuntu-network-static 더보기
sdfsdf sdfsdf 더보기
리눅스 아파치 서버 설치 아파치 설치1. http://blog.naver.com/feelwoo?Redirect=Log&logNo=100119454470 vmx설치2.http://220.70.2.30/Common/Board/Files/2009_openwrt%20%EC%84%A4%EC%B9%98%EA%B0%80%EC%9D%B4%EB%93%9C(v2.0)_ASUS.pdf 더보기
[시스템 기초] 스터디(2주차) 스택 부가 설명-사진 출처-해커스쿨 스택에 대한 이해를 좀더 하기 위해 간단한 함수를 가져 왔습니다.1주차때 스터디를 하신분들은 스택이 어떤식으로 쌓이는지 대략적으로 아시게 되셨을거라고 믿습니다.허나 main()함수에서만 쌓이는 방법은 알고있지만,함수 인자 혹은 다른 함수의 지역변수는 어떻게 쌓이는지에 대해 궁금하실것 입니다.이것을 설명하기 위한 예제 입니다. 프로그램의 실행 결과 모습 입니다.메인함수 내에 있는 x와 y는 가장 오른쪽 스택에 자리잡힘을 알수 있고, 그 다음주소에 area의 주소가 잡힘을 알 수 있습니다.시스템 스택은 cpu를 따라간다고했고, 현재 cpu는 32bit를 기준으로 하기에 모두 4바이트만큼의 크기를 가집니다. 인자 x와 y의 주소값 역시 약간 떨어진곳에 쌓이는것을 확인 할 수.. 더보기
gdb 잘나와있음 http://blog.naver.com/mububja119?Redirect=Log&logNo=130119472091 고등학생분 사이트http://iyounges.org/549 더보기
[시스템 기초] 스터디(1주차) 본 글은 2학기 쥬니어 시스템 스터디 강좌 포스팅이며 쥬니어분들의 복습을 위해 작성 되었습니다. 1. 시스템은 어떻게 실행 될까? 우리가 마우스로 어떤 프로그램을 실행 시킬 때 그 명령을 수행하기 위해서 CPU에서 하드디스크의 자료를 가져옵니다.불러온 자료를 연산후에 입출력 장치를 이용하여 그 결과를 화면에 뿌려 줍니다.하지만 하드디스크는 CPU의 연산속도를 따라 올 수가 없습니다. 느린속도로 인해 효율성이 떨어 집니다.이때 사용된 개념이 주기억장치(RAM)입니다. 휘발성데이터로 CPU와 하드디스크 사이에서 숨가뿌게 움직이게 됩니다. 이것이 바로 우리가 사용하는 폰노이만 구조 입니다. 이 방식은 크게 주기억장치(RAM)와 중앙처리장치(CPU), 그리고 입출력 장치 (IOP - Input Output Pr.. 더보기
[안티디버깅] UPX packer 이해 실행압축 실행압축이란 실행가능 한 파일(PE파일)을 대상으로 파일 압축을 하지만, 파일 내에 압축해제 코드를 포함 하고 있어서 실행되는 순간 메모리에서 압축을 해제시킨 후 실행을 시키는 기술 압축해제 루틴이 존재 하기 때문에, 메모리에서 압축을 해제 시킨 후 실행되는 것이 특징 사용목적으로는, 압축이기에 파일 자체의 크기를 줄이는 효과로 전송 및 보관에 용의 함을 얻기 위함이고 가장 큰 목적으로는 내부 코드와 리소스를 임의의 사용자가 보지 못하게 방해 하는 것 입니다. 즉 압축이 되어있기에 임의의 사용자가 보기에는 압축된 데이터는 알아보기 힘든 형태의 바이너리로 저장이 되어 있습니다. 이중 UPX 실행압축에 대해 알아 보도록 하겠습니다. . 첫째 섹션인 UPX0의 RawDataSize는 0이기에 파일 내.. 더보기
[안티디버깅] Anti-Debuging(안티디버깅) 기초 안티 디버깅에는 2가지의 그룹이 있습니다. static그룹 -> 맨 처음 실행될 때 안티 디버깅이 실행, 한번만 해제하면 되는것 입니다. dymamic그룹 -> 실행 중에 계속 해제를 해주어야 함, 디버거 트레이싱을 방해하는 것 입니다. 디버깅 트레이싱이란? F8 안티 디버깅은 디버기 프로세스에서 자신이 디버기 당하는지 여부를 파악하는 기법 발견하면 종료코드를 실행하거나(대부분) 실행에 방해를 하는 코드를 실행 안티디버깅의 목적 디버거 탐지방법 디버거 환경탐지 디버거 강제 분리 회피 방법은 탐지 코드에서 얻어오는 정보를 변경함 현재 프로세스 디버깅을 판단하기 위해 PEB 구조체 정보 이용 합니다. PEB 구조체 정보를 이용하는 것이 현재 가장 잘 사용되는 안티 디버깅 기법입니다. PEB 구조체 주소는 F.. 더보기