醉梦轩

醉中无日月,梦里有乾坤


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 搜索

Windows中如何在父子进程间传递SOCKET句柄

发表于 2024-05-16 | 分类于 Windows
字数统计 655 | 阅读时长 2
0x00 背景Linux由于一切皆文件,不管是文件、管道,还是socket,都可以轻易在父子进程间传递;而Windows上会复杂很多。最近有个需求,需要进行父子进程间的通信,常见的方案是在创建子进程时通过stdin、stdout、stderr这三个句柄来传递管道句柄,从而达到父子进程间通信的目的。但这种方式最大的问题是:对子进程需要单独处理stdout和stderr,使用上有些限制。 经过调研之后 ...
阅读全文 »

Scratch教程---开发一个时钟

发表于 2024-03-06 | 分类于 Scratch
字数统计 701 | 阅读时长 2
0x00 前言本文介绍了如何使用Scratch开发一款实时的时钟程序,通过这个例子,可以让学员加深对时钟运行规律的理解,同时学习到死循环、事件驱动等编程相关的知识点。 0x01 准备工作需要提前准备好时钟的资源文件: 表盘: 时针: 分针: 秒针: 将资源文件保存到本地。 使用浏览器打开Scratch的国内镜像站:https://scratch.drunkdream.cn/。 0x02 ...
阅读全文 »

Linux中的binfmt-misc原理分析

发表于 2024-02-07 | 分类于 Linux
字数统计 2.3k | 阅读时长 10
0x00 什么是binfmt-miscbinfmt-misc(Miscellaneous Binary Format)是Linux内核提供的一种类似Windows上文件关联的功能,但比文件关联更强大的是,它不仅可以根据文件后缀名判断,还可以根据文件内容(Magic Bytes)使用不同的程序打开。一个典型的使用场景就是:使用qemu运行其它架构平台上的二进制文件。 本文以该场景为例,分析一下其具体 ...
阅读全文 »

iPad上使用UTM安装Linux arm64系统

发表于 2024-01-05 | 分类于 Linux
字数统计 1.5k | 阅读时长 5
0x00 背景以前研究过一次在iPad上安装Linux系统,当时的方案是:AltStore + UTM,由于没有硬件虚拟化,性能非常差,只能安装服务器版Linux,而且UTM由于签名问题需要每7天续签一次,几乎不具有可玩性。 最近看到有帖子说UTM支持硬件虚拟化了,于是稍微研究了一下,上面的两个问题也都解决了。 0x01 基本原理解决这两个问题的关键都在一个叫:Trollstore(巨魔)的工具。 ...
阅读全文 »

KTurtle编程使用入门

发表于 2023-07-08
字数统计 1.3k | 阅读时长 4
0x00 前言KTurtle 是一个KDE开发的 Turtle Graphics(海龟绘图法) 教育编程环境,通过控制海龟的行进,在屏幕上绘制出相应图案的技术。它是根据开源的 GNU通用公共许可证发布。它可以让孩子通过可视化方式学会基本的编程思维,并掌握一定的数学、几何等知识。它的结构非常简单,非常适合儿童学习。 KTurtle 使用TurtleScript语言进行操作,该语言是从Logo语言的基 ...
阅读全文 »

解决Deepin中Grub字体太小问题

发表于 2022-11-05 | 分类于 Linux
字数统计 786 | 阅读时长 3
0x00 背景最近重装了一下Deepin v20系统,发现开机时Grub菜单字体变小了,看着很不舒服,就尝试着寻找了下解决方法。 Grub配置文件路径是:/etc/default/grub,所以主要就是修改这个文件。该文件的默认内容为: # Written by com.deepin.daemon.Grub2 DEEPIN_GFXMODE_ADJUSTED=1 GRUB_BACKGROUND=/b ...
阅读全文 »

使用Cython和Nuitka编译Python脚本

发表于 2022-09-14 | 分类于 Python
字数统计 2.5k | 阅读时长 13
0x00 前言在Python中,可以使用py2exe或PyInstaller之类的工具将Python脚本编译成二进制文件,从而提升可移植性,并在一定程度上提升了性能。不过这类工具的实现只是将py文件编译成pyc或pyo,在安全性上还是弱了一些,存在被反编译的风险。 为了测试不同编译方式的性能差异,这里统一使用python2.7中提供的test/pystone.py作为执行脚本。由于这个脚本不支持p ...
阅读全文 »

绕过SSH服务器的端口转发限制

发表于 2022-08-03 | 分类于 Linux
字数统计 1.3k | 阅读时长 6
0x00 背景在某些场景下SSH服务器会禁用掉端口转发的能力,以降低安全风险。这会导致很多依赖SSH端口转发的工具无法正常工作。 这里主要是修改了/etc/ssh/sshd_config文件中以下几项实现的: #AllowAgentForwarding yes #AllowTcpForwarding yes #X11Forwarding yes 此时,SSH服务器基本就变成了只能执行shell命 ...
阅读全文 »

创建一个简单的SSH服务器

发表于 2022-07-27 | 分类于 Linux
字数统计 2k | 阅读时长 8
0x00 前言为了加深对SSH协议的理解,准备自己实现一个SSH服务端,需要同时支持Windows、Linux、MacOS三大系统。为了尽量提升性能,准备使用协程(asyncio)来开发。 0x01 基于AsyncSSH开发一个最简单的SSH服务端在调研了几个开源的python SSH库后,最终选择了AsyncSSH。这个库基于asyncio开发,符合我们的要求,同时扩展性也比较好。 下面实现了一 ...
阅读全文 »

在线调试Github Actions

发表于 2022-06-27 | 分类于 Misc
字数统计 1.1k | 阅读时长 4
0x00 背景Github Action提供了便捷的流水线能力,但是对于较为复杂的场景,只能依靠不断试错来定位和解决Action报错,效率非常低下。网上也有人提供了基于tmate的远程调试方案,但该方案也存在着一些不足。本文尝试提供一些其它的解决方案。 0x01 tmate方案简述tmate是一款实时终端共享工具,主要支持Linux系统。其基本原理是:tmate运行后会创建一个shell会话,并连 ...
阅读全文 »
12…9
drunkdream

drunkdream

83 日志
12 分类
69 标签
© 2017 - 2024 drunkdream
由 Hexo 强力驱动
主题 - NexT.Pisces
45819 60831