Giter Club home page Giter Club logo

drunkdream.github.io's Introduction

醉梦轩 —— drunkdream的blog

采用 Hexo + NexT.Pisces主题

drunkdream.github.io's People

Contributors

drunkdream avatar

Watchers

James Cloos avatar  avatar  avatar

drunkdream.github.io's Issues

deepin运行Android应用踩坑笔记 | 醉梦轩

https://www.drunkdream.com/2021/07/24/deepin-uengine/

0x00 前言Deepin v20.2.2系统支持运行Android应用,于是安装了Windows/Deepin双系统后,开始了运行Android应用的踩坑之旅。以下是在这过程中的踩坑记录。 0x01 安装uengineDeepin中是通过一个叫uengine的工具来支持Android应用的,这是一个基于anbox进行二次开发而成的工具。它的基本原理是通过在Linux内核中安装Android所需要

使用Cython和Nuitka编译Python脚本 | 醉梦轩

https://www.drunkdream.com/2022/09/14/build-python-with-cython-and-nuitka/

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

Ubuntu部署OpenVPN服务 | 醉梦轩

https://www.drunkdream.com/2017/12/16/install-openvpn-server/

0x00 前言OpenVPN是一款跨平台的开源VPN软件,它利用虚拟网卡,以一种全新的方式实现了SSL VPN的功能,能够适应IP层之上的几乎所有应用。它使用TCP或UDP协议进行通信,相比于其它VPN,具有更好的NAT兼容性。 以下以腾讯云的Ubuntu 16.04.1 TLS 64位系统作为部署环境。如无特别说明,以下所执行的命令都需要root权限。 0x01 创建证书如果已经有证书,可以忽略

gevent初探 | 醉梦轩

https://www.drunkdream.com/2020/02/18/gevent/

0x00 前言有很多Python语言的协程库,如:tornado、asyncio等。这些库在使用时需要使用特定的语法,如:async/await,对于非协程的代码需要改写才能以协程方式运行。 gevent是一个特殊的协程库,它可以将非协程代码以协程方式运行,从而起到提升性能的作用。本文尝试分析一下它的实现原理。 0x01 使用案例先看以下这段代码: import ctypes import sys

如何实现支持NAT的ICMP隧道 | 醉梦轩

https://www.drunkdream.com/2022/05/05/icmp-tunnel-through-nat/

0x00 背景最近遇到一个客户环境比较特殊,无法使用TCP或UDP访问外网,但是可以ping通外网。于是想到通过ICMP协议建立与外界的通信链路。在尝试了几个开源工具都宣告失败后,准备自己撸一个ICMP隧道。当然,这个隧道工具需要支持穿过NAT访问网络。 0x01 NAT对ICMP的限制通常来说,NAT对TCP和UDP支持都比较好,但对ICMP一般限制会比较多。例如,常见的限制条件有: 内部机器

小米平板5安装Linux系统 | 醉梦轩

https://www.drunkdream.com/2021/08/30/mipad5-install-linux/

0x00 背景小米平板5开始支持了键盘与鼠标,终于离生产力工具越来越近了。因此,从入手小米平板5开始,就想着怎么安装一个linux系统,可以在里面安装vscode,以便使用pad开发代码。下面是这段折腾之路的记录。 0x01 使用Aid Learning方案Aid Learning是一个为在Android机器上进行AI开发而实现的APP,官网地址为:http://www.aidlearning.n

Ubuntu安装VNC Server | 醉梦轩

https://www.drunkdream.com/2017/09/26/ubuntu-install-vnc-server/

之前在ubuntu上一般都是用vnc4server,但是它只能打开一个窗口,无法像windows上那样操作本地桌面,只能说比ssh强大一点。 今天发现了一个强大的vnc服务端x11vnc,可以远程操作本地桌面。以下内容主要来自于:http://blog.csdn.net/longhr/article/details/51657610。 安装方法以下命令都需要在root权限下运行,因此不单独加上su

在线调试Github Actions | 醉梦轩

https://www.drunkdream.com/2022/06/27/debug-github-actions/

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

使用PyInstaller打包可执行文件 | 醉梦轩

https://www.drunkdream.com/2018/12/21/pyinstaller/

0x00 前言之前都是使用py2exe将Python程序打包成可执行文件,但是最近需要打包成Macos上的可执行程序。于是,选择了py2app,但是使用下来发现坑比较多,最终还是放弃了。 于是,将目光转向了PyInstaller,它可以同时支持Windows和Macos,并且使用方法差异也很小。 PyInstaller与py2exe的主要差异(Windows): PyInstaller打包出来的

创建一个简单的SSH服务器 | 醉梦轩

https://www.drunkdream.com/2022/07/26/create-simple-ssh-server/

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

多语言混编脚本 | 醉梦轩

https://www.drunkdream.com/2020/05/29/mixed-lang-script/

0x00 前言通常一个脚本都是使用某一种语言编写,使用固定的解释器执行。例如以下这段vbs脚本: WScript.echo("Hello World!") 可以使用wscript或cscript执行,但肯定不能使用cmd或其他程序执行。 是否可以构造这样一种脚本,能同时被多种解释器执行呢? 0x01 小试牛刀下面是一段神奇的脚本: :On Error Resume Next

WSL中部署nginx作为反向代理 | 醉梦轩

https://www.drunkdream.com/2019/07/21/wsl-nginx/

0x00 前言自从有了WSL,在Windows上部署各种服务也变得更加方便。最近,遇到一个问题,本地调试一些Web服务的时候,必须要使用80端口,如果同时有两个服务都监听80端口必然会导致冲突。而且,在Linux中监听80端口需要使用root权限,每次启动的时候都要加上sudo也挺麻烦的。
因此,想到可以利用nginx的反向代理能力,在本地进行HTTP的转发,这样,每个服务就可以使用自己的端口了。

NGINX部署HTTPS | 醉梦轩

https://www.drunkdream.com/2018/06/03/nginx-https/

0x00 前言nginx是一款高性能的Web服务器,可以用作反向代理和负载均衡。随着HTTPS的不断推进,越来越多的网站都开始转到HTTPS方式,HTTP仅仅作为重定向到HTTPS的途径。 本文介绍了如何在Ubuntu 16.04服务器上搭建基于nginx的HTTPS服务器,并且支持SNI。 0x01 准备域名和HTTPS证书域名分为免费域名和收费域名 免费域名免费域名包含一级域名和二级域名。 一

Ubuntu 16.04 部署MySQL服务 | 醉梦轩

https://www.drunkdream.com/2018/07/11/install-mysql-server/

0x00 前言MySQL是一款开源的关系型数据库管理系统,大量公司都在使用它,或是在它的基础上做二次开发。有时,我们会需要在Linux系统上部署MySQL服务用于测试。 本文是根据网上的经验分享以及亲自实践的过程总结而来。实验环境为:Ubuntu 16.04 x64。 0x01 安装MySQL服务端和客户端apt install mysql-server -y apt install mysql

一款让跨网络访问变简单的工具——turbo-tunnel | 醉梦轩

https://www.drunkdream.com/2021/02/27/turbo-tunnel/

0x00 前言你是否遇到过以下这些情况: 目标服务需要通过跳板机才能访问,每次都要将端口映射到本地,然后配置hosts访问 不同的服务需要配置不同的代理才能访问,管理起来很不方便 有些服务需要通过嵌套代理才能访问,本地不太好配置 本地开发、调试后端服务时,对于第三方依赖服务难以直连或通过同一个代理访问,而服务进程又只能配置固定的代理 总的来说,就是因为不同的开发、运维环境差异导致的跨网

Python中动态创建类的方法 | 醉梦轩

https://www.drunkdream.com/2018/07/26/python-dynamic-create-class/

0x00 前言在Python中,类也是作为一种对象存在的,因此可以在运行时动态创建类,这也是Python灵活性的一种体现。
本文介绍了如何使用type动态创建类,以及相关的一些使用方法与技巧。
0x01 类的本质何为类?类是对现实生活中一类具有共同特征的事物的抽象,它描述了所创建的对象共同的属性和方法。在常见的编译型语言(如C++)中,类在编译的时候就已经确定了,运行时是无法动态创建的。那么Pyt

KTurtle编程使用入门 | 醉梦轩

https://www.drunkdream.com/2023/07/08/kturtle/

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

怜香辞 | 醉梦轩

https://www.drunkdream.com/2017/01/14/lian-xiang-ci/

怜美人之徜徉兮,郁郁而寡欢青丝凌凌而猗靡兮,暗自悲悯欲绝面若初桃兮带雨,腰恰细柳兮销魂残黛双蹙,粉眼凝山朱唇几褪,皓齿贝连冰肌玉骨,风掀翠衫 忆曩昔之欢娱兮,愁云弥散携手伴游石城兮,幽亭共凭阑步逍遥而无忧兮,笑语厌厌 孰料风云之幻兮,须臾莫辨风雨骤临凄凄兮,软玉难牵孤夜茕独垂泪兮,枕席湿眠何旧人之难却兮,思怨益切詈雄兔之负心兮,雌兔独痴情乐新而弃故兮,顾之于漠漠何怀伤于斯人兮,全不念昔日缠

Nginx自动重定向 | 醉梦轩

https://www.drunkdream.com/2020/09/24/nginx-302-to-200/

0x00 前言在使用Nginx作为反向代理的时候,如果源服务返回了30x(301、302、303、307等)返回码,需要用户再重新发送一次HTTP请求。但此时有可能出现用户不能直接访问重定向后的URL,就需要Nginx能自动进行重定向,读取新的URL后,通过200返回码返回真正的内容。本文主要就是研究了怎么配置Nginx以实现这样的功能。 0x01 使用错误处理进行反代Ngnix提供了error_

本地部署Jenkins环境 | 醉梦轩

https://www.drunkdream.com/2019/12/06/local-deploy-jenkins/

0x00 前言Jenkins是一款使用比较广泛的CI/CD平台,2.0版本开始支持了pipeline,通过jenkinsfile文件进行流水线的控制。本文提供了一种在本地Linux环境中快速搭建Jenkins测试环境的方法。 0x01 环境部署直接使用docker镜像搭建环境是一种比较快捷的方法。编写如下Dockerfile文件: FROM jenkins/jenkins:lts USER ro

浅谈Javascript中的Hook技术 | 醉梦轩

https://www.drunkdream.com/2020/06/05/javascript-hook/

0x00 前言Hook是一种动态修改函数执行流程或返回结果的方法,在实际应用中非常广泛。Javascript作为一种动态语言,也可以进行Hook操作。随着Javascript语言的发展,Hook的方法也越来越多,本文介绍了常见的几种Hook方法。 0x01 最简单的Hook方法Javascript中的函数可以直接被覆盖,因此,这也是最简单的一种Hook方法。 window.alert = func

WSL2入坑指北 | 醉梦轩

https://www.drunkdream.com/2020/07/27/wsl2-guide/

0x00 前言随着Win10 2004版本的发布,WSL2的时代也正式到来。使用过WSL的用户,都遇到过一些很不爽的问题,例如:不能直接使用docker,一些系统相关的函数不能调用,netstat命令不能使用等。这些问题在WSL2中都得到了解决,因此,是时候切换到WSL2了。 不过,WSL2不是万能的,依然有一些问题,甚至有些问题本来在WSL1的时代是不存在的。 0x01 安装WSL2升级系统如果

醉梦赋 | 醉梦轩

https://www.drunkdream.com/about/state=

  醉梦者,杨氏忠良微末之后,字真如,号醉梦,刘裕故人也。性好诗书,又喜辞赋,兼习佛,道,史,古文。
  每尝读史则叹曰:“人心不古,罗敷难求”,又曰:“平生所愿,惟一知己足矣”,遂作一联曰:“誓扫六和同分楚天一色,愿携佳人共效比翼双飞”。奈何天道苍茫,金迷财醉,众人皆醉何我独醒,是以谐醉,故号醉梦,惟求醉中逍遥无日月,梦里依稀见乾坤。
 &ems

Linux容器——那些你不知道的事 | 醉梦轩

https://www.drunkdream.com/2021/09/22/linux-container/

0x00 前言容器是指一种系统级的虚拟化技术,想比于KVM等内核级的虚拟化技术,具有更加轻量的特点。随着Docker技术以及k8s容器编排引擎的流行,容器在云原生时代扮演着绝对重要的角色。但事实上,容器技术自从Unix时代就已经出现,并且存在着多种容器方案,不同的容器方案之间既有相同点,也有不同点。 0x01 最早的容器化技术——chroot最早的容器是1979年由UNIX实现的Chroot Ja

使用Kali系统进行无线网络破解 | 醉梦轩

https://www.drunkdream.com/2022/05/22/kali-wifi-cracking/

0x00 前言Kali是一款常用于渗透测试的Linux发行版,集成了较多的安全工具。本文尝试使用Docker安装Kali,并进行Wifi的破解工作。 本文仅做技术研究,请勿用于非法用途。 0x01 在Docker中安装Kali系统Kali官方提供了Docker镜像:kalilinux/kali-last-release。但是这个镜像基本没有包含任何工具,如果要安装全部工具,镜像大小会超过4G。很明

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.