关于Google云建站的一些坑

由于之前的香港服务器到期了,但是有一些没什么流量但是扔掉又可惜的域名空着也难受。就找了免费的Google云服务器建一个Web服务器。谷歌提供了很多免费使用的服务,其中包括一台低配版本的云服务器。虽然云服务器目前是终身免费的,但有很多限制条件

  • 选择的区域必须是regon、Iowa、或者South Carolina
  • 必须选择f1-micro实例(1G600M)
  • 30GB的标准硬盘
  • 1GB的网络流量,并且不能是中国或者土澳的,否则要按需收费

所以条件非常苛刻。当然由于免费,这些条件也就忍了。本来计划是半天内建好并把所有的域名都重新配置好。但是没有想到由于Google云服务器有那么多坑,导致花了两天时间完成任务。因为这个知识点非常冷门,所以就再花点时间把这些坑记下来以备后用。
Read more

使用Frida实现内存注入主动调用函数

上篇文章中,我演示如何使用OllyDbg逆向一个简单的C语言程序,找到HOOK的内存地址和参数汇编指令。最后使用Frida框架编写了一个HOO脚本实现内存注入(远程线程插入)。当C语言函数被调用时,HOOK脚本会监听对应的函数,读取ESP寄存器中的函数参数,并打印在屏幕上。

本文将更深一步的研究如何使用Frida通过内存注入的方式,主动调用应用程序在内存中的函数。大致原理就是在内存中申请一个新的区域,在这个新内存片段中写入自己定义的汇编指令。最后注入到已经运行的应用中,从而实现在内存中调用应用内部方法。本文根据《使用OllyDbg逆向查找HOOK地址和寄存器使用》中逆向获取的内存地址和寄存器操作,使用Frida模拟调用应用中的方法。因此在继续本文内容之前,建议先阅读一下这篇文章,否则阅读源代码过程中可能会有困难。
Read more

使用Frida编写HOOK实现内存注入

上文中我们使用C语言编写了一个简单的程序,并且使用OllyDbg逆向查看每一个函数的入口地址。并且使用调用堆栈查看调用每一个函数前的汇编指令。通过观察在调用每一个函数前汇编语言是如何操作和准备输入参数的,我们就可以编写HOOK程序,截取函数调用过程中的数据。本文将以《使用OllyDbg逆向查找HOOK地址和寄存器使用》中的C语言作为样例,编写一个HOOK程序实现内存注入,截取函数h()的两个参数,并打印在屏幕上。
Read more

使用OllyDbg逆向查找HOOK地址和寄存器使用

之前写过一篇文章,主要是使用OllyDbg逆向微信寻找HOOK地址。由于微信复杂很多,这里我们就自己简单写了一个C语言程序,通过使用OllyDbg逆向这个C语言函数,从而一步一步地介绍如何使用OllyDbg分析和寻找HOOK地址。另外需要注意的是,在第一次接触逆向过程中网上很多案例中使用OD(OllyDbg),所以本文也是以OD作为样例的。目前原版OD不支持调试64代码。在stackoverflow上有网友推荐x64dbg,有兴趣的朋友可以试试。
Read more

安卓ADB命令行工具使用指南

最近准备清理手边的电子产品发现好几台老旧手机,包括iPhone4S和几台安卓低端机器。iPhone4S是之前的爱姬,放了好久以后电池也不行了。唯独有一台Android的低端机还能用。记得之前也用这台机器完了一把刷机并写了一篇文章《记一次安卓刷机的小结》。由于这台机器的配置非常低,系统也被裁剪的几乎只能打电话发短信。即没有安卓商店,也没有浏览器。所以如何安装app就变成了首要任务。最后发现也只能够把apk下载下来通过SD卡安装或者使用ADB(Android Debug Bridge)命令行工具实现。通过SD卡安装没什么困难,这里就说一说安卓命令行工具ADB的一些使用技巧。
Read more

Redis服务器磁盘满导致连接失败

在默认情况下,Redis是开启磁盘备份功能的。并且当磁盘备份发生故障以后会暂停写入操作。因此,当Redis配合MySQL等关系型数据库作为高速缓存服务器使用是,我们可以完全禁用磁盘备份功能。如果没有其他持久层的支持,那么磁盘备份功能就必不可少,除非里面的数据没有保存的必要(可能性不大)。本案例中就出现由于磁盘空间不足,导致Redis服务磁盘备份失败,自动暂停了写入操作,所有连接Redis服务器进行写操作失败。
Read more

基于Twisted的Scrapy异步调度器

Scrapy是非常有名的一款爬虫开发框架。如果是小型项目或者简单爬取一些数据,可以基于Scrapy迅速搭建一个从爬取到数据解析清晰的全流程方案。Scrapy的核心是基于Twisted的事件驱动。因此整个数据爬取、入栈、出栈、提取和清洗都是基于异步事件的。在研究Scrapy的调度机制之前,首先需要了解Twisted,特别是Twisted的几个非常重要的概念。否则,Scrapy的调度器代码看起来真的是非常吃力,很难理解。
Read more

数据可视化提高PDF表格识别准确度

上篇文章《上市公司公告和基金公告PDF数据解析》中提到使用pdfplumber解析基金公告中的表格。然而由于各种各样的原因,在开发的过程中需要微调代码,从而提高PDF中表格的识别精确度。因此如果能够通过可视化的方式,即所见即所得的方式,进行表格提取单步调试,可以事半功倍地提升工作效率。
Read more

替换Homebrew镜像源

最近在电脑上运行brew操作的速度实在是太慢了,主要是brew需要连接到github上同步信息。因此考虑配置Homebrew的源地址,可能会好很多。之前在《CentOS镜像配置指南》文章中顺便也找到Homebrew镜像,那么就暂时先用一下吧。本文的内容主要是从阿里云社区Homebrew镜像搬砖而来,细节可以看原文(如果还存在的话)。
Read more