• Linux内核设计与实现总结(1) —— qemu内核调试环境搭建(macOS)

    宿主机系统

    1. macOS 12.4 (x86)

    安装qemu

    qemu相比于vmware,简单、轻便,可以直接指定linux内核,再指定一个文件系统,即可调试。硬盘、网络设备可以后加。

    首先我尝试了utmapp/UTM,这是个适用于iOS/macOS的虚拟机,基于qemu。但是在指定内核启动镜像bzImage和initramfs后,遇到了问题,一直报错:

    1
    The bootindex 0 has already been used

    搞了一会没搞出来,索性不用UTM了,直接上qemu。

    使用homebrew可以直接安装qemu。

    1
    ➜  ~ brew install qemu

    目前安装的是7.0.0_2。

    安装完成之后验证一下:

    1
    2
    3
    4
    5
    6
    7
    ➜  ~ qemu-system-x86_64 --help
    QEMU emulator version 7.0.0
    Copyright (c) 2003-2022 Fabrice Bellard and the QEMU Project developers
    usage: qemu-system-x86_64 [options] [disk_image]

    'disk_image' is a raw hard disk image for IDE hard disk 0
    ....
  • Linux内核设计与实现(Linux Kernel Development)—— 读后总结

    前言这段时间读了这一本书,它讲解的是Linux 2.6的内核,从内核开发角度切入,通俗易懂,有必要进行一下记录总结。 看完这本之后我下一本要读:《深入理解Linux内核》。 总结目录 Linux内核设计与实现总结(1) —— qemu内核调试环境...
  • 魔改解决超级雕rgb fusion鼠标卡顿问题

    前言

    仅供学习研究。

    上个星期在海鲜市场收了一块技嘉超级雕6800XT,准备用来组黑苹果。

    系统是Windows 11,到手之后安装了安装显卡驱动和技嘉rgb控制软件rgb fusion 2.0(B22.0414.1,官网最新版),小屏幕倒是挺好看的,但鼠标滑动总觉得时有点卡顿,用鼠标连续画圈最为明显(眼睛比较敏感)。

    大约1秒卡顿一次。如下图所示,第一张图正常,第二张图第一个鼠标位置到第二个鼠标位置滑动距离过长,卡顿:

  • 记一次luac分析

    前言

    某mips架构的路由器上的lua脚本a.lua,被编译成了luac二进制格式。初步分析发现指定lua使用固件中的共享库liblua.so.5.1.5可运行该luac文件,同架构的官方openwrt则不能运行该luac,所以判断出lialua.so.5.1.5被魔改了。

  • 折腾:无线宝鲁班openwrt 21.02.1

    免责声明

    1. 仅用于测试与学习研究,作者没有对该设备进行任何形式的“破解”,所有信息都是通过正常的方式获取。
    2. 如果任何单位或个人认为本文内容可能涉嫌侵犯其权利,则应及时联系作者并要求删除相关内容。
    3. 作者对本文带来的潜在问题概不负责,包括但不限于由任何错误导致的任何损失或损害。

    前言

    前几天在京东上买了个京东云无线宝鲁班,硬件配置如下:

    1
    2
    3
    4
    5
    CPU:MT7621A
    内存:南亚512MB
    闪存:XM25QH128C 128Mit/16MB
    无线:MT7975DN + MT7905DAN
    网口:全千兆LLLW

    本来天天放那边跑分换京豆的,但是这官方固件实在有点用不下去,所以给它搞个适配个openwrt吧。

  • pwnable.kr ELF writeup

    0x01 分析

    首先ssh上去看看。

    elf.py:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ...
    libc = CDLL('libc.so.6')
    flag = CDLL('./libflag.so')

    ...
    for i in xrange(25):
    sys.stdout.write('addr?:')
    sys.stdout.flush()
    addr = int(raw_input(), 16)
    libc.write(1, c_char_p(addr), 32)

    有25次机会,每次可以读进程地址空间的32字节…

    再看看gen.py。

  • pwnable.kr rootkit writeup

    0x01 Analysis

    rootkit is another challenge about kernel exploits after syscall.

    After connected to host, I found that the kernel load rootkit module at boot.

    1
    [    3.337631] rootkit: module license 'unspecified' taints kernel.

    Then, I use ida to disassembly the rootkit.ko.

    image

    The module disable write protection, and replace original syscall such as sys_open to sys_open_hooked by write syscall table(0xc15fa020).

    image

    The sys_open_hooked syscall will check whether the string of the filename has a flag substring.
    If there not, then the original sys_open is called.
    If there is, it returns a fd with a value of -1, then the file opening failed.

    Of cource, other sys_call such as sys_symlink will failed also.

    1
    2
    3
    /tmp # ln -s ../flag ./
    [ 5234.521789] You will not see the flag...
    ln: ./flag: Operation not permitted
  • hackgame-2021-wp

    0x01 总结

    image

    第一次打ctf,2250分,rank109,math类一题不会…有待提高

  • pwnable.kr tiny_easy writeup

    0x01 Check security1234567$ checksec tiny_easy[*] '/home/ubuntu/pwn/tiny_easy/tiny_easy' Arch: i386-32-littl...
  • pwnable.kr login writeup

    0x01 Analyzemain(): 1234567891011121314151617181920212223242526int __cdecl main(int argc, const char **argv, const char **env...
/5