原创 內核黑科技之DEFINE宏

arch/arm/kernel/asm-offsets.c中會用到一個特殊的宏DEFINE,示例: DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); 這句的意思就是

原创 mutex_lock在不同編譯選項下的一個坑

include/linux/mutex.h中聲明瞭函數: 144 #ifdef CONFIG_DEBUG_LOCK_ALLOC 145 extern void mutex_lock_nested(struct mutex *lock, u

原创 ARM平臺Linux內核內存空間分佈

Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xfff00000 - 0xfffe0000

原创 使用openssl庫進行DES加密

openssl庫實現了大多數的加密算法,如AES,DES,RSA等等。 首先安裝openssl庫,命令如下: sudo apt-get install libssl-dev 在代碼中,引用對應的頭文件 #include <openssl/

原创 insmod加載模塊過程

insmod程序的源碼如下: #include <stdio.h> #include <string.h> #include <fcntl.h> #include <unistd.h> #include <malloc.h> #inclu

原创 歡迎使用CSDN-markdown編輯器

歡迎使用Markdown編輯器寫博客 本Markdown編輯器使用StackEdit修改而來,用它寫博客,將會帶來全新的體驗哦: Markdown和擴展Markdown簡潔的語法 代碼塊高亮 圖片鏈接和圖片上傳 LaTex數學公式 UM

原创 XDCTF2013線上賽exploit關(一)

IDA反彙編exploit1.exe,在sub_40FA70裏可以看到申請了一個0x10000字節的空間 var_10000= byte ptr -10000h 然後將其作爲參數傳入了scanf()函數 .text:0040FA9F  

原创 linux exec /bin/sh shellcode x86 and x86_64

x86 xor %edx,%edx xor %eax,%eax push %eax push $0x68732f2f push $0x6e69622f mov %esp,%ebx push %eax pu

原创 Kali安裝VMtools問題解決

折騰了一下Kali系統,安裝VM-tools的時候出現了幾個問題,最後終於解決了,寫下來備用。 掛載硬盤,解壓就不說了,直接說重點。 安裝時會提示尋找linux-headers文件,直接apt-get安裝時會提示找不到軟件包,需要在apt

原创 pid到task_struct的對應

pid_t <–> struct pid * #include <linux/pid.h> pid_t pid_vnr(struct pid *pid) { return pid_nr_ns(pid, current->nspr

原创 安裝peda

peda是gdb的一個插件,安裝後大大提升gdb在分析逆向/溢出程序時的用戶體驗。 peda不支持python3版本的gdb,因此需要安裝低版本的gdb。 首先卸載當前的gdb sudo apt-get remove gdb 然後下載

原创 hook sys_getdents64隱藏文件

long (*orig_getdents64)(unsigned int fd, struct linux_dirents64 *dirp, unsigned int count); unsigned long system_ino

原创 Shellshock繞過的一點疑問

這兩天Shellshock(CVE-2014-6271)漏洞鬧的沸沸揚揚,相關鏈接: http://blog.knownsec.com/2014/09/bash_3-0-4-3-command-exec-analysis/   知道創宇的

原创 XDCTF2013決賽FTPServer溢出分析

這是個FTP服務器程序,點擊打開本機就開啓21端口,提供FTP服務了。 手動fuzzing後發現,當dir命令的路徑參數爲520字節時,就會剛好覆蓋EIP。 抓包可以發現,使用dir命令時,實際發送的數據包中的命令是LIST,如下圖 既

原创 安全比賽中exploit關方法小結

這半年大大小小的各種安全比賽做了好多,總結一下各種比賽中exploit題的解題思路吧。 首先,將exploit題分成兩個步驟: 發現溢出點利用溢出點下面就從這兩點出發,分別進行詳細闡述。 發現溢出點 這個部分主要就是用兩種方法: 直接拖進