![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 77
fifan
这个作者很懒,什么都没留下…
展开
-
汇编结构体数组寻址
1、左移2、加一定倍值3、再左移,得到数组下标形成偏移4、取首地址5、首地址 + 数组下标形成偏移 + 结构体内部偏移得到欲存取的地址routine shl ... add ... shl ... mov offset xxxxx call atoi函数取得一个整数,将这个整数按照68字节一个结构体进行寻址以16 bit字类型写入对应结构体的第四个字节处写入.text:0802A6E9原创 2005-01-25 10:58:00 · 5888 阅读 · 0 评论 -
缓冲区溢出程序
地址改写将main函数的返回地址写入main函数的第一个参数在堆栈中的位置保证溢出返回后能返回到__lib_start_main函数使程序顺利结束将foo 函数的返回地址写入main函数的返回地址,当main 函数执行结束返回时会跳转到foo函数中执行(溢出)执行过程1、__lib_start_main 为main函数创建好堆栈空间写好返回地址2、main函数执行该地址输出now in mai原创 2005-01-24 19:17:00 · 3701 阅读 · 1 评论 -
Linux下创建静态、动态库
Linux下创建静态、动态库源码-----------a.cpp---------------#include int a(int i){ std::printf("in a(int a) %d/n", i); return 0;}-----------b.cpp----------------#include int b(char *s){原创 2005-01-25 14:30:00 · 4073 阅读 · 0 评论 -
系统调用
系统调用直接利用系统调用输出Hello生成elf文件$ ll asm-rwxr-xr-x 1 fifan root 1202 Jan 25 18:59 asm只有1202字节,而用printf则会生成>10k的文件源代码asm.c#include int errno;_syscall3(int, write, int, fd, char *, data原创 2005-01-25 20:00:00 · 1758 阅读 · 0 评论 -
shellcode
shellcode利用系统调用execve得到shell1、execve函数用法函数原型为int execve(const char *filename, char *const argv [], char *const envp[]);例程$ vi t.c int main(int argc, char **argv){ char *name[2] = {"/bin/s原创 2005-02-17 16:44:00 · 2439 阅读 · 1 评论