胡焦24

You got a dream, you gotta to protect it!

站内搜索

程序加壳脱壳原理和实现
发布日期:2025-04-11 默认分类
理论 一个可运行的执行文件,至少会有一个代码段,程序的入口点指向代码段,程序运行的时候,从入口点开始执行代码段指令 为了将一个正常的程序进行加壳保护,至少要三部分逻辑配合 1、待加壳保护的程序 2、加壳逻辑 3、脱壳逻辑 为便于理解,以下仅描述主要的逻辑,以 windows 为例,运行加壳程序,将待加壳程序的二进制内容读入到内存块 将该内存块解析成 PE 结构,并对该 PE 结构的代码段执行加密操作,如异或一个 KEY 或使用定制的加密算法 将该 PE 结构进行新增代码段,新增节的内容填充为脱壳的代码逻辑,用于在程序运行的时候对原逻辑进行解密脱壳 修改内存块内容,将入口点 base 地址指向脱壳代码段,还需要修正其他的额外信息,如 PE 文件大小等其他一些属性 将该内存区块保存成执行文件,在发布的时候将该执行文 …
缩略图
ubuntu不生成core文件的处理
发布日期:2025-04-11 默认分类
1、设置unlimited ulimit -a 查看是否设置,没有设置的使用下面命令设置 ulimit -c unlimited 这个设置只在当前会话有效,添加到 ~/.bashrc 中,重开终端生效 2、sysctl配置 修改 /etc/sysctl.conf 文件 ,增加以下两个配置, core_uses_pid 表示 core 文件名是否使用 pid kernel.core_pattern = core kernel.core_uses_pid = 1 修改后执行 sysctl -p 生效 3、apport配置 ubuntu 默认启用了 apport,它会拦截崩溃信息并生成错误报告,而不是直接生成 core 文件 禁止生成错误报告,修改 vim /etc/default/apport enabled=0
缩略图
基于php扩展加密的一个简单逆向
发布日期:2025-04-09 默认分类
前言 这里是对 php 扩展加密的一个入门学习,参考了原作者的开源实现 https://github.com/lihancong/tonyenc 该项目仅仅几百行代码,实现了 php 扩展加密的基本逻辑,通过该模块可以快速熟悉 php 基于扩展加密的整个处理流程 组件构建 本地的 php 环境是 7.4, 本地调试环境构建可以参考 这里,拉取 tonyenc 项目到本地进行编译的时候提示错误 In file included from /root/develop/tonyenc/tonyenc.c:30: /root/develop/tonyenc/core.h: In function ‘cgi_compile_file’: /root/develop/tonyenc/core.h:86:30: error: …
缩略图
基于php-parser的php代码反混淆
发布日期:2025-04-07 默认分类
前言 php-parser 是一个使用 PHP 编写的开源项目,它的作用是把 PHP 代码解析成 AST(抽象语法树) 可以基于 php-parser 做静态分析、代码转换、代码格式化、Linter、甚至写一个 PHP 解释器都行 这个库也是学习编译原理、分析 PHP 代码结构的神器,作者是 PHP 社区大佬 nikic,也是 PHP 编译器的核心开发者 PHP-Parser 项目的开源地址 https://github.com/nikic/PHP-Parser php-parser包安装 php-parser 是使用 composer 进行管理的,composer 是 PHP 的依赖管理工具 就像 Node.js 下的 npm,Python 下的 pip,composer的下载地址在这里 在 windows …
缩略图
一个简单的php加密的理解
发布日期:2025-04-07 默认分类
前言 原帖子 https://www.52pojie.cn/thread-1991616-1-1.html 一段简单的 php 代码加密,大佬使用了一段 python 代码给解密出来了,但是我没太理解整个逻辑 于是在本地跑了一遍,尝试理解整个解密流程,这里记录下整个学习过程 可读化显示 加密代码使用了非可读字符的变量名,需要重命名处理为可读的 使用 php-parser 将代码的变量进行重命名及格式化显示,安装模块 composer require nikic/php-parser 遍历 AST 树 enterNode 的时候进行变量重命名,变量命名格式为 var? 数字递增 <?php require 'vendor/autoload.php'; use PhpParser\Error; …
缩略图
Typora亲测可用免激活版
发布日期:2025-03-31 默认分类
版本安装 从官方 https://typoraio.cn/ 下载 Typora 1.8.10 历史版本,也可以 从 csdn 这里下载,较新的版本已经修复了该问题 Typora免激活 修改js检查 在 typora 的安装目录 Typora\resources\page-dist\static\js 下,找到 LicenseIndex.180dd4c7.c77b6991.chunk.js 类似的 js 文件 打开后将 e.hasActivated="true"==e.hasActivated 替换为 e.hasActivated="true"=="true" 关闭弹窗 打开 Typora\resources\page-dist\license.html …
缩略图
picgo的vscode插件支持easyimage图床
发布日期:2025-03-31 默认分类
前言 picgo 官方提供的 vscode 插件,默认不支持自定义图床 easyimage,这里进行适配以便支持 代码构建 下载仓库代码 https://github.com/PicGo/vs-picgo.git,在 vscode 市场中发布的最新版本为 2.1.6,将本地代码分支切换到 2.1.6 执行 yarn install 以及 yarn run build,在构建的时候提示错误如下 这是因为自 node 17 开始,node 升级使用了 OpenSSL 3.0,对允许的算法和密钥大小的限制更加严格 可以通过参数 openssl-legacy-provider 临时规避,powershell …
缩略图
nodejs的版本管理工具NVM
发布日期:2025-03-30 默认分类
NVM 是一个 node 的版本管理工具, windows 版本的 下载地址,下载完毕后双击安装 NVM 的主要命令 nvm list 查看当前已经安装的 node 版本,以及正在使用的 node 版本(*显示),这个和 nvm list installed 命令是一致的 nvm list available 查看有哪些可用的 node 版本,需要安装的时候优先选择 LTS 版本 版本安装,根据前面列出来的可安装版本,指定安装某一个版本的 node 应用 nvm install 20.16.0 版本切换,使用 use 指令切换本地的已安装版本 nvm use 20.16.0 切换后,查看 node 的版本号显示 20.16.0 NVM 的主要原理 1、NVM 将不同版本的 node 安装到 nvm …
缩略图
wordpress的cookie理解
发布日期:2025-03-29 默认分类
登录 wordpress 登录 wordpress 的时候 Cookie 显示为 PHPSESSID=ubilj5ad65810hqv88emitmvkc; isLogin=true; night=0; wordpress_logged_in_27e3261db108cd80480af5f900ac865e=1735846526%7C1744418831%7CrTugvME3l2ZITBoxf6JAsAn4woFdbIZvggvvKDRHQhc%7C3fa99b7f0728dffc47f75b2ff9fad46c63c2829a512e6a09c3bf3bde7cf48946; Hm_lvt_b9d1067bce8fcdeb644686f85bafea51=1743219234; …
缩略图
ubuntu部署ssl免费证书
发布日期:2025-03-15 默认分类
证书安装 在进行证书安装前,需要将域名的 DNS 指定到你的 ubuntu 服务器节点上,ubuntu 安装 Let’s Encrypt 证书步骤如下 安装 certbot 工具 apt update apt install certbot python3-certbot-nginx 运行 certbot 命令进行证书安装 对于 nginx certbot --nginx -d mydomain.com -d www.mydomain.com 对于 apache certbot --apache -d mydomain.com -d www.mydomain.com 如果不填写邮箱的话,可以指定 certbot 参数 –register-unsafely-without-email,生成证书的输出如 …
缩略图
wireguard搭配udp2raw部署内网
发布日期:2025-03-11 默认分类
前言 上一篇写了使用 wireguard 可以非常轻松的进行组网部署,但是如果服务器厂商屏蔽了 udp 端口,那就没法了 针对 udp 被服务器厂商屏蔽的情况,需要使用一款 udp2raw 或 socat 类似的工具,来将 udp 打包成 tcp 进行通信 这里以 udp2raw 进行部署,版本下载地址 https://github.com/wangyu-/udp2raw/releases 部署的时候本地 win10 以及 ubuntu 都需要部署 udp2raw,整体业务流程如下 服务端部署 下载 udp2raw 版本,解压后就可以运行,使用以下命令启动服务 udp2raw -s -l 0.0.0.0:8000 -r 127.0.0.1:51820 --raw-mode faketcp -a -s 表示服务器 …
缩略图
通过wireguard进行组网
发布日期:2025-03-10 默认分类
前言 服务器 ubuntu 节点在公网,希望和本地 win10 节点组成局域网,需要部署 OpenVPN 或 WireGuard 同类的服务进行组网 作为开源产品,OpenVPN 历史悠久,代码量庞大,功能也更为复杂,比较适合企业进行部署 WireGuard 相对更为轻量,比较适合个人开发者进行部署,以及在服务器资源有限的环境进行部署 安装 从官方地址 https://www.wireguard.com/install/ 下载对应平台的安装版本 ubuntu 通过 apt install wireguard 命令进行安装 完整手册 https://www.wireguard.com/quickstart ,中文版本手册 https://zh-wireguard.com/quickstart/ …
缩略图
syncthing多节点文件同步
发布日期:2025-03-08 默认分类
服务安装 在官方地址 https://syncthing.net/downloads/ 下载对应平台的版本进行安装 文件同步至少要部署两个节点,然后在这两台设备上启动 syncthing 服务 在 ubuntu 下,生成的配置是在用户的 .local 目录下 /root/.local/state/syncthing 在 win10 下,生成的配置在 C:\Users\Administrator\AppData\Local\Syncthing 目录下 如果需要修改 Syncthing 的配置,但是 web 方式不方便的情况下,可以直接修改配置文件的项 如 GUI 对应 config.xml 中的 gui 区块, “选项” 对应配置文件的 options 区块 比如,将内网穿透后暴露到公网,可以添加以下类似的配 …
缩略图
ubuntu节点卡死问题分析
发布日期:2025-03-02 默认分类
最近几天,ubuntu 节点每天都出现 cpu 过载的情况,从监控上看是 apt-check 导致的 ubuntu 有两个 timer: apt-daily.timer 和 apt-daily-upgrade.timer,会不定时自动检查更新和下载 终端 ssh 登录 ubuntu 节点,手动运行 apt update,终端直接卡死了 搜索了下,有说删掉 /etc/apt/source.list.d 目录和 apt clean 后就正常了,但是操作 apt update 还是一样卡死 谷歌提示说,APT在执行时会产生锁,如果上次的update,或者软件安装等操作异常退出,可能会导致锁无法释放 手工删除以下的锁和定时任务 rm -rf /var/lib/apt/lists/lock rm -rf …
缩略图
vscode+phpstudy+xdebug调试php代码
发布日期:2025-02-28 默认分类
vscode中安装xdebug vscode 的插件中心中搜索 php debug 插件进行安装 小皮中开启 xdebug 调试 小皮中选中要调试的 php 版本,这里配置 7.4.3 版本的 在弹出的设置窗口中,开启 xdebug 调试组件,端口如果需要的话可以修改 设置 php.ini 配置项 选中后,点击后使用记事本打开 php.ini 文件进行编辑 在 php.ini 文件的最后,可以看到刚才设置的 xdebug 配置区块,并在后面加上下面两行 然后在小皮面板中重启 apache 服务 xdebug.remote_enable = 1 xdebug.remote_autostart = 1 修改 vscode 配置 打开 vscode 中的配置中心,搜索 php ,配置 PHP 和 PHP Debug …
缩略图