【C内嵌汇编】others_shellcode Thursday, December 29, 2022 本文共424字 1分钟阅读时长 writeup pwn , C内嵌汇编 订阅 ⚠️本文是作者P3troL1er原创,首发于https://peterliuzhi.top/writeup/c%E5%86%85%E5%B5%8C%E6%B1%87%E7%BC%96others_shellcode/。商业转载请联系作者获得授权,非商业转载请注明出处! I have an everyday religion that works for me. Love yourself first, and everything else falls into line. — Lucille Ball 【Write-up】BUUCTF others_shellcode 原题链接 【Write-up】BUUCTF others_shellcode checksec 查看程序架构 ida 查看程序伪代码 构建 exp checksec 查看程序架构 $ checksec --file shell_asm [*] '/home/peterl/security/workspace/shell_asm/shell_asm' Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: PIE enabled ida 查看程序伪代码 然后我们看到它的getShell函数: 我们看到它里面有一句很奇怪的__asm { int 80h; LINUX - sys_execve },这是干什么的? 我们按 tab 看一下它对应的汇编代码: 这里我们已经看出一点端倪了,没错,这一句就是内联汇编(内联汇编使用“__asm”(C++)和“asm”(C 和 C++)关键字声明) 具体可以看以下推文: MIPS 指令集:内嵌汇编 asm 语法介绍 C 语言内嵌汇编**asm__**volatile__ C 语言 ASM 汇编内嵌语法 至于int 80的作用,请参考我写的这篇 writeup的第二个 exp 构建 exp 这题根本不需要 exp,直接nc 网址 端口号即可,程序会自动执行execve("/bin/sh", 0, 0) 这题的主要功能就是介绍int 80的作用还有内联汇编 点此订阅P3troL1er的博客! 点此复制分享二维码! 点此复制分享信息! 扫码阅读此文章 点击按钮复制分享信息 点击订阅