七哥向前冲

You got a dream, you gotta to protect it!

站内搜索

选择搜索引擎,输入关键词开始搜索

Google
Bing
Yahoo
百度
💡 小贴士:选择不同的搜索引擎可能会得到不同的搜索结果
多版本IDA分别使用不同的python版本
发布日期:2025-06-12 默认分类
机器上安装了多个版本的 IDA 工具,不同的 IDA 使用不同的版本的 python 解释器 如果只安装单个 IDA ,只需要使用 idapyswitch.exe 进行指定就可以了 idapyswitch 会将配置写入到注册表 HKEY_CURRENT_USER\SOFTWARE\Hex-Rays\IDA 目录的 Python3TargetDLL 键下 这个配置值是每个版本 IDA 都要读取的,也就是说不同版本的 IDA 都使用这个值进行来确定 python 解释器 网上搜了一下,似乎没有很好的解决方案 于是在每个 IDA 的安装目录下增加一个 start.bat 脚本,通过脚本来启动 IDA,脚本中的 python 以实际版本为准 启动前更新一下注册表值为当前路径下的 python 解释器 @echo off …
缩略图
基于IDA的bindiff使用
发布日期:2025-06-07 默认分类
前言 需要逆向的二进制使用静态链接的方式打包了 cryptopp 库,需要还原 cryptopp 的符号,但是不知道具体版本号 这里使用 bindiff 从已发布的 cryptopp 库中恢复函数符号 版本安装 逆向这里使用的 IDA 为 7.5 的版本,解压后使用 idapyswitch 指定 IDA 使用自身目录下的 python 版本 cmd 到 IDA 的安装目录,使用命令切换 idapyswitch --force-path python38/python3.dll 启动 IDA 后,在左下角这里可以看到 python ,说明 python 环境已经配置好了 bindiff 为 google 开发的用于对比二进制的,可以使用图形界面,也可以在 IDA 中使用,github …
缩略图
非对称加密rsa算法的理解
发布日期:2025-06-07 默认分类
RSA原理 RSA 利用了大质数分解困难的数学特性 1、随机选两个大的质数 p 和 q,要求 1024 bit 或 2048 bit 的长度,这是非常非常大的数值 2、计算 n = p × q,这个 n 是公钥的一部 计算欧拉函数 φ(n) = (p - 1) × (q - 1),这里的 φ(n) 是私密的 3、根据 p 和 q 算出一个私钥 d 和一个公钥 e,让它们满足一些数学关系,使得: 用 e 加密的数据,可以用 d 解密,反过来也可以用 d 加密再用 e 解密(签名验证) 这里的 e 需要满足和 φ(n) 是互质的,实际上 RSA 常用的 e = 65537,这个质数保证了安全和效率 e 和 d 的数学关系满足 e * d 除以 φ(n) 余数为 1 ,表达式为 e * d = 1 + k * …
缩略图
基于vm加密的php逆向分析
发布日期:2025-05-08 默认分类
前言 对于 php 主流的加密方式有两种: 1、基于扩展的 2、本地加密,不涉及扩展 一些在 php 端通过 zend_compile_file 等函数就可以直接 dump 出原代码的,称之为加密实在是抬举了 之前有写过一篇直接 dump 出源码的分析 https://blog.qc7.org/archives/php-decode 基于本人有限的了解,私以为 z5 和 swoole 等类似的才能称得上加密,这里的分析仅限于技术交流 代码可读 之前已经有大佬写过 z5 的逆向分析 https://www.52pojie.cn/thread-995682-1-1.html 最近拿到一份样本,从技术的角度简单了解基于 vm 加密的实现思路,由于逆向难度太大,这里的只是半成品 代码分为两大部分,前面两个函数为 vm …
缩略图
在bitwarden插件保存登录的问题
发布日期:2025-04-30 默认分类
bitwarden 是一款开源的密码管理工具,可以使用官方提供的付费密码托管服务,也可以自行部署进行使用,并且配备了 chrome 插件 这里在本地使用容器的方式进行部署,部署也不复杂,基于自签证书的方式进行访问,web 访问的时候会提示“连接不安全” 通常情况下,点击高级下的继续就可以忽视这个警告,不影响正常使用 在 chrome 浏览器的插件中,也是可以正常使用的,但是当需要新增登录项的时候就出现问题了,保存的时候提示错误如下 查看 chrome 插件的网络请求,保存的时候提示错误如下(net::ERR_CERT_AUTHRITY_INVALID),这是因为自签证书没被信任的原因导致的 web 页面是可以正常新增的,不过使用上会比较麻烦,远没有插件使用来的方便, …
缩略图
程序加壳脱壳原理和实现
发布日期: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; …
缩略图