ptrace - Linux injection ( code injection / so injection )
리눅스는 윈도우의 CreateRemoteThread()같은 API를 제공하지 않기 때문에, injection에 ptrace()를 이용한다. 2016/12/25 - [System/LINUX & UNIX] - ptrace 타인의 권한으로 실행된 프로세스에는 TRACEME와 ATTACH가 불가능하기 때문에 동작하지 않는다. 타인 소유 파일...
리눅스는 윈도우의 CreateRemoteThread()같은 API를 제공하지 않기 때문에, injection에 ptrace()를 이용한다. 2016/12/25 - [System/LINUX & UNIX] - ptrace 타인의 권한으로 실행된 프로세스에는 TRACEME와 ATTACH가 불가능하기 때문에 동작하지 않는다. 타인 소유 파일...
자주 사용하는 shellcode를 -S 옵션으로 컴파일 한 결과 파일( inlineasm.s ) \_\_volatile\__을 사용했기 때문에 입력한 어셈블리 그대로 컴파일 되었다. .file "inlineasm.c" .version "01.01" gcc2\_compiled.: .text .align 4 .globl main .typ...
ELF 파일의 Section header를 조사하여 got 의 위치를 얻을 수 있다. 위 파일의 got 크기는 0x20이므로 32byte임을 알 수 있다. Partial-RELRO(default) 바이너리는 .got.plt를 사용한다. 이 경우 . got는 4byte에 0만 들어있다. Full-RELRO 옵션으로 컴파일된 바이너리는 .got를 사용한...
IEEE 802.3( Ethernet ) Data-link layer의 MAC sublayer와 Physical layer를 정의하는 protocol Characteristics Connectionless Unreliable 따라서 2개의 L2 sublayer 중 p-to-p communication에 관여하는 LLC sublayer에서 ...
문자열 check 루틴이 어딘지는 알겠는데, 어디 저장되는지 찾아야함. 204 200 4 이렇게 ebx+8이 가리키는 곳에 더하는데 이것들은 훼이크고 **(ebx+8)-4하면 문자열 있는 193A84나옴. -4나오는 시점이 진짜임. 거서부터 문자열처리를 시작한다. 카운트 값이 저장되는 곳은 null check2 후에 ebx+64 -> **(...
AES GCM도 CTR의 variation인데, Galois의 수학적 성질을 이용. CCM은 CTR에 CBC를 합친거 같은 mode. GCM이 CCM보다 좋은 성능을 냄. GCM은 stream cipher처럼 동작. 병렬처리 가능. CTR
주소 0차 1차 &p ...
2017/01/04 - [System/LINUX & UNIX] - procfs stack의 최대 크기는 RLIMIT_STACK ( usually 8MB, 0x08000000 )이다. 한 번 확장된 stack top은 다시 줄어들지 않는다. Text segment의 시작지점은 보통 0x0804800...
windows에서 lib과 dll을 사용하듯, Linux-based system에서도 비슷한 개념의 라이브러리가 존재한다. 크게 static library와 shared library로 나뉘며, shared library가 다시 link 시점에 따라 나뉜다. Linking과 Loading의 차이 Linking All of the object fil...
XML(eXtensible Markup Language) tree 구조 ( hierarchical ) 반드시 단 하나의 root만 가져야 한다 DTD(Document Type Definition)는 문서 당 하나여야 한다 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE note[...