Yunoon


漫天星空,触手可及.

Quest 2 踩坑日志

0 条评论 默认分类 小记录 Yunoon

前言

朋友整了台Qeust2,在搭建好openwrt后,就可以访问外网开始玩了,但中间还是遇到了一些坑点,故记录下。

正文

重置账户

  1. 这个其实挺坑的,因为是收的二手,但上家转手的时候没退账号,导致更新版本后要用原先的账号激活。
  2. 好在和上家有保持联系,提供了账号密码成功重置。

Facebook账号被ban

  1. 因为Facebook的审核机制,导致非实名用户的账号被ban了,这个数据和Quest2官网的数据不互通,所以直接在Quest2 官网上注册即可。

账号申请开发者权限

  1. 有2种渠道


    1. 填写手机号
    2. 添加信用卡
  2. 不知道为什么手机号添加不了,Google Voice和国内手机号都不行,就选择了用国内的Visa卡注册。

使用开发者权限安装第三方APK

  1. 开始折腾了半天,发现这个需要用手机安装 Quest2 App后,连接上设备,在头戴设备设置中开启开发者选项。
  2. 然后ADB命令一把梭就行

Steam串流

  1. ADB安装ALVR后,电脑端也安装好后,即可。
  2. 自带的Air Link还没用过,就不多说了。

【CatCTF 出题人WP】ez_js解题思路

0 条评论 默认分类 WP Yunoon

前言

web签到题,f12看源码找接口就行。

正文

  1. 失败后发现弹114514,搜就行。

  2. get_flag()函数返回接口

  3. 访问接口即可


【CatCTF 出题人WP】CatJump解题思路

0 条评论 默认分类 WP Yunoon

前言

出题5天,被秒半小时,当时做环境的时候数据忘了清干净,导致被非预期了,原本挺有趣的题目没多少人玩到。
感兴趣的师傅后续也可以试试原有的解题思路,希望可以给各位有些帮助。

出题灵感来源

  1. 一直在玩黑苹果,虽然11代intel已经是黑果的绝唱了,但中间的一些思路倒是很有意思的。
  2. 安装黑果的重点就在于硬件能否被苹果系统识别,因此就有了本题,大致就是通过检测系统的硬件配置,实现一个简单的macOS检测机制。
  3. 选手需要通过oc或者其他方式修改nvram中的内容,让程序识别到该系统的某些配置。

正文

当时预设了2种解题方式

解题思路1

  1. 拿vmdk文件,提取其中的可执行文件进行分析,最终锁定openssl解密的部分,利用题目描述中的「cat_jump」进行解密获得flag。

解题思路2

  1. 拿到vmdk,进行仿真挂载,但发现该磁盘无法在ubuntu等预设中进行挂载,因为这里用的是Alpine Linux,并且是Alpine是UEFI,Vmware中一般都是bios引导启动,如果是vmware workstation的话需要在创建完毕后,高级中设置为UEFI启动,即可进入游戏。

  2. 进入游戏后,这里有个小脑洞,一般的游戏都会有「退出」模块,一般为「q」,但这里用的是「]」,退出后即可发现读取文件失败了。

  3. 读取的是nvram中的一个特定变量,如无法检测到这个变量的话,即使进了系统登录界面也无济于事。

  4. 通过opencore做一个引导驱动,在nvram中写入报错中的特定变量名和变量值,将该引导挂载到虚拟机中,我这直接用的U盘创了个ESP分区,把EFI丢进去了。


    如果U盘是USB3.1的记得改下兼容性

  5. 启动到固件后,选择opencore启动,这样EFI引导就是走的opencore,模拟出的nvram也就能获取到。

  6. 最终进入启动界面即可获取flag。

解题思路3(非预期)

  1. strings cat_jump_clean.vmdk | grep CatCTF{
  2. 010编辑搜索
  3. 取证大师提取原始数据
  4. 记事本打开
  5. .....

总之就是磁盘数据没清干净,被一把梭了。


CatJump出题思路

0 条评论 默认分类 WP Yunoon

Date Created: November 15, 2022 9:13 AM
Status: To Do

灵感

  1. 一直在玩黑苹果,虽然11代intel已经是黑果的绝唱了,但中间的一些思路倒是很有意思的。
  2. 安装黑果的重点就在于硬件能否被苹果系统识别,因此就有了本题,大致就是通过检测系统的硬件配置,实现一个简单的macOS检测机制。
  3. 选手需要通过oc或者其他方式修改nvram中的内容,让程序识别到该系统的某些配置。

思路

  1. 利用opencore进入引导后,通过某些open core的特性来查看flag
  2. efi和镜像文件均放在dumpit导出的镜像中

实现方式

  1. 用户态
    1. 利用Linux系统init的过程中,在login之前拉起检测程序
  2. 内核态
    1. 在Linux内核中添加一个读取efi变量的模块,编译完毕后,通过qemu拉起系统。

相关技术

UEFI仿冒、Linux用户态

具体实现流程

  • 拉取镜像
  • 安装efivar、g++等环境
  • 编写CatJump Game模块
  • 编写读取EFI变量模块
  • 更改Init,将编写好的模块放入login模块前
  • 导出vmdk镜像

记录一下PVE环境的搭建过程

0 条评论 默认分类 小记录 Yunoon

前言

继硬件更新后,就可以做黑果了,前期起初打算是做物理机的黑果的,始终不成功,后面发现是镁光固态的缘故导致的(这个问题我以前在装笔记本的黑果时也遇到过)。

在以前机缘巧合下,观看了国光师傅的PVE环境搭建,感觉很酷,在不追求极致的性能下,我就选择了PVE来搭建。

硬件配置

CPU: i5 8600k
内存: 16G+8G+8G
主板:MSI Z370 银蛇环 GAMMING
硬盘(PVE系统):凯侠 RC10 1T
显卡1(windows游戏):Nvidia GTX1060 5G
显卡2(macOS): AMD RX580 2304SP 8G
电源:鑫谷 650W
网卡:BCM94360CD
硬盘:西数 1T+2T、影驰240G(存放原神)
显示器1:DELL 2404
显示器2:DELL 2304
机箱:先马 黑洞

PVE虚拟设备

目前除了2台虚拟化的主力设备以外,我还将以前vmware中的虚拟机也迁移到了PVE上,以及一台群晖。

各个虚拟机搭建环节

macOS

前言

基本上是参考了国光师傅的整个流程,需要的是仔细,但由于粗心没有照着一步一步的点点点,甚至还额外学到了一些东西。

正文

镜像准备
  • macOS系统镜像
  • open core的引导镜像
  1. macOS的系统镜像,因为手头只有黑果小兵的打包镜像,只有黑果小兵的打包镜像,这种镜像是无法直接用OC引导的,需要刷入U盘才行。 我这是直接拿的官方的GitHub项目直接编译的。
  2. 官方镜像GitHub地址:https://github.com/thenickdude/OSX-KVM
    git clone https://github.com/thenickdude/OSX-KVM
    cd OSX-KVM
    cd scripts monterey
    make Monterey-recovery.img
    

    最终在当前make的目录会得到镜像文件

    将dmg改为iso后上传镜像即可。
创建虚拟机
  1. open core的引导镜像
    opencore的镜像直接从GitHub release下拿就行
    https://github.com/thenickdude/KVM-Opencore/releases

    解压后,上传即可。

  2. 避免安装时的循环死机,进PVE中,给配置文件添加参数。

    echo "options kvm ignore_msrs=Y" >> /etc/modprobe.d/kvm.conf && update-initramfs -k all -u
    reboot
    
  3. 然后就是添加引导、创建虚拟机的一个过程了,和物理机的黑果类似。

    更改名称、VM-ID即可,这里的VM-ID是唯一标识码。

  4. 选择opencore作为光盘镜像

    系统选择othoer

  5. 系统配置,显卡选用vmware兼容,其实默认也行
    Bios选用OVMF(UEFI),机器架构是q35

  6. 硬盘类型选择VirtoIO Block,缓存为Write back,硬盘大小请随意(最好不要低于128G,当然你如果硬要把应用全塞另外的盘,那就是你对)。

  7. CPU类型选Penryn,核心也是看着给,开启NUMA2.

  8. 内存最好不要低于8G,这里只能填MB,所以说1024*N这样。

  9. 网卡类型选择半虚拟化

  10. 再添加一块硬盘,目前我们只有引导盘,没有系统镜像盘。

配置修改

  1. 之后,进PVE系统,nano更改一下磁盘的类型,改为cache=unsafe

    nano /etc/pve/qemu-server/<VM-ID>.conf 这里的VM-ID就是开头创建的VM-ID。
    
    



    再添加CPU信息

    INTEL: args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc
    
    AMD: args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+fma,+fma4,+bmi1,+bmi2,+xsave,+xsaveopt,check
    

    然后control + O,回车键保存文件,control + X,退出nano。
    最终的配置文件就是下面这样

  2. 进入选项中,更改一下引导顺序。

    将opencore引导盘放置最前面。

启动虚拟机

  1. 点击启动后,成功启动,接下来就是黑苹果系统的正常安装操作。(以下仅截图就不做说明了)








    等待完毕后,进入系统即可,这里的时间没这么久,具体要取决于硬盘性能。

  2. 重启后,选择macOS installer

  3. 依旧会再次重启,这里在选择macOS installer

  4. 成功安装后,选择macOS启动即可。

安装完成

  1. 安装完成后,根据引导选择相关的配置进去即可,不要登录账号、不要登录账号、不要登录账号!!!,因为这里的三码是默认的,有风险。



  2. 安装完成

显卡直通

  1. 其实可以直接看国光师傅的了,直接添加PCI硬件就行了。

  2. 关闭显示的vmware兼容即可,因为RX580免驱,黑果的常识就不多说了。

  3. 之后我们需要注意一个点,因为没了vnc,我们需要直通一套键鼠才行。

    选择USB端口,关闭USB3.0、关闭USB3.0、关闭USB3.0、关闭USB3.0,这里也是个坑点,开了直接进不去系统就黑了。

  4. 这里的显卡已经成功驱动了。

网卡直通、蓝牙

和显卡一样的操作,直接添加即可。

蓝牙在USB设置中,同样添加即可。

关机相关

出现问题的话直接选择关闭主机,不要选关机,因为是other系统,PVE没有关闭系统的指令。

EFI配置

  1. 然后就是黑果的基本操作了,改三码、启动时间啥的。
  2. 这里就不多说了。(摆

windows

前言

windows虽然没这么多讲究,但我开始装的时候也遇到了点麻烦。

镜像准备

windows镜像
virtio 驱动镜像

windows镜像 https://www.microsoft.com/zh-cn/software-download/windows10

virtio官方镜像 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.215-2/virtio-win-0.1.215.iso

安装

  1. 安装就直接把windows镜像作为引导盘启动
  2. 把virtio挂载就行

GTX1060 直通

跟着掘金上的一篇文章成功驱动
没有用到vbios,就添加了下配置。
https://juejin.cn/post/7101389906043207694#heading-4

  1. 看pci地址
    lspci -v
  2. 查看显卡的具体路径
    lspci -n -s 82:00
    lspci -n -s 82:00
    
  3. 开启iommu和pci相关配置
    nano /etc/default/grub
    修改
    GRUB_CMDLINE_LINUX_DEFAULT="quiet"
    修改为
    GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nofb nomodeset video=vesafb:off video=efifb:off vfio-pci.ids=10de:1c04,10de:10f1"
    保存、退出
    
  4. 更新grub启动
    update-grub
  5. 加载vfio驱动
    nano /etc/modules
    添加以下内容
    vfio
    vfio_iommu_type1
    vfio_pci
    vfio_virqfd
    保存、退出
    
  6. 更新配置,重启
    update-initramfs -u -k all && reboot now
  7. 禁止host驱动GPU
    nano /etc/modprobe.d/pve-blacklist.conf
    options vfio_iommu_type1 allow_unsafe_interrupts=1
    options kvm ignore_msrs=1
    options kvm-intel nested=Y
    blacklist nouveau
    options nouveau modeset=0
    blacklist nvidiafb
    blacklist amdgpu
    blacklist radeon
    blacklist nvidia
    blacklist snd_hda_codec_hdmi
    blacklist snd_hda_intel
    blacklist snd_hda_codec
    blacklist snd_hda_core
    
    保存、退出
    
  8. 更新配置
    update-initramfs -u -k all && reboot now

成功驱动

Vmware迁移

前言

这里也耽搁了大半天,主要问题是在vmdk文件的完整性,和硬盘的类型。

  1. vmdk的话有两种方法
    1. 直接将以前的vmdk复制出来,但有些虚拟机的vmdk是分片的,所以需要用工具进行整合,可以看我另一篇文章。
      https://yuno0n.top/index.php/archives/60/
    2. 我是用vmware导出ovf后(直接导出的vmdk无法使用),导入macOS里的vmware实现合并的,当时忘了可以用工具合并,导致用了2倍的时间。
  2. 硬盘类型先选IDE,成功驱动后,进系统,添加相关参数,就可以开启SCSI咯。

群晖

前言

群晖在zy的帮助下,一波点亮,没什么问题,就不多说了。