본문 바로가기

Subject

서비스 프로세스 0. 정의 1. 실행구조 -서비스 제어기(제어판>서비스)가 SCM(Service Control Manager)에게 요청하여 서비스 프로세스를 관리하는 구조. 출처: reversecore.com -모든 서비스는 SCM(service.exe)의 자식프로세스로 실행됨. 2. 디버깅 방법 -서비스 프로그램을 디버거로 실행할 경우에 서비스 메인함수(ScvMain)가 실행되지 않는다. > SCM이 실행한 서비스를 attach 하여 디버깅 하거나, EIP 강제 변경으로 디버깅을 진행해야 함. 1) EIP 강제 변경 서비스 프로세스 Main 함수의 StartServiceCtrlDispatcher()의 인자값을 확인하여 SvcMain 함수의 시작주소를 알아내고, EIP를 변경하여 ScvMain() 디버깅. BOOL WI.. 더보기
system 함수로 환경변수 실행 보호되어 있는 글입니다. 더보기
세그먼트 레지스터, 플레그 레지스터 보호되어 있는 글입니다. 더보기
CentOS] 시간 설정 #cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime 더보기
CentOS] yum 이용한 웹서버 설치 출처: https://blog.lael.be/post/1721 CentOS 7.0 이상 버전에서 아래의 방법으로 세팅할 수 있습니다. CentOS 운영체제에 관해서는 https://ko.wikipedia.org/wiki/CentOS 를 참조하세요. 1) 리눅스 버전체크#uname -a Linux laeldev 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux2) CentOS 버전체크#cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core)3) 하드용량체크#df -h 대략 다 더하면 50GB의 여유공간이 있다. 4) 메모리 체크#free -m 전체 .. 더보기
SEH - 예외처리기 보호되어 있는 글입니다. 더보기
SEH - 예외 종류 0. 디버깅 중 자주 접하는 예외 목록. -EXCEPTION_ACCESS_VIOLATION(0xC0000005) :존재하지 않거나 접근 권한이 없는 메모리 영억에 대해서 접근. ex) MOV DWORD PTR DS:[0], 1 > 메모리 주소 0은 할당된 영역이 아님. ADD DWORD DS:[401000], 1 > .text 섹션의 시작주소 [401000]은 write 불가능(read 속성만 가짐) XOR DWORD PTR DS:[80000000], 1234 > Kernel 영역인 [80000000]는 user모드에서 접근 불가능. -EXCEPTION_BREAKPOINT(0x80000003) :CPU가 BP 명령어(INT3:0xCC)를 실행할 때 발생되는 예외. > 디버거는 이 예외를 이용하여 BP 기.. 더보기
PEB 0. 정의 -프로세스 정보를 담고있는 구조체 -TEB 구조체 멤버 ProcessEnvironmentBlock이 PEB 구조체의 주소를 담고있음. 1. 접근 방법 -FS 세그먼트 셀렉터를 이용해 TEB 구조체에 접근. > FS:[18] = TEB 구조체 시작주소. (FS:[0] = FS:[18]) >> MOV EAX, DWORD PTR FS:[18] MOV EAX, DWORD PTR DS:[EAX+30] > FS:[30] = PEB 구조체 시작주소. >> MOV EAX, DWORD PTR FS:[30] 2. PEB 구조체의 중요 멤버 -PEB:[0x2], BeingDebugged : UChar > 디버깅: 1 정상: 0 >> 디버깅 체크 함수 Kernel32!IsDebuggerPresent()가 이 멤버의.. 더보기
strspn, strcspn 보호되어 있는 글입니다. 더보기
JPG 마커, Exif 보호되어 있는 글입니다. 더보기