본문 바로가기

Programming60

python - dumpcode c언어의 dumpcode.h 기능을 python에서 사용하기 위해 만들었다. 코드가 좀 지저분하다;; import sys, struct, string def hexdump(data, align_size=1, baseaddr=0x00000000): ''' data = Dump data align_size = 1, 2, 4 (byte, word, dword) baseaddr = Base Address ''' if not (align_size in (1, 2, 4)): return False if len(data)%align_size != 0 : return False ascii_data = '' for i in range(0, len(data), align_size): ### print address ###.. 2014. 2. 26.
python - blind sql injection 툴 예전에 webhacking.kr 풀때 blind sql injection할 때마다 python 코드 수정하기 귀찮아서 만들어 놨던 gui 프로그램이다. [*] python code => 간략한 사용법 [*] HTTP Header 또는 Body에 쿼리 부분를 넣을 부분을 %s로 한다.[*] seq_search는 '=' 연산자 사용.[*] seq_search에 여러 범위 설정 가능. ex)1-5,10-15[*] bin_search는 true의 결과값에 ' 2014. 2. 26.
SSDT 후킹 [ref - SSDT_Hooking.pdf - Written by 백구] Native API의 호출과정은 위의 그림과 같다. 1. INT 0x2E나 SYSENTER 같은 시스템 콜이 호출된다. (XP 이후는 SYSENTER를 사용)- http://luckey.tistory.com/86 !idt 2e Dumping IDT: 2e:8053f481 nt!KiSystemService kd> rdmsr 176 //SYSENTER_EIP_MSR : 0x176msr[176] = 00000000`8053f540kd> ln 00000000`8053f540(8053f540) nt!KiFastCallEntry | (8053f649) nt!KiServiceExitExact matches: nt!KiFastCallEntry =.. 2014. 2. 22.
가상주소-선형주소-물리주소 변환 1. 가상 주소 세그먼트 레지스터 (16bit) 메모리 주소 (Virtual Address) [*] 세그먼트 레지스터 -> GDT 또는 LDT의 Segment Descriptor 을 참조 (GDTR -> GDT, LDTR-> LDT) - GDT : 모든 프로그램이 참조 가능한 세그먼트 디스크립터 테이블- LDT : 태스크당 독립적으로 세그먼트 디스크립터 테이블 정의 - 세그먼트 레지스터가 참조한 세그먼트 디스크립터의 Base Bits와 가상 주소를 더해서 선형 주소를 구하게 된다. (이를 Sementation이라고 함) * Segment Register (16bit) INDEX (13bit)TI (1bit)RPL (2bit) - INDEX는 디스크립터 테이블 배열의 index 값으로 사용.- TI bit.. 2014. 1. 25.