分类: 赛棍日记

27 篇文章

thumbnail
CISCN 2023 西南分区赛 over WriteUp
安全措施 程序分析 首先是初始化程序,将 puts 放在了 bss 段 0x4088 的位置,具体查看汇编发现是直接把 puts 的函数地址放进去了。 主程序先接受一个 name 存在 0x4068 位置,然后执行 4 个选项的菜单循环。 选项 1、2、3 分别能够通过 +、-、^ 操作 0x40a0 之前的内存;选项 4 调用 0x4088 位置…
thumbnail
安卓逆向:去广告与弹窗
安卓应用中常见有三种广告:启动广告、弹窗广告以及横幅广告。启动广告一般是单独的一个 Activity,对于这种广告可以通过 Activity 切换定位来加以去除。弹窗广告一般是在 Activity 方法中通过 Dialog->show() 方法调用的,这种广告可以通过 Hook、定位并修改代码方法去除。横幅广告是出现在 UI 布局中的广告,在 xml 中定位到之后可以通过修改宽高和可见性的方法去除。
thumbnail
libc.so.6 背后的含义
Linux 有一套规则来命名系统中的每一个共享库,它规定共享库的文件命名规则如下:libname.so.x.y.z,即前缀"lib"+库名称+后缀".so"+三个数字组成的版本号,其中,x 表示主版本号,y 表示次版本号,z 表示发布版本号。SO-NAME 命名机制,就是把共享库的文件名去掉次版本号和发布版本号,只保留主版本号。在 Linux 系统中,系统会为每个共享库在它所在的目录创建一个跟它的 ”SO-NAME” 一样的软链接指向它。
2022重庆市大学生信息安全竞赛Root_RSA WP
思路 已知e,P,Euler(Q),c,n.求m. P = p**3 分解P,得到p Q = q**2 根据欧拉函数性质,可知 Euler(Q) = q*(q-1) 分解phi_Q得到一个大因数,这个数比剩下的因数乘积大很多,所以可以推断这个大因数应该不是q,但是是q的倍数。 n = p*q*r q*r = n/p 可知q*r的值,对phi_Q求公…
thumbnail
DASCTF 十月赛 1!5! WriteUp
思路 列出可用集,根据可用集逐步构造出全指令集 根据可用集逐步编码shellcode 看了别的师傅有很巧妙的做法:不直接调shell,而是先手写调read,然后输入真正的shellcode,绕过检测。 我这里主要借机学习一下shellcode编码,就按官方思路复现了。 指令集扩展 shellcode字符集 编写一个基础的shellcode: mov…
thumbnail
shellcode编码
shellcode原理 系统调用execve("/bin/sh", 0, 0) 具体可以参考系统调用表、64位linux中断向量表 64位 寄存器: rax = 0x3b rdi = "/bin/sh" rsi = 0 rdx = 0 一段简单的 shellcode: mov rax, 0x68732f6e6…
切割堆块
在glibc源码中搜索split可以找到堆块切割相关源码 在malloc.c的_int_malloc函数中发生堆块切割的情形如下: 遍历unsorted chunks时 请求满足small request last remainder 堆块是唯一堆块,且切割后剩下的仍然满足最小堆块大小 从largebin中找到最小的满足要求的堆块 切割后剩余堆块的…