【Web】Anaconda介绍、安装及使用

介绍

Anaconda是Python和Conda的组合包,里面附带了不少科学计算使用的Python依赖,并且可以通过Conda进行版本管理,能够便携获得管理包
Conda不仅支持Python,还支持R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN语言(虽然大部分都用不上)

继续阅读【Web】Anaconda介绍、安装及使用

【WechatBot】基于内存注入下的微信机器人

本文仅作技术分享,提醒各位注意网络应用安全性,请勿用于其他用途,否则后果自负。
前几天写过一篇这样的文章,但是耐不住WgpSecBot总是崩溃,于是打算自己写一个
【脚本】基于WgpSecBot的比赛推送
但是问题又来了,自从腾讯封了Web和UOS协议后,就再也弄不到机器人了。
但是苍天不负有心人,我找到了这个Github-wechat-bot
这个版本是基于对Windows下的微信进行内存注入实现的

继续阅读【WechatBot】基于内存注入下的微信机器人

【WSL】WSL2-Ubuntu安装CUDA

某一天,在摸鱼的时候被人拍了一下,叫我用Kali跑一下hashcat,因为hashcat可以调用CUDA(显卡)模块,加速爆破
虽然实际上,我的CPU跑起来也很快
file
但是,既然来了就研究一下。但是我又不想装多系统,那么就该想想怎么在WSL里面调用CUDA了。

继续阅读【WSL】WSL2-Ubuntu安装CUDA

【WEB】POP链的构造

序列化与反序列化

序列化是为了方便于数据的传输,将对象转换为字节流,载入网络/磁盘IO流中,可以通过对应方法将其还原出来。

序列化与编码的区别

对象===【序列化】==>消息===【编码】==>字节流

总结来说就是,先把对象拆开变成一串可以还原成原对象的字符串,再通过特定编码,变为网络传输的字节流

PHP中的魔术方法

__sleep() //使用serialize时触发
__wakeup() //执行unserialize()时,先会调用这个函数
__construct() //对象创建时触发
__destruct() //对象被销毁时触发
__call() //在对象上下文中调用不可访问的方法时触发
__callStatic() //在静态上下文中调用不可访问的方法时触发
__get() //用于从不可访问的属性读取数据
__set() //用于将数据写入不可访问的属性
__isset() //在不可访问的属性上调用isset()或empty()触发
__unset() //在不可访问的属性上使用unset()时触发
__toString() //把类当作字符串使用时触发
__invoke() //当脚本尝试将对象调用为函数时触发
__set_state()//调用var_export()导出类时,此静态方法会被调用。
__clone()//当对象复制完成时调用
__autoload()//尝试加载未定义的类
__debugInfo()//打印所需调试信息

继续阅读【WEB】POP链的构造