安卓应用中常见有三种广告:启动广告、弹窗广告以及横幅广告。启动广告一般是单独的一个 Activity,对于这种广告可以通过 Activity 切换定位来加以去除。弹窗广告一般是在 Activity 方法中通过 Dialog->show() 方法调用的,这种广告可以通过 Hook、定位并修改代码方法去除。横幅广告是出现在 UI 布局中的广告,在 xml 中定位到之后可以通过修改宽高和可见性的方法去除。
思路 通过输出printf地址泄露libc 覆盖printf地址为system 输出/bin/sh 分析 检查安全措施,没有PIE和canary [*] '/mnt/e/sec/bugku/pwn/repeater/pwn7' Arch: i386-32-little REL
shellcode原理 系统调用execve("/bin/sh", 0, 0) 具体可以参考系统调用表、64位linux中断向量表 64位 寄存器: rax = 0x3b rdi = "/bin/sh" rsi = 0 rdx = 0 一段简单的 shellcode: mov rax, 0x6873