当前位置: 首页 > news >正文

邢台网站优化/百度网站优化培训

邢台网站优化,百度网站优化培训,做茶网站,外贸网站设计郑州文章目录导读安装实战一、枚举进程模块二、frida-trace直接hook函数recv*三、hook Qt应用程序打印日志总结参考资料导读 frida是Greasemonkey公司(该公司的网红产品网络神器油猴子,可以通过“油猴脚本”,自由定制网页,实现你想要的…

文章目录

    • 导读
    • 安装
    • 实战
      • 一、枚举进程模块
      • 二、frida-trace直接hook函数recv*
      • 三、hook Qt应用程序打印日志
    • 总结
    • 参考资料

导读

frida是Greasemonkey公司(该公司的网红产品网络神器油猴子,可以通过“油猴脚本”,自由定制网页,实现你想要的各种功能)开发的一款跨平台逆向全家桶动态代码检测工具。
它允许您将JavaScript或您自己的库的片段注入Windows,macOS,GNU / Linux,iOS,Android和QNX上的原生应用程序。 Frida还为您提供了一些基于Frida API构建的简单工具。 这些可以根据您的需要进行调整,或被作为使用API的示例。

安装

  • 安装最新版本的Python3.x,本教程使用的是Python3.7.1的64位版本(再之前的版本的确会有问题)。
  • 执行指令pip install frida-tools安装即可。

frida安装后Scripts目录内容如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YGBvwOYq-1646190673971)(upload/attach/202001/93_QPEB3Q9GYGG8BXC.png)]

实战

一、枚举进程模块

  • 打开notepad.exe。(注意:32位和64位都可以的,frida考虑的还挺全的)
  • 下面脚本保存为enumerate_modules.py,并执行命令python enumerate_modules.py
    import fridadef on_message(message, data):print("[on_message] message:", message, "data:", data)session = frida.attach("notepad.exe")script = session.create_script("""'use strict';rpc.exports.enumerateModules = function () {return Process.enumerateModulesSync();};""")script.on("message", on_message)script.load()print([m["name"] for m in script.exports.enumerate_modules()])
  • 运行结果如下所示:
    ['NOTEPAD.EXE', 'ntdll.dll', 'kernel32.dll', ......]

二、frida-trace直接hook函数recv*

frida-trace是一个动态跟踪函数调用的工具。官网使用twitter程序作为目标程序,国内无法使用,所以我们这里使用python作为目标进程(python程序调用urllib来模拟发包),具体操作如下:

  • 打开python.exe,查看进程id为16196。
  • 执行命令frida-trace -i “recv*” 16196
  • 在python.exe中一次输入import urllibf = urllib.urlopen(‘https://baidu.com’)
  • 执行结果如下图所示:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZPIQXLiN-1646190673972)(upload/attach/202001/93_B4S9BG36E2QBWZN.png)]

我们可以看到frida-trace在目录/__handlers__/WS2_32.dll下创建了recv.js和recvfrom.js文件,frida-trace也实现了hook函数recv的功能。

三、hook Qt应用程序打印日志

ps:Qt程序如果不熟悉的,可以不考虑Qt打印日志函数的调用关系。

我们编写个Qt程序,其中点击按钮触发循环打印数字的逻辑。如下面的代码,其使用的是qDebug宏,宏展开是QMessageLogger的一个类,再查看QMessageLogger可以发现内部最终调用了QTextStream类的各种重载操作符<<。

    #define qDebug QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC).debugvoid MainWindow::on_pushButton_clicked(){qDebug() << 9999;for(int i = 0; i < 10; ++i){qDebug() << i;}}

查看Qt5Core.dll导出函数,查找QTextStream系列函数,通过demumble解析gcc编译的C++函数,我们发现_ZN11QTextStreamlsEi就是我们要找的函数QTextStream::operator<<(int)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tm0p4dWz-1646190673972)(upload/attach/202001/93_RTK9FE7S9MTFF3D.png)]

启动测试程序Demo.exe。执行命令****frida-trace -i “_ZN11QTextStreamlsEi” Demo.exe**。点击Button按钮,触发函数调用,最终打印出如下内容:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LcFj1GX9-1646190673973)(upload/attach/202001/93_EDYWV27EE2P9EBQ.png)]

总结

  • 方便快捷:frida纯脚本实现hook等操作,免去了编译的问题。
  • 自动分析:frida自动分析可执行文件内容,分析关键api很方便。
  • 支持通配符:frida可以一次执行多个函数hook。
  • 工具丰富:frida全家桶拥有多个工具,如frida-trace等,让分析工作更方便了。

参考资料

  • 官网安装教程
  • 官网快速入门教程
  • 官网frida-trace介绍
  • qq群:夜猫逐梦技术交流裙/953949723
    逐梦中原技术交流QQ群

**ps:**文章中内容仅用于技术交流,请勿用于违规违法行为。

http://www.jmfq.cn/news/5250565.html

相关文章:

  • 国际新闻最新消息今天中国/windows10优化大师
  • 电商型网站是否是趋势/哪有培训seo
  • wordpress添加后台菜单/天津网络优化推广公司
  • 淘客网站怎么做代理/一键生成个人网站
  • c2c有哪些网站/国外seo比较好的博客网站
  • 辽宁响应式网站建设哪家好/品牌推广软文案例
  • 开一个做网站的公司赚钱吗/网址域名注册信息查询
  • 购物网页设计模板html/seo查询官方网站
  • 如何设计个人网站/站内seo是什么意思
  • 南昌做网站seo/上海网络seo公司
  • 免费公益虚拟主机/网络优化是做什么的
  • flash做网站的流程/上海优化公司
  • 网站建设与规划实验心得体会/网络搜索引擎有哪些
  • 做淘宝的导购网站/东莞企业网站排名
  • 利用excel做填报网站/有没有可以代理推广的平台
  • 广告网站模板下载 迅雷下载不了/推广之家官网
  • 编程 毕业设计代做网站/30个免费货源网站
  • 东营 网站建设/石家庄网站建设公司
  • 广东省建设厅证书查询官网/seo和sem的概念
  • 网站模板如何修改/杭州上城区抖音seo有多好
  • 义乌公司网站制作/网络营销到底是个啥
  • 晋城建设局官方网站/免费建立自己的网站
  • 网站降权查询/文娱热搜榜
  • 东莞企业网站建设开发/西安seo推广优化
  • 产品设计用什么软件好/seo网站关键词排名快速
  • 陕西 网站建设 陕ICP/百度seo优化教程免费
  • 网站开发毕业设计报告/seo公司软件
  • 上海网站设计/百度推广是做什么的
  • 网站建设 博采网络/如何提高网站seo排名
  • 淘宝店铺装修做代码的网站/合肥seo招聘