自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(233)
  • 资源 (5)
  • 收藏
  • 关注

原创 记一次 PEview 的报错修正

从《逆向工程核心原理》中提到的 https://reversecore.com/111 中下载的 PEview 在处理 32 位程序时其它目录都还行,当点到 IMAGE_NT_HEADERS——>IMAGE_FILE_HEADER 中就会有如下图所示的报错。要注意的是下了点击后卡的第一次还没发现日志中的异常值,循环了3次后才找到,说明点击 IMAGE_FILE_HEADER 栏时要在该段指令中循环好几次,第三次才有异常产生。这是我第一次处理程序异常,虽然是跟着 a1ee 的文章复现的,但我有自己的分析。

2022-10-30 00:24:10 655 1

原创 对 python 正则表达式字面字符串和模式字符串的一点思考

但是由于字面字符串的 "识别级别" 是比模式字符串高一级的正常级别,所以 r"\n" 在字面字符串中表示一个单斜杠 "\\" 和一个字符 "n",但在模式字符串中只表示一个换行符。比如匹配 Unicode 词语的字符 r"\w" == "\\w",也就是说在一个正常的特殊字符 "\n" 在模式字符中写成 r"\n" == "\\n",而在字面字符串中只写成 "\n"。r"\" 是错的,r"\\" == "\\\\",单个反斜杠只能写成 "\\",但是如果单个 \ 没有与分界符接触就没事,比如 r"\n"。

2022-09-27 14:26:13 574

原创 《windows 程序设计》读书笔记 三

调用 CreateWindow 函数:CreateWindow 函数的第一个参数称为 “窗口类名称”,而窗口类又与一个称为 “窗口过程” 的东西关联在一起。进行 Windows 程序设计时,其实就是在进行一种面向对象的编程,在 Windows 环境下接触最频繁的对象就是窗口(window)。装饰桌面最明显的窗口莫过于应用程序窗口,这些窗口包含一个显示有程序名称的标题栏、一个菜单栏。可能还带一个工具栏 (toolbar) 和一个滚动条 (scrollbar) 。另外一种类型的窗口是对话框,这种窗口可以不带标题

2022-09-20 23:53:39 1204 2

原创 记一次 cmd 打开 python 报错,环境变量已配置

排查了半天,重启了半天,都没找到问题,直到看见这篇博客说可能有多个 python 可执行文件,用 where 命令可以查看。我一看,好家伙,还真有,而且还是在一个我觉得不可能存在的,但也是环境变量中的路径!其它配置了环境变量依旧打不开程序的同理,先用 where 查一下是否被 windows 自动放了个快捷方式在关键系统目录下,然后删除即可!输入 python 自动打开应用商店,环境变量已配置,并且我觉得我只有这一个 python 路径!

2022-09-13 15:57:50 452

原创 x86指令编码简述(机器码)

reg 表示寄存器方式,在不包括立即数的双操作数指令的情况下,规定必须有一个操作数在寄存器中,该寄存器由 reg 字段指定,并与操作码字节中的 w 位相组合确定的寄存器。(除了操作码必须外,其它字段是可选的)(操作码字段的位 0 用于选择 8 位或 16 位寄存器:1 表示 16 位寄存器,0 表示 8 位寄存器,位 0 就是 w ,在 8 位的最后啊!(Mod 在橙色块,Reg 在上面绿色块,R/M 在紫色块,黄色块是总的加起来的 Mod R/M 字节值,蓝色块是要操作的 R/M 字段对应的源操作数 ).

2022-08-29 14:52:10 6393

原创 《windows 程序设计》读书笔记 二

希腊字母表使用从 0x0370 到 0x03FF 的代码,西里尔文使用从 0x0400 到 0x04FF 的代码,亚美尼亚文使用从 0x0530 到 0x058F 的代码,而希伯来语使用从 0x0590 到 0x05FF 的代码。与其用很容易混淆的多个 256 字符的代码映射或者是混合使用有 1 字节的代码和 2 字节代码的双字节字符集,还不如使用 Unicode,一种统一的 16 位系统,它可以代表 65536 个字符。最重要的是,ASCII 码是一种非常可靠的标准。,它的第二个参数是字符缓冲区的长度。.

2022-08-27 15:34:53 610

原创 《windows 程序设计》读书笔记 一

通常情况下在编译阶段,编译器从 C 源代码文件产生一个.OBJ (目标)文件,在链接阶段,链接器又把 .OBJ 文件和 .LIB(库程序) 文件放到一起产生undefinedEXE (可执行)文件,你可以通过选择 Project 菜单下的 Settings,并单击 Link 标签来查看这些库程序的文件列表。为了保证兼容性,英特尔 386 之后的 32 位微处理器也都支持这一模式,在这种模式下,微处理器的寄存器 (Register) 宽度为 16 位,因此 C 的 int 数据类型也是 16 位宽。.....

2022-08-27 15:30:12 772

原创 浏览 APT 报告中学习积累

通常我们在做渗透测试的时候,在拿到一个 webshell 的时候,我们需要对服务器进行提权操作,如果是一台 windows 的服务器,提权的时候通常是利用本地提权漏洞的 exp 进行溢出提权,有些 exp 可以直接在后面加参数,溢出成功之后执行参数中的命令,而有的 exp 溢出成功之后是返回一个 system 权限的 cmd,这时就需要我们将系统权限的 cmd shell 反弹回本地。这里我们使用 nc 在本地执行:上述命令的意思是在本地监听一个 3333 端口等待连接,假设你的电脑 IP 是公网的,并且

2022-07-11 11:04:09 321

原创 x64dbg 基本使用技巧

最近使用 DBG 多了起来,所以查了一些资料来学习并整理成自适应的笔记。本文摘抄自:x64dbg 使用技巧与实用插件合集官方网站: https://x64dbg.com/DBG 解压后根目录如下图,双击 x96dbg,出现三个弹窗,会生成 x96dbg.ini 文件,里面记录着 32 位和 64位 dbg 程序的路径。当你需要把整个程序文件夹移动到其他路径时,最好把这个 ini 删除,重新双击让它再生成。当你需要把它加到发送到菜单中的时候,也推荐添加 x96dbg,它会自动选择用 x32 还是 x64db

2022-06-22 21:34:44 16629 11

原创 记一次 windows 桌面卡顿

这几天在 windows 桌面上的操作感觉非常不好,一开始以为是电脑老化、网络卡顿、C 盘又被垃圾挤占空间、或什么自启动软件占了内存,复制一个快捷键出来都要缓冲。..然后就卸载了很多不常用的软件,到自启动的服务中查看,又一直看 CPU 和内存占比,没有被挖矿或上线啊,一顿操作后就查没查看 windows 系统日志了,搞得我一度郁闷,以为真的是电脑老化了。..最后在一次偶然操作发现,好像别的文件夹没有这种卡顿,就是范围好像真的限制在桌面上而已,然后看了一下桌面空间。..毕竟也学过操作系统

2022-06-21 11:14:41 482

原创 解析 DES 加密算法(C语言):

目录解析 DES 加密算法(C语言):DES 简介:DES 算法整体流程:DES 解密:C 语言代码实现加密解密逻辑:内容修改自博客:DES加密算法解析与实现 - luogi - 博客园DES 全称为 Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法。DES 算法就是一个把 8 字节 64 位的明文输入块变为 64 位密文输出块的算法,它所使用的密钥也是 64 位(其实只使用到了 56 位,其余 8 位为奇偶校验位)算法特点:分组比较短、密钥太短、密码生命周期短、

2022-06-13 16:15:46 7262 4

原创 第二届广东省大学生网络攻防大赛 simple_re

2022 年 5 月广东省省赛 simple_re程序梳理:程序将关键函数以对象元素的形式存在对象里,然后在申请内存中搭配指针间接调用。sub_140002110 有反调试,主要是 IsDebuggerPresent 和获取 ThreadContext 并检测是否有硬件断点。加密流程为先打乱每个字节的比特顺序,其实就是把比特串倒过来;然后利用打乱比特顺序的前 4 字节输入 SMC 解密一段代码,并开一个线程检测 SMC 解密后的代码段是否有 0xcc,有的话说明前 4 字节输入错误;之后调用上述代码段

2022-05-31 22:31:54 614

原创 Base-N 算法加密解密实现:

目录Base-N 算法加密解密实现:Base64 加密解密:(C 语言、python)Base32 加密解密:(C 语言)Base-N 算法加密解密实现:Base64 加密解密:(C 语言、python)Base64 介绍:Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。由于 2^6=64,所以每 6 个比特为一个单元,对应某个可打印字符。3 个字节有 24 个比特,对应于 4 个 Base64 单元,即 3 个字节可由 4 个可打印字符来表示。它可用

2022-05-26 11:46:06 2042

原创 2022 年网刃杯 ez_algorithm

2022 年网刃杯 ez_algorithm下载附件:..照例扔入 exeinfope 中查看信息,64 位无壳:..照例运行一下,查看主要回显信息:..照例扔入 IDA64 中查看伪代码,有 main 函数看 main 函数:..进入到 encryption2 和 嵌在里面的 encryption3 分析可知它们两个是加密解密同一函数的:..然后,嗯~代码比较长,我曾一度想在脑子中梳理逆向逻辑,结果梳乱了,所以还是写在纸上了,写完之后再写脚本思路就很清晰:

2022-05-23 19:47:30 257

原创 第二届广东省大学生网络攻防大赛 pyre

2022 年 5 月广东省省赛 pyre..以前做过 pyc 逆向,直接的 python exe 逆向还是第一次:第一种方法:用 pyinstxtractor.py 将 exe 文件转换成 pyc 文件。..用 PyInstaller 打包后,pyc 文件的前 8 个字节会被抹掉,所以最后要自己添加回去。前四个字节为 python 编译的版本,后四个字节为时间戳。想要获得编译版本可以查看打包文件里 struct 的信息,我这里还是提取出 struct 这个文件,有 struct 作为对

2022-05-22 18:28:08 750 4

原创 对 IDA 结构体操作的一些理解

对 IDA 结构体操作的一些理解前言:刚学逆向时把 IDA pro 权威指南过了一遍,但读得并不是很细,满足日常使用还是没问题的,但是对于一些细节的操作或提高效率的方法倒是没能掌握。比如 IDA 对结构体和数组的操作,看过,但是不记得了,就算记得也不会用,或者根本不知道什么时候用,在哪用。虽然凭借着最基本的操作依旧能分析得出来,但是效率却大打折扣。有一天从 水番正文 的视频中得到启发,发现应用 IDA 结构体后能使代码可读性大大提高,便回去精读了 数据类型和数据结构 这一章,并整理出自己的 IDA

2022-05-20 09:27:33 445

原创 python编码问题的一点笔记

Python编码:中文乱码问题:如果开头不声明保存编码的格式是什么,那么它会默认使用 ASCII 码保存文件。这时如果你的代码中有中文就会出错了,即使你的中文是包含在注释里面的。声明中文编码格式的方法是在文件开头加上如下代码。 #coding=utf-8或#coding=gbk设置Python中的编码:# code: 编码格式(美观写法:#-*- coding: UTF-8 -*-)编码类型:GB2312编码:适用于汉字处理、汉字通信等系统之间的信息交换。GBK编码:

2022-05-12 15:35:22 2015

原创 2022 *CTF REVERSE 的 NaCl

2022 *CTF REVERSE的Nacl下载附件:..照例扔入 exeinfope 中查看信息:..照例扔入虚拟机中运行一下,查看主要回显信息:..照例扔入 IDA64 中查看伪代码,没有 main 函数,根据关键字符串交叉引用定位到函数 sub_8001774 处:..因为是当时我不会做,所以赛后我尽力梳理逻辑,我的做法就是每一条指令都尽力理解它的作用,所以基本每条都有注释。...然后。。。。我误解了别人的博客,或者说是大佬们写的实在是太简略了啊!!

2022-05-08 00:35:28 705 3

原创 WINDOWS+PE权威指南读书笔记(27)

目录软件安装自动化基本思路:补丁程序 patch.exe:执行线程函数:简单测试:消息发送器 _Message.exe:窗口枚举回调函数:调用窗口枚举函数:向指定窗口发送消息:消息发送器源代码:测试运行:消息发送器生成工厂 MessageFactory.exe:键盘虚拟码:改进的消息发送器实例分析:消息发送器生成工厂代码结构:代码与数据的定位:提取代码字节码:软件安装自动化主程序 AutoSetup.exe:主要代码:测试运

2022-05-05 14:34:17 873

原创 2022HGAME中REVERSE的creakme2

2022HGAME中REVERSE的creakme2下载附件:..照例扔入 exeinfope 中查看信息:..照例扔入 IDA64 中查看伪代码,有 main 函数看 main 函数:..F5 未生成的异常与回调函数处理:但是常规的 XTEA 解密算法并不对,一开始怀疑题目错了,果然还是自己太菜了,出人意料的结果都是表明中间存在未分析的操作啊!(这里是除 0 异常和异常处理回调函数,虽然不知道那里限定了 loc_140001141 就是回调函数)..修改一下 XT

2022-04-30 00:00:00 698

原创 2022年4月网刃杯RE部分

2022年4月网刃杯freestyle:照例扔入 exeinfope 中查看信息:..64 位 ELF 文件,照例扔入虚拟机中运行一下,查看主要回显信息:..照例扔入 IDA64 中查看伪代码,有 main 函数看 main 函数:..最终 flag 就是 3327105 的 md5 值:比较有意思的是一开始我这样提交时并不对,搞到我以为是其它数,乱想了很久,但是后来又对了,浪费了太多时间,得吐槽一下。flag{31a364d51abd0c8304106c16779d83

2022-04-27 21:00:49 231

原创 2022 *CTF REVERSE的Simple File System

2022 *CTF REVERSE的Simple File System..下载附件,有四个文件:..照例扔入虚拟机中运行一下,查看主要回显信息:..照例扔入 IDA64 中查看伪代码,有 main 函数看 main 函数:..那么流程就是从 flag 文件中取出 flag -----> plantflag 命令加密存入磁盘节点中。关键就是存入磁盘节点中也是写入磁盘文件中啊,而出题者取出的 flag 是完整的 flag 啊,所以磁盘中一开始里面就有加密后

2022-04-18 21:31:02 535 2

原创 浅析linux的命令行解析参数之getopt_long函数

前言:在linux中,经常需要各种命令,通常情况下都会带各种参数,而这些参数是如何解析的呢?通常使用GNU C提供的函数getopt、getopt_long、getopt_long_only函数来解析命令行参数。..一、关于命令行参数命令行参数可以分为两类,一类是短选项,一类是长选项,短选项在参数前加一杠"-“,长选项在参数前连续加两杠”–",如下表(ls 命令参数)所示,其中-a,-A,-b都表示短选项,–all,–almost-all, --author都表示长选项。他们两者后面都可选择性添加

2022-04-14 15:19:18 317

原创 浅析逆向中 gcc 在主函数前后运行的函数

浅析逆向中 gcc 在主函数前后运行的函数一次逆向中遇到一个密钥在 Init 函数中被修改的例子,所以查了些资料,整理了GNU C 的 attribute 机制。..attribute 机制:attribute 可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。.__attribute__语法格式:__attribute __ ( ( attribute-list ) )前后都有两个下划线,

2022-04-14 09:53:37 703

原创 WINDOWS+PE权威指南读书笔记(26)

目录EXE 捆绑器基本思路:EXE 执行调度机制:控制进程同步运行实例分析:字节码转换工具 hex2db:hex2db 源代码:运行测试:执行调度程序 _host.exe:主要代码:数据结构分析:宿主程序 host.exe:宿主程序的功能:宿主程序的状态:遍历文件:释放文件:宿主程序主函数:EXE 捆绑器 bind.exe:绑定列表定位:捆绑步骤及主要代码:测试运行:小结:EXE 捆绑器本书 8.4 节,也就

2022-04-13 17:01:26 977

原创 2022年HGAME中REVERSE的fake shell

2022年HGAME中REVERSE的fake shell下载附件:..照例扔入 exeinfope 中查看信息:..照例扔入虚拟机中运行一下,查看主要回显信息:结合题目暗示可以看出这的确是一个假的 shell,只是简单的 if 命令分情况执行而已。..照例扔入 IDA64 中查看伪代码,有 main 函数看 main 函数:..跟踪前面说得 RC4 加密函数:(特征是 256 字节数组)..那直接下断点把要比较的密文提取出来加密即可,但是发现用密钥 "h

2022-04-11 17:16:57 1128 3

原创 2022年HGAME中REVERSE的upx magic 0

2022年HGAME中REVERSE的upx magic 0下载附件:..照例扔入 exeinfope 中查看信息:..照例扔入虚拟机中运行一下,查看主要回显信息:..照例扔入 IDA64 中查看伪代码,有 main 函数

2022-04-09 21:31:33 990

原创 2022年HGAME中REVERSE的猫头鹰选择在白天走迷宫

2022年HGAME中REVERSE的猫头鹰选择在白天走迷宫下载附件:..照例扔入 exeinfope 中查看信息:..先运行一下看主要回显信息:..64 位无壳,照例扔入 IDA64 中查看伪代码,有 main 函数看 main 函数:..把 byte_404020 数组内容提取出来整理成 64*64 矩阵即可:(下面是学到的整理代码)map=[0x20,0x20,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x

2022-04-09 11:28:05 501

原创 WINDOWS+PE权威指南读书笔记(25)

在 PE 新增节中插入程序本章研究的是在目标 PE 中新增一个节,并将可执行代码附加到该节中的技术。本章设计了一个在本地建立子目录的补丁程序和补丁工具。补丁工具中对文件头部做的修改主要包括以下字段: SizeOfHeader、SizeOfImage、AddressOfEntryPoint 和 NumberOfSections 。新增 PE 节的方法:补丁程序创造空间最好的做法就是按照 PE 数据结构的规则新增加一个节,然后将这个节有机地融合到 PE 文件中。为 PE 文件新增加一个节的空间,

2022-04-08 19:18:34 412

原创 记一次低级的汇编语言代码调试

在汇编语言程序调试中我尝试在记事本中直接加入弹框语句来判断条件句有没有执行:invoke MessageBox,NULL,offset szText3,NULL,MB_OK.然后加着加着发现有点不对劲,比如下面的语句:.if eax != 0FFFFFFFFh invoke MessageBox,NULL,offset szText3,NULL,MB_OK mov @hFile,eax.是的,后来我突然意识到函数通常都是用 EAX 来返回的,如果 MessageBox 函数加在 e

2022-04-07 21:12:54 202

原创 2022年HGAME中REVERSE的easyasm

2022年HGAME中REVERSE的easyasm..照例下载附件,是一个DOS文件:..根据题目中文含义,简单的 ASM 汇编,照例扔入 IDA 中查看反汇编:..没办法,只能理解汇编代码了,由于对段寄存器段偏移地址不太熟悉,所以栽了很多跟头:..其实爆破逻辑和那个段都没关系,但是由于我不理解对应哪个段,加上不熟悉没有 F5 ,所以我脚本逻辑一直写错,然后又没法验证,所以就一直揪着 si 的段想了很久:debug命令意义u查看debug反汇编过

2022-04-04 16:22:09 1306 2

原创 2022年HGAME中CRYPTO的Easy RSA

2022年HGAME中CRYPTO的Easy RSA照例下载附件:..结合遍历列表中元祖,直接常规RSA解密即可import libnumfrom Crypto.Util.number import long_to_byteslist1=[(12433, 149, 197, 104), (8147, 131, 167, 6633), (10687, 211, 197, 35594), (19681, 131, 211, 15710), (33577, 251, 211, 38798), (

2022-04-04 16:21:50 339

原创 2022年HGAME中CRYPTO的RSA Attack2

2022年HGAME中CRYPTO的RSA Attack..照例下载附件,一个 task.py,一个output.txt:import refrom math import ceilfrom Crypto.Util.number import getPrimefrom libnum import s2nfrom secret import flagflag_parts = list(map(s2n, re.findall(rf".{{,{ceil(len(flag) / 3)}}}",

2022-04-04 16:21:26 659

原创 2022年HGAME中CRYPTO的RSA Attack

2022年HGAME中CRYPTO的RSA Attack..照例下载附件,一个task.py和output.txt:rom Crypto.Util.number import getPrimefrom libnum import s2nfrom secret import flagm = s2n(flag)e = 65537p = getPrime(80)q = getPrime(80)n = p * qc = pow(m, e, n)print("e =", e)prin

2022-04-04 16:20:48 568

原创 2022年HGAME中CRYPTO的RSA Attack3

2022年HGAME中CRYPTO的RSA Attack3..照例下载附件,照例先 CTF-RSA-tool 工具先行:..解毕!敬礼!

2022-04-04 16:20:29 324

原创 2022年HGAME中CRYPTO的Multi Prime RSA

2022年HGAME中CRYPTO的Multi Prime RSA..照例下载附件,看了一眼,发现是变形的RSA加密,变形处为 n = p ** 2 * q ** 3 * r ** 5 * s ** 7:from Crypto.Util.number import getPrimefrom libnum import s2nfrom secret import flagp = getPrime(256)q = getPrime(256)r = getPrime(256)s = get

2022-04-04 16:19:52 962

原创 2022年HGAME中REVERSE的creakme

2022年HGAME中REVERSE的creakme下载附件,照例扔入 exeinfope 中查看信息:..32 位无壳,照例扔入 IDA 32中查看信息,有 main 函数看main 函数:..那么直接给出解密脚本:#include <stdio.h>#include <stdint.h> void decrypt (uint32_t* v, uint32_t* k) { uint32_t v0=v[0], v1=v[1], sum=11835

2022-04-04 16:19:26 462

原创 2022年HGAME中REVERSE的Flag Checker

2022年HGAME中REVERSE的Flag Checker照例下载附件:..APK 文件,运行不了,照例扔入 JEB 中查看代码:..既然是 RC4 加密,那么直接搬上解密代码,结果发现解码错误:..那就修改编码为 Unicode-escape 编码,正确代码如下:(相关编码细节可以查看另一篇博客)# -*- coding: utf-8 -*-import base64def get_message(): print("输入你的信息: ") s=input() r

2022-04-04 16:19:11 762

原创 2022年HGAME中REVERSE的猫头鹰是不是猫

2022年HGAME中REVERSE的猫头鹰是不是猫..下载附件,照例扔入 exeinfope 中查看信息:..64 位无壳,ELF 文件,照例扔入虚拟机中运行一下,查看具体回显信息:..照例扔入 IDA64 中查看伪代码,有 main 函数看 main 函数:..所以就是用户输入经过与两个除 10 后的 64*64 矩阵相乘后与预定义值比较的程序。首先得回顾处矩阵乘法,是一行乘以一列来得出一个数,乘以全部列才得出一行数。..知道这些后先下断点拿出两个除 10 后的

2022-04-04 16:18:46 206

原创 记一次 unicode-escape 和 utf-8 编码的互解

记一次 unicode-escape 和 utf-8 编码的转换是这样的,我在做 CTF 题的 RC4 编码时遇到一个 base64 加密后输出的密文:mg6CITV6GEaFDTYnObFmENOAVjKcQmGncF90WhqvCFyhhsyqq1s=..直接 base64 解密后发现输出的是:b"\x9a\x0e\x82!5z\x18F\x85\r6’9\xb1f\x10\xd3\x80V2\x9cBa\xa7p_tZ\x1a\xaf\x08\\xa1\x86\xcc\xaa\xab

2022-04-01 16:58:49 2924 10

数据库大作业之教学管理系统

里面有两个教学管理系统,请自己搭环境

2022-06-13

virtualbox5.2.44和ensp

virtualbox5.2.44和ensp,亲测在上传的日期可以在最新版的windows10专业版上运行

2022-06-10

javaweb网上图书商城

一个javaweb的大作业

2022-04-21

网络程序设计作业VS2010.zip

网络程序设计作业VS2010.zip

2022-03-12

协议pcap报文构造和解析.zip

模仿wireshark构造和解析对应协议的pcap报文

2021-12-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除