- lumenFC 축구 동호회
- 마샤블
- 웍스프레소
- 소셜@나눔<소셜미디어나눔연구소>
- 리버스코어
- LAIN
- LAIN 이사한 블로그
- TeamCR@K
- Sunnyday
- 보안 걱정이
- 리버싱 학습
- securityfirst_jo
- Practical Security Blog
- 세상, 그 유쾌한 전장
- 악성코드관련블로그
- Back to the Mac
- 패킷분석입문
- PacketInside / 네트워크 패킷 분석 블로그
- 침해사고분석 :: 네이버 블로그
- 소프트웨어 기술자경력관리시스템
- JK.Moon
- 자바 온라인학습
- Ezbeat의 도서관
- Dreams of a Final Journey
- IT eBooks - Free Download - Bi…
- Index of /madchat/coding/rever…
- Security Insight
- Reversing war game
- 고길고기
- clamav
- zerowine
- FORENSIC-PROOOF
- jquery 예제
- 조대협의블로그
- 국가과학기술인력개발원 교육포털 사이트
- 빅데이터, splunk
- 지식을 연주하는 사람
- malware analysis system
- 건국대토익스피킹
- 소프트웨어개발 및 협업도구
목록01.About Programming (134)
kisoo
C언어를 사용하다 보면 예외처리 부분이 상당히 미흡하다는 것을 알 수 있습니다. C++은 언어 차원에서 try, catch라는 예외처리 문법을 제공해 주고 있습니다. C언어는 C 표준 라이브러리에 있는 setjmp(), longjmp() 함수를 사용하여 예외처리를 할 수 있지만 상당히 구식이라 직관적이지도 못하고 사용하기도 불편합니다. 그래서 C언어에서는 Structured Exception Handler(SEH)라는 예외처리 방식을 사용할 수 있습니다. SEH는 Microsoft Visual C++ 컴파일러 차원에서 제공하는 예외처리 문법입니다. 물론 윈도우상에서만 사용할 수 있습니다. void tryexcept() { __try { int *world = NULL; *world = 8; // 널 포인..
요즘 나오는 컴퓨터들은 기본적으로 CPU의 개수가 2개 이상입니다. 예전에는 물리적인 CPU를 2개 이상 꽂아서 사용했지만, 최근들어서는 물리적인 CPU 하나에 여러개의 코어를 탑재하여 나오고 있습니다.(인텔 코어2 듀오, 코어2 쿼드 등) 펜티엄 4때에는 하이퍼쓰레딩이라는 기술이 사용되기도 했습니다. 윈도우는 실제로 CPU가 2개 인 것이나, 코어 2 듀오 CPU를 하나만 꽂았을 때, 펜티엄4의 하이퍼쓰레딩 모두 여러개의 CPU로 인식합니다. WinDbg를 켜고 !cpuinfo 명령을 입력하면 현재 CPU의 개수를 확인할 수 있습니다. 0: kd> !cpuinfo CP F/M/S Manufacturer MHz PRCB Signature MSR 8B Signature Features 0 6,15,11 G..
윈도우에서 드라이버를 로드하려면 일단 CreateService 함수로 서비스를 생성해야 합니다. 드라이버를 잘 사용하고 난 뒤 드라이버를 언로드하고 드라이버의 서비스를 삭제할 때 DeleteService 함수를 사용합니다. 이때 응용프로그램과 통신을 위해 생성한 디바이스 오브젝트 등을 CreateFile 등의 함수로 열었을 때 꼭 핸들을 닫아줘야 합니다. 핸들을 닫지 않은채로 DeleteService 함수로 드라이버 서비스를 삭제하게 되면 완전히 삭제되지 않고 흔적이 남아있게 됩니다. 즉 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 키 아래에 DeleteFlag라는 DWORD 값이 생기게 됩니다. 데이터는 1이 들어가있습니다. 서비스가 완전히 삭제되지 ..
High CPU 문제는 Memory Leak 문제와 함께 troubleshooting 하기가 껄끄러운 문제이다. 대부분이 적절한 Tool의 도움을 받아야만 풀 수 있다는 것도 유사하다. 일반적으로 High CPU Issue는 Performance Monitor의 도움을 받아 특정 Application이 CPU를 소비하고 있다는 것을 확인할 수 있으며, High CPU 기간 동안 메모리 덤프를 수집하여 누가 지속적으로 CPU time을 잡아 먹고 있는 지를 확인하는 작업이 일반적이었다. 이러한 작업은 kernel mode에서 CPU를 소비하는 경우에 어려움이 있었다. 문제 시점에 kernel dump를 수집한다고 해도 이는 snapshot 이기 때문에 High CPU가 지속되는 과정을 단정 짓기 어려웠다...
오늘 G그룹사 사이트에서 safetdi.sys 에서 덤프가 발생 하였다. 심볼이 맞지 않으니 당연히 삽질 2시간 하다가 .... 선임한테 배포된 pdb , sys 파일이 있어서 분석이 가능 했다. 1: kd> !analyze -v ******************************************************************************* * * * Bugcheck Analysis * * * ******************************************************************************* DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1) An attempt was made to access a pageable (or..
오늘은 무선랜 네트워크 정보에서 SSID 값을 가져 오는 부분에 대해서 설명 한다. 개발 하게 된 동기는 사이트에서 우리 솔루션을 도입 한 후에 무선랜 차단 정책을 설정 하였는데 3/1 가량이 무선랜을 사용 하고 있었다. 무선랜 을 허용 하자니 안전하지가 않고 차단을 해 놓으니 사용 할 수가 없어서 SSID 를 얻어 와서 설정한 허용 정책 (SSID 값) 과 비교 하여 동일 하다면 무선랜 허용을 해 줘야 한다는 사이트 담당자 요구 사항이 있었기 때문이다. 어쨋든 개발 후에 테스트를 하는데 자꾸 SSID 값 뒤에 쓰레기 값이 붙었다. 예)KSKANG_SSID *&()$DF34 과 같은 쓰레기 값들.... 실제로는 KSKANG_SSID 이값만 나와야 정확히 정책과 비교 된다. 그래서 버퍼 셋팅을 잘못 한 것..
권한이 낮은 어플리케이션에서 높은 어플리케이션으로 메시지를 전송 할때 사용 한다. 권한이 높은 어플리케이션에서 ChangeWindowMessageFilter api 를 사용하여 메세지를 필터에 등록 해 준다. 단, VISTA 와 WINDOWS 7 에서는 service session 과 user session 이 확연히 분리 되어 있다. service process area 가 isolation 이라는 것이다. 그러므로 service porcess 와 user process 와 통신 하기 위해서는 아래와 같이 필터 등록 만으로 처리 할 수가 없다. 그렇게 하기 위해서 했던 방법으로는 named pipe or 높은 권한을 가진 service process 에서 user process 를 CreateProce..
$475 라는 거금을 주고 CISA 원서 접수를 했다. 아직 많은 준비를 하고 있지 않은 상태지만 접수를 하고나니 왠지 정신이 뻔쩍 드는군... 일단 부딪쳐 보는 것도 좋지만 한번 열심히 해서 꼭 합격 하도록 하자 !!! 시험 날짜 : 2009년 6월 13일
코드를 분석하다가 보면... 특정 함수나 변수명의 선언이나 정의를 보고 싶을때... 무심코 F12(CTRL+F12) 또는 마우스 오른쪽을 눌러 "선언으로 이동" 또는 "정의로 이동"를 사용한다. 그런데 문제는 대충 함수(변수)의 정의나 선언을 살펴보고 바로 이전으로 되돌아 가고 싶은데 북마크나 보고있던 부분의 line의 줄수를 특별히 기억해 두고 있지 안았다면 낭패 늘 어디더라 하면서 찾기가 일쑤였는데... 그럴땐 CTRL+*(숫자패드의 *)를 눌러보자. 그럼 이전 코드부분으로 되돌려진다. 아마도 정의 또는 선언으로 이동할때 위치를 스택에 저장하는듯 하다. 나도 어디선가 주워들은 내용인데 MSDN이며 구글링을 해도 찾지를 못하겠다. 회사 동료가 보다가 신기해 하길래 포스팅. 더불어 가급적 마우스를 안쓰고..
비스타 x64(64비트)버전에서 발생한 덤프를 분석해 보았다. 이미 알고 있으시겠지만 xp 에서는 디폴트로 설치된 drwtsn32.exe가 비스타에서는 없어졌다. 개인적으로 많이 아쉽다. 대신 오류가 발생하면 작업관리자에서 오른쪽 버튼 누르고 덤프를 생성해야 한다.(구찮아~) 안좋은점이 있다면 좋아진 점은 꼭 있다.(세상은 공평한가?!) 좋은점은 Hang(CPU 100%)가 되었을 때 기존에는 adplus를 이용해만 했다. 그러나 윈도우 비스타, 윈도우 2008 서버에서는 작업관리자에서 오른쪽 마우스를 클릭해서 바로 덤프를 생성하면 된다. 어제 DUMP를 하나 분석했는데 특이하게 !analyze -v extension 명령을 통해 분석한 오류 결과가 스레트 call stack이 실제 오류가 난 스레드 c..