- 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 /12.Default knowledge (18)
kisoo
함수 호출로 인한 스택 구성시, 처음에, 이전의 EBP 레지스터 값을 스택에 저장한다. 이를 이용해 현재의 EBP + 0x4 에서 함수의 Return Address 를 찾을 수 있다. 이 방법을 반복하여, 함수 콜 관계를 확인할 수 있다. 예제 ) void __fastcall WhoCallMe() { PVOID pEBP; PVOID pStackFrame; DWORD dwReturnAddr; DWORD dwArgs[3]; CHAR sMsg[512]; //__asm mov eax, [ebp+4] //__asm mov dword ptr [dwReturnAddr], eax __asm mov pEBP, ebp do{ pStackFrame = pEBP; pEBP = (PVOID)*(PDWORD)(pEBP); dwR..
가장 맣은 설정 내용과 다양한 구성을 가지고 있는 키 입니다. 때문에 이 레지스트리의 설정을 바꾸면 시스템에 많은 영향을 미치는대 어떻게 바꾸느냐에 따라 좀더 좋은 구성으로, 잘못되어 최악의 경우 윈도우의 재설치를 요할지도 모릅니다. 이 키는 윈도우에서 사용하는 파일 시스템, HW Driver, 윈도우 커널이 사용하는 정보에 이르기까지 윈도우 하부 시스템에 관련된 다양한 설정 내용을 포함하고 있습니다. 제어판의 구성 요소중 HKEY_CURRENT_USER→Control Panel에서 볼 수 없었던 요소들도 설정할 수 있습니다. 이 SYSTEM키에서 가장 많이 볼 수 있는 키는 ControlSet입니다. Control Set은 드라이버 설정, HW 프로필 설정, 레지스트리 항목을 그룹으로 모아 놓은 것입니..
2진수 10진수 8진수 16진수 문자 설명 0000 0000 0 0 0 NUL NULL 문자 0000 0001 1 1 1 SOH 헤더 시작(Start Of Header) 0000 0010 2 2 2 STX 본문 시작, 헤더 종료(Start of TeXt) 0000 0011 3 3 3 ETX 본문 종료(End of TeXt) 0000 0100 4 4 4 EOT 전송 종료, 데이터 링크 초기화(End Of Transmission) 0000 0101 5 5 5 ENQ 응답 요구(ENQuiry) 0000 0110 6 6 6 ACK 긍정응답(ACKnowledge) 0000 0111 7 7 7 BEL 경고음(BELl) 0000 1000 8 10 8 BS 백스페이스(BackSpace) 0000 1001 9 11 9 ..
SERVICE PROCESS 에서 HKEY_CURRENT_USER 을 OPEN 하면 FAILED 가 발생 했다. NT 이상 VISTA 까지 이 부분을 아래와 같이 처리 하였더니 되더라~~~방법은 CURRENT USER PROCESS 의 SID 값이다. 소스 우선 아래와 같이 현재 user 의 session id 를 통해서 user process 의 pid 를 구해야 한다. user process 중에 항상 뜨는 프로세스가 무엇이 있을까>???? 바로 explorer.exe 이다. 이 프로세스의 pid 를 통해서 SID 값을 구하여 레지스트리에 접근 하면 QUERY 가 가능하다. @desc : vista / xp / nt 이상의 os 에서 service process 가 HKEY_CURRENT_USERS ..
나만 사용하는 줄 알았는데 다들 !process 0 7를 많이 사용한다. OSR's ntfsd List: FltSendMessage usuage Windbg에서 커널 디버깅 시에 이 명령어를 사용하면 시스템에 존재하는 모든 프로세스와 그에 속한 쓰레드들의 콜스택이 리스팅 된다. 또한 IRP나 락 정보들도 출력 되므로 어디에서 hanging이 발생했는지 추적이 가능하다. 또한 쓰레드가 얼마나 Wait 스테이트에 있는지도 알수 있으므로 어떤 쓰레드가 지금 문제가 있는지도 파악이 가능하다. 단 문제가 하나 있는데, 이 명령을 한번 실행하면 명령 수행 종료까지는 적어도 수십분 이상 기다려야 한다는 것이다.
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이 들어가있습니다. 서비스가 완전히 삭제되지 ..