自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(147)
  • 资源 (1)
  • 收藏
  • 关注

原创 写一个监控采集公众号文章的插件

微信关注了很多技术类的公众号,但是一直都没看,所以想先把文章下载下来,放着以后可能一定会看。之前写的Python微信机器人系列文章里提到了如何hook微信的实时消息,实时消息里也包含了公众号文章的推送,可以获取到文章的标题链接和发布时间,而且获取的很及时,基本公众号已发文推送就能收到。这样我们可以在收到文章后请求到正文然后保存成html,这样也可以防止文章被删除。后面有时间顺便把这些公众号的历史文章也下载保存成pdf或HTML。

2024-04-19 09:41:44 614

原创 搭建一个问答交流平台

弄了个视频号下载后,同一个问题每天都会被问,回答的有点烦了。想了想根本原因还是缺少一个交流平台,微信群的话,刚进群的看不到之前的聊天记录。想整个知识星球,发现只能弄个收费的,免费的需要激活码才能创建。而有些人不会使用github,所以这篇文章写一下如何使用开源项目搭建一个问答平台。本来是想弄个论坛,但是在搜索的过程中发现这个问答平台更符合我的要求(支持搜索、轻量和搭建简单)。

2024-04-18 13:43:53 144

原创 Python调用微信OCR识别文字和坐标

大概流程是使用mmmojo.dll这个dll来与WeChatOCR.exe做通信的,也是用它来启动和关闭WeChatOCR.exe进程的。就以上面github里的C++代码为例,代码里是将它设置为类的this指针,然后在建立连接后调用。搜了一下,在Python里也可以实现这样一个操作,把这个值设置成Python类对象,然后就可以在回调函数访问这个类对象。代码怎么实现的就不多说的,感兴趣的可以看github的源码。,如果m_connect_con_var变量没有被设置,说明没有连接成功,就一直等待。

2024-04-15 21:08:38 522

原创 aardio教程五) 写Python风格的aardio代码(字符串篇)

熟悉一个新的语言最麻烦的就是需要了解一些库的使用,特别是基础库的使用。所以我想给aardio封装一个Python风格的库,Python里的基础库是什么方法名,aardio里也封装同样的方法名。这样就不需要单独去了解aardio里一些方法的使用细节,可以很方便的将Python代码改成aardio代码。

2024-04-07 09:34:47 322

原创 aardio教程四) 理解名字空间(namespace)

其实aardio中的名字空间就是用table来实现的,导入一个名字空间,就是往table里添加了一个键值对,键是名字空间的名称,值则是另一个table(名字空间)。而global本质上也是一个table,定义的函数和导入的其他名字空间都是global的成员,可以像表一样使用global。在namespace里导入的名字空间也会放一份到global里,比如module里的代码是下面的,上面的代码依然可以执行。为了验证这一点,我们可以在导入一个名字空间后,删除掉这个键,看看这个名字空间还能不能被使用。

2024-04-02 17:40:46 397

原创 aardio教程) 搭建自己的扩展库仓库

aardio中有些经常使用的库,换个项目总需要复制一下,还不便于修改。虽然可以直接把它放到aardio\lib目录下,也是不便于共享给其他人使用。最近偶然翻到编辑器里的工具->开发环境->扩展库发布工具,就想着可以像官方一样,发布自己的扩展库,也便于分享给大家使用,最好能像官方扩展库一样在线安装。

2024-03-27 08:59:13 1065

原创 aardio封装库) sunny抓包工具的使用

基础库的使用,比如string、table等基础控件的使用,比如listview、tab等aardio和Python交互,比如给Python写个界面自带的范例程序我写的一些小程序当然,我的理解也是很基础的,特别是在界面设计上,我都是用的默认控件的默认设置,不会去自定义控件内容。要想做出特别炫酷的程序,你还得依赖其他语言和工具的基础。例如用HTML和CSS来实现界面。

2024-03-25 09:25:57 909

原创 aardio教程三) 元表、元方法

基础库的使用,比如string、table等基础控件的使用,比如listview、tab等aardio和Python交互,比如给Python写个界面自带的范例程序我写的一些小程序当然,我的理解也是很基础的,特别是在界面设计上,我都是用的默认控件的默认设置,不会去自定义控件内容。要想做出特别炫酷的程序,你还得依赖其他语言和工具的基础。例如用HTML和CSS来实现界面。

2024-03-20 10:30:48 945

原创 aardio教程二) 进阶语法

/定义类class 类名字{//构造函数可以省略ctor( 构造参数列表 ){//构造函数代码类属性 = "属性值";类方法 = function(参数){和定义一个table的语法基本一样,只是类可以创建出对象var 对象 = 类名字();io.print(对象.类属性)对象.类方法();

2024-03-17 22:22:55 371

原创 aardio教程一) 基础语法-下

/ 将一个匿名函数赋值给了一个变量。

2024-03-16 14:30:15 403

原创 aardio教程一) 基础语法-上

想开发一些小工具,所以想系统性的学习一遍aardio,之前都是哪里不会搜哪里,顺便写些教程。我的主要语言是Python,所以会以Python作为对比来加深印象。aardio的基础语法和JavaScript基本类似,如果你学过JavaScript,aardio很容易上手。下面的文档来自官方文档[1]

2024-03-15 12:44:52 928

原创 写个视频号下载工具

之前在看雪看到一篇关于视频号加密逆向的文章,想着自己复现一下,学习一下wasm逆向。又发现文中提到的软件已经开始收费了。不过收费也很合理,毕竟开发和维护都是需要时间成本的。那就自己开发一个出来,原理看雪那篇文章已经说的很明白了,而且github现有的代码,他的解密逻辑用的也是这篇文章中的,基本没做改动。

2024-01-27 18:10:52 1207 1

原创 使用Python监听并下载微信聊天表情包

使用Python运行这段代码,就会将Python注入到微信,并且开始监听微信收到的消息,然后将监听到的消息依次传递给msg_plugins指定的插件列表。使用Python来监听微信消息,如果收到表情包消息就提取里面的链接并下载,因为表情包xml消息里有一个未加密的链接。插件列表是有顺序的,在执行时会依次执行,如果之前的插件修改了消息字典,那么之后的插件得到的消息字典就是修改后的。如果表情没有文字,那只能使用一些模型,为图片生成一个简单的描述,然后将这个描述作为检索的信息。

2024-01-19 13:48:38 459 1

原创 Windows实现多用户同时远程连接

下面这个设置是同一个用户可以登录多个(没什么意义,因为进入的桌面环境不一样,看不到对方在干嘛)以下的步骤Win10和Win11是一样的,只需要在被控端设置,连接的电脑无需设置。设置-》家庭与其他用户-》将其他人添加到这台电脑-》我没有这个人的登录信息。设置-》系统-》远程桌面-》选择可远程访问这台电脑的用户。可以看到是正常工作的,如果不是正常工作github的。测试一下,如果出现下图,则需要重启电脑。重启后就可以同时连接该电脑的多个用户,也可以使用Win键+R然后输入。文件,再打开应该就可以了。

2024-01-15 10:35:29 514

原创 使用Gitea搭建自己的git远程仓库

之前就是用的gitlab做私有仓库,但gitlab实在太臃肿了,启动并运行大概需要4G的内存,即使你精简一些服务的话,至少也得2G内存。后来发现了Gitea,测试了下很轻量,我一个使用作为自己的代码仓库很方便,资源需求也不高。并且他还支持跨平台,支持 Linux, macOS 和 Windows 以及各种架构,除了 x86,amd64,还包括 ARM 和 PowerPC。,我一般会去dockerhub看一下它支持的架构和最新的版本,因为我是在arm机器上跑的。后面容器内的端口一样,如果改了会进不去Web。

2024-01-02 10:23:15 1149

原创 wsl中的Ubuntu安装远程桌面

正常情况下两个都是可以的,但是最近更新后,我发现第一种方法里运行Gparted的时候直接闪退,然后在连上去就不显示任何东西了,第二种方法如果session选的是Xorg也是这种情况,选Xvnc就正常。不清楚是什么原因,目前先用着xrdp的Xvnc,后面看看更新会不会解决这个bug。

2023-12-31 20:43:58 1068

原创 香橙派5plus从ssd启动Ubuntu

其中WIFI模块的接口应该也可以插2230的固态,不过是pcie2.0的速度,背面的接口则是pcie3.0*4的速度,差距还是挺大的。刷入前先解压下下载的系统镜像,最后得到一个img格式的文件,然后在balenaEtcher里选择这个镜像和你的内存卡,点击。假设你现在已经将固态硬盘、内存卡和网线都插上了,现在只需要接通电源后将HDMI的接口接到显示器上,按下电源按钮,等待片刻。查看下固态是否被识别,我以前买的杂牌固态不识别,换了下双十一新买的识别正常。,我选择的是第三方维护的。,等待烧录成功的提示。

2023-12-27 14:41:54 1062

原创 【Python微信机器人】第六七篇: 封装32位和64位Python hook框架实战打印微信日志

context这个结构体获取的就是当执行到这个地址时的寄存器的值,这个和你用x32dbg看到的寄存器的值是一样的。值的类型都定义成DWORD,如果寄存器是类型是其他类型,比如字符串或结构体,你需要在Python里做相应的转换,可以参考下面Hook日志的代码。上上篇文章说的以后只更新32位版本这句话收回,以后会同时更新32位和64位的最新版本,已经可以在Python中使用Detours来hook 64位版本。回调函数的参数跟被Hook函数的参数必须一样,如果参数很多,你也可以用。

2023-12-26 14:53:32 755

原创 keystone和beaengine的编译

第二个是编译dll,我用不到dll就不勾选了,如果勾选了则不会生成lib库了。, 接着会弹出一个选择Visual Studio的版本,这里我选择2017,平台选择Win32,也就是32位(x86),接着点。, Name填BEA_ENGINE_STATIC,type就默认BOOL,value勾选它,在点击OK。第一个位置填的是刚才下载的源码路径,第二个则是创建后的项目路径,然后点击左下角的。这个文件就是后面要用到的文件,下面beaengine就不说的这么详细了。因为我填写的路径不存在,提示我是否创建,点。

2023-12-24 11:16:17 425

原创 封装Detours用于Python中x64函数hook

我为啥要定义成二级指针?因为为啥DetourAttach要把它定义成二级指针?开始我也不理解这个问题,直到我想在Python里调用原函数,发生了无限递归的异常。为啥C++写的代码不会触发无限递归,它同样是用的函数指针来调用,要想知道原因只能自己使用x64dbg调试看看。经过漫长的调试发现,我传进去的ppPointer指针指向的值会被修改,它不在指向原函数(被hook函数),而是指向Detours新构建的一个函数指针,这也就能解释为啥不会无限递归了这里再接上。

2023-12-22 17:51:09 785

原创 使用汇编和反汇编引擎写一个x86任意地址hook

我试了下用vs2017编译不通过,看了文档和issue,必须得使用vs2013及以下的版本才能编译成功,所以就放弃了,改成使用keystone。将这个编译成dll就能在Python里加载了,不过dll只能用于hook当前进程,这是因为函数不能跨进程调用,你创建的回调函数,其他进程无法调用。这样操作比较繁琐,每次hook都要定义一堆东西,还得自己补充hook地址被修改的汇编指令,最重要的是这种hook无法扩展到Python里使用。这里的4个0x90是存放hook回调函数的地址,接着写入回调函数地址。

2023-12-21 09:42:20 1217

原创 【Python微信机器人】第六篇:优化使用方式,可pip安装

这在使用定时器和多线程时很有用,hook类已经被定义成了单例模式,不需要这样操作,你新建一个文件在实例化一个也是一样的效果。接着你在当前目录创建的任何代码保存后,都会被自动加载到微信并执行(注意创建的带代码文件名不能以数字开头)发送消息时不要使用死循环,会阻塞Python进程,如果想定时发送消息,可以使用Python的定时器。如果想定点发消息,可以每隔一秒开启一个定时器,判断时间是否是符合要求,符合就发送,不符合就继续。hook不会阻塞进程,因为回调函数是在微信内部被调用,所以不需要使用多线程。

2023-12-19 09:33:13 1099 2

原创 Python给exe添加以管理员运行的属性

这里以Python为例修改注册表,让Python每次都以管理员权限启动,这种其实属于危险行为,因为Python也可以在你电脑上做任何事。有些应用每次启动都需要用管理员权限运行,比如Python注入dll时,编辑器或cmd就需要以管理员权限运行,不然注入就会失败。当你在右键勾选这个选项时,当前用户的注册表路径下就会多出一个键来,键名是软件的绝对路径,值则是。另外,其他几个选项也是在这个路径下,分别对应不同的值,这里我就不演示了。如果你删除掉这个键,则在右键看的时候,选项是没有被勾选上的。

2023-12-18 19:18:50 415

原创 Python实现模块热加载

在我的需求下,这个功能非常重要,我将Python注入到了其他进程,并作为一个线程运行。在某些情况,你可能不希望关闭Python进程并重新打开,或者你无法重新启动Python,这时候就需要实现实时修改代码实时生效,而不用重新启动Python。来重新导入模块,可以但不建议,因为下划线开头的模块或者函数都是不建议外部使用的,这些接口可能在版本更新后变动比较频繁。热加载无法影响已经实例化的对象,比如你修改了模块里面的类代码,但是已经在。,这个a.py文件是无法热加载的,它并没有作为模块导入,在。

2023-12-18 19:15:52 784

原创 写一个frpc的windows服务管理器

在之前的一篇文章(远程连接被爆破的最佳解决办法)中,提到如何避免远程桌面被爆破。通过安全狗来设置主机名作为白名单条件softether组件局域网(和zerotier类似)通过RouterOS设置某些情况下的请求将ip加入到白名单,比如弄个带验证的接口,不在白名单的拒绝远程这些方法都是可以的,任意选择一个即可。使用frp开启一个http代理下载这个软件,并使用代理连接远程无需把端口转发到公网,也无需设置防火墙使用时不要直接穿透3389端口,先添加http_proxy类型的代理,然后下载。

2023-12-06 13:53:47 961

原创 一加7Pro为PixelExperience系统编译kernelsu

之前写了一篇文章为一加七Pro(LineageOs17.1 4.14内核版本)编译KernelSu,最近想换个系统玩玩,因为我发现我自己编译的系统总是被某些APP风控了,比如淘宝有些活动就参与不了。正好可以试试PixelExperience,顺便为PixelExperience编译一个配套的kernelsu,没有root的安卓系统是没有灵魂的。

2023-11-24 15:25:44 1420

原创 【Python微信机器人】第四篇:实战发送文本和图片消息(使用篇)

后面可以不用打开控制台,将Python注入到微信后,让它执行自定义的脚本。再把代码发布到pypi上,之后可以用pip安装,代码里import使用,就省去了去github下载代码,而且更新代码也方便。可以先关注等待更新。如果你对这个系列也感兴趣,也想参与后续的开发,可以加我好友一起研究。如果你使用的微信版本是64位的(一般都是), 则你需要64位的Python环境;如果你使用的是32位的微信,就用32位的Python。不过后面如果我看到了适合在Python中hook 64位程序的方法,也会开始更新64位的。

2023-11-24 15:19:49 1310

原创 【Python微信机器人】第三篇:使用ctypes调用进程函数和读取内存结构体

不过,在这个系列文章里,它的作用稍微有些不同。因为Python已经被注入到其他进程,可以用ctypes随意操作其他进程的数据和调用其他进程里的函数,相对于用c写的dll注入后,只需要把c的接口改成Python的。现在开始调用cdecl_add和stdcall_add这两个函数,首先需要找到他们的地址偏移,上面的函数里都有一个字符串,这也是我为了方便定位刻意写的。这个地址的内容就是Python构建出的结构体,如果不清楚结构体在内存中长啥样,可以把c代码创建的结构体也打印出来,然后在x32dbg中查看。

2023-10-31 14:31:22 703

原创 怎么用Python写一个浏览器集群框架

url: strurl: 访问的链接timeout: 超时时间wait_util: 页面加载完成的标识,一般都是,只有截图的时候会选择,让网页加载全一点。wait: 页面加载完成后等待的时间,有时候还得等页面的某个元素加载完成js_name: 预留的参数,用于在页面访问前加载js,目前就只有一个js()用于去浏览器特征filters: 过滤的请求列表, 支持正则。比如有些css请求你不想让他加载images: 是否加载图片: 禁止加载的资源类型,默认是图片和视频。所有的类型见:cache。

2023-10-27 13:57:42 113

原创 【Python微信机器人】第二篇:将python注入到其他进程

完整代码这里就不放了,想了解的可以看后面的github。,不过测试下来局限性很大,首先是调用远程函数的API是CreateRemoteThread,它只支持调用的函数传递一个参数,虽然可以是结构体,但是Python构造结构体也不方便,然后是代码比较繁琐,所以还是自己研究了。这里有个特别无语的坑,freopen函数无法在Debug模式下生效,也就是说如果你dll编译成Debug的话,能打开终端,但是看不到Python输出和交互式终端,为此我还谷歌了搜了一天,以为是freopen没效果。

2023-10-23 16:55:52 427

原创 【Python微信机器人】第一篇:在windows11上编译python

我打算写一个系列,内容是将python注入到其他进程实现inline hook和主动调用。本篇文章是这个系列的第一篇,后面用到的案例是注入python到PC微信实现基本的收发消息。文章着重于python方面的内容,所以对于微信找收发消息的call不会去讲过程,有兴趣的可以直接百度搜PC微信逆向。我想要的inline hook效果是,就是只需要给定hook的内存地址address和回调函数callback就能实现hook,回调函数的参数是所有的寄存器组成的结构体。

2023-10-17 15:29:10 475

原创 使用frida来spawn Fork 的子进程

这里不清楚为啥子进程没有在入口断点断住,不过影响不大,因为x64dbg会记忆断点位置,我只需要现在打上断点,那么在下次启动的时候就会自动断下,比如这里在SubProcess的x64dbg程序里用Ctrl+G跳转到printf函数并且打上断点。不过现在已经frida16了,这里面的代码也不能用了,得看github的最新代码:https://github.com/frida/frida-python/blob/main/examples/child_gating.py。已经启动了,不知道是哪里卡住了。

2023-10-11 15:26:23 561

原创 使用Python做一个微信机器人

该程序将微信的内部功能提取出来,然后在程序里加载Python,接着将这些功能导出成库函数,就可以在Python里使用这些函数程序启动的时候会执行py_code目录下的main.py,类似于你在命令行使用。现在会以插件的形式加载py脚本,将脚本放到plugins目录下,忽略掉以_开头的脚本,然后加载所有其他的py脚本插件脚本分为两类,以msg开头的py文件会在deal_msg.py【处理消息】里加载,其他脚本在main.py里加载。如果需要收到消息做什么事的话就以msg开头命名,不然就随便命名。

2023-09-23 17:06:02 17523 11

原创 为一加七Pro(LineageOs17.1 4.14内核版本)编译KernelSu

教程里是编译LineageOs系统的流程,不过跟aosp不一样的是,lineage编译系统时会同时编译内核。(脱离系统我单独编译内核的代码失败了,一堆C语言的报错,我解决不了,有的说gcc这些编译工具需要用lineage源码里的,我就是用的源码,也是一样)但是我测试了参数是开启了,内核编译通不过了,还是一堆C语言的错误,改了一个又来一个,最后放弃了。我使用的系统是:LineageOS17.1,对于之后的lineage版本同样适用,只是拉取的源代码不一样。跟编译系统一样,修改内核后,最好是在源码根目录执行。

2023-05-03 20:25:30 4390 5

原创 wsl2-ubuntu20编译Lineage17(Android10)

举个例子,本来虚拟机磁盘里的文件总共只占了150G,但是外面的磁盘文件.vhdx的大小已经到两百多G了。编译avd能使用的包,是一个zip包。实际我是创建了一个100G的磁盘,因为我可能需要对源码进行修改,有时候哪里改错了就重新复制一份。我们编译系统肯定是先编译x86_64位的,在电脑上跑成功了,在编译手机的。其中kanade是我的用户名,你需要换成你刚才装系统指定的,如果不在最后一行增加的话,可能会被后面的覆盖掉不生效。–vhd 后面跟的就是虚拟磁盘的路径,可以在wsl开机前挂载,也可以在开机后挂载。

2023-04-18 14:17:31 1561

原创 Python操作Windows共享文件夹

指定可以访问用户的权限,默认当前用户和管理员有可读可写的权限。访问时会要求输入用户名密码,也可以增加Everyone,这样就可以不指定用户密码,Everyone默认权限是可读,可以自行修改。比如共享E盘,我的电脑右键E盘,选择共享一栏->高级共享-勾选共享,设置权限即可。如果不需要Everyone的访问,可以不修改权限。第一个参数是共享文件夹名称,也就是上面的Software。获取文件或文件夹信息,比如创建时间,文件大小,修改时间等。第二个参数是要删除的文件,可包含通配符。目录,第二个参数就填。

2023-03-06 18:22:30 2937

原创 js逆向-某头条_signature参数

头条的加密参数_signature其实可以通过搜索来直接定位到关键位置,我们换种定位的方法。

2023-02-11 22:52:53 1364 3

原创 【js逆向】某盾滑块: fp和cb参数

根据[js逆向验证码篇之某盾](https://zhuanlan.zhihu.com/p/517293615)可以知道大概逻辑

2023-02-07 14:27:34 1027

原创 使用frida发送微信消息给好友

之前说过怎么用python来发送微信文本消息,原理大概就是构造内存机器码。其实frida也可以做类似操作,构造数据和机器码,然后调用。我就不重复操作了,这里说下另一种方法。想使用frida来发送消息这个想法很早之前就有了,只是搜了很久,一直没有frida在Windows端的操作,教程基本都是针对安卓的。最早是在吾爱看到一篇使用frida来hook接收消息的函数,我还在下面评论了下怎么用frida来发送消息,可惜没有回应,直到最近我看到一个教程(赵庆明老师的。

2022-11-21 14:16:46 2477 5

原创 pve独显直连

然后开机,等个十几分钟,他会自动安装显卡驱动,安装完成之后,就能在任务管理器和设备管理器看到显卡正常工作了,刚进系统没装驱动前,是看不到显卡或者显卡是不正常的。等界面出来按回车(任意键都行)就能进安装界面,后面就和安装系统一样的操作了,进入系统后,先查看IP和开启远程桌面。这里网上的教程都有坑,比如伪装CPU,修改/etc/pve/qemu-server/.conf。在设置域名IP的那一步,域名可以随便填,IP的话填个局域网的IP就可以,如果进去后无法上网。这个iso就是个硬盘驱动,

2022-11-19 19:59:01 4140

验证码数据集.zip

kaggle的数据集:https://www.kaggle.com/fournierp/captcha-version-2-images/kernels。可以自行去网站下载

2020-07-04

空空如也

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

TA关注的人

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