분류 전체보기
[kernel] LKM, Loadable Kernel Module / Kernel Compile
[kernel] LKM, Loadable Kernel Module / Kernel Compile
2017.10.14Loadable Kernel Modulehttps://www.kernel.org/doc/Documentation/kbuild/modules.txt Note ) root가 아니면 `` insmod``를 사용할 수 없기 때문에, LKM을 등록할 수 없다. LKM을 이용하면 커널을 recompile/reboot하지 않아도 커널에 기능을 추가/확장할 수 있다.따라서 syscall을 추가하고, hooking하는 것도 가능하다.드라이버가 대체로 LKM으로 구현되어 있다.확장자는 `` *.ko`` 다.```bashlsmod // listinsmod // insertrmmod // removemodinfo // infomodprobe // insmod와 달리 의존 관계에 있는 모듈까지 insert해준다.``` LKM ..
[QEMU] armv7 Emulate
[QEMU] armv7 Emulate
2017.10.14이 밖에 에뮬레이터로는 모모 앱 플레이어, 녹스, 블루스택이 있음 Quick EMUlator1. qemu 설치```bashsudo apt-get install qemu-user-static qemu-system-arm``` 2. 이미지 / 부트로더 / 커널커널이 필요하고,커널을 넣을 이미지 파일이 필요하고, arm system의 경우 바이오스가 없기 때문에 부트로더 역할을 하는 initrd라는 것이 필요하다. 여기서 설치하는 커널은 armel이 아니라 armhf이다. 이것은 ARMv7명령어와 하드웨어 부동소수점 계산을 에뮬레이트 한다.```bashqemu-img create -f raw hda.img 3Gwget http://ftp.debian.org/debian/dists/wheezy/main/inst..
[kernel] virt_to_phys
[kernel] virt_to_phys
2017.10.13virt_to_phys직접 호출하고 싶다면 kernel mode에서 실행해야 하기 때문에 LKM 등을 사용해야 하며,어느 아키텍쳐든 최종 인터페이스로 다음 함수를 제공하기 때문에 이를 사용하는 편이 좋다.```cstatic inline phys_addr_t virt_to_phys(volatile void *address)``` x86 ( not x86_64 )http://elixir.free-electrons.com/linux/v4.13/source/arch/x86/mm/physaddr.c#L70```cunsigned long __phys_addr(unsigned long x){ unsigned long phys_addr = x - PAGE_OFFSET; .... return phys_addr;}``` ..
[C] dup2 + pipe
[C] dup2 + pipe
2017.10.12이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[C] File IO : open, fopen, setbuf / fd VS fp
[C] File IO : open, fopen, setbuf / fd VS fp
2017.10.12이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[pwnable.kr] exynos
[pwnable.kr] exynos
2017.10.11이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[pwnable.kr] syscall
[pwnable.kr] syscall
2017.10.09이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[C] File IO : mmap - memcpy family
[C] File IO : mmap - memcpy family
2017.10.09이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[pwnable.kr] brainfuck
[pwnable.kr] brainfuck
2017.10.09이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
ARM Assembly
ARM Assembly
2017.10.08http://recipes.egloos.com/5027277http://armconverter.com/ - 주소 부분이 ``c 0xffffff???``로 나올 때는 직접 수정해주면 된다. ARM assembly instruction은 기본적인 명령어에 추가적인 옵션을 덧붙여 사용하는 식으로 구성되어 있다.RISK라서 모든 instruction의 크기가 같다. 단, ARM mode와 Thumb mode로 나뉜다.연산 방향은 ←arg/return value pass에 레지스터 `` r0-r3``와 stack을 사용한다.i386/amd64와 달리 ARM에서는 `` pc``에 접근해 인자로 사용할 수 있을 뿐만 아니라 수정할 수도 있다. 그러나 여기서도 `` push {pc}``는 안된다.```cint f(in..
[kernel] exploit
[kernel] exploit
2017.10.06이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[pwnable.kr] unlink : normal한 해결책으로 안풀리면, 어셈에 abnormal한 부분이 있나 확인
[pwnable.kr] unlink : normal한 해결책으로 안풀리면, 어셈에 abnormal한 부분이 있나 확인
2017.10.06이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.