google gadget学习

Android应用动态分析利器:frida-gadget注入原理与实战指南 在移动安全研究和应用逆向工程领域,动态分析技术是理解应用运行时行为的关键手段。其核心原理在于通过注入技术,将分析模块嵌入目标进程空间,实现对函数调用、内存读写和数据流的实时监控与干预。这项技术的核心价值在于能够绕过传统静态分析的局限,直接观察应用在真实环境中的执行逻辑,为漏洞挖掘、协议分析和功能调试提供强大支持。在Android平台,动态分析广泛应用于安全评估、恶意软件分析、应用功能补丁开发等场景。本文聚焦于frida-gadget这一嵌入式动态分析组件,深入解析其作为共享库的两种工作模式——监听模式与嵌入 阅读详情

 

一、什么是google-gadget

1.         google-gadget:google的桌面小应用

2.         一般窗口不大,看起来很炫(窗口不同区域可设置不同透明度),可以随意移动,叠放,可以显示在普通应用之上(置顶)

3.         想想看,把实时汇率gadget拖到桌面上置顶,你可以一只眼写着文档,一只眼扫着你的股票外汇和期货;打开multinote记事本,列上一天的日程表,随时编辑,而不用在应用之间切来切去……

二、原理及实现

1.         组成
google-gadget由两部分组成:桌面应用程序+gadget引擎

2.         桌面应用程序

1)        gg文件
桌面应用程序一般是以.gg为扩展名的文件
gg文件为zip压缩文件,只是扩展名为gg 
gg文件可以自己编写,也可以从网上下载
它可以是本地应用,也可以是网络应用,一般网络应用使用https协议连接
实现逻辑的语言用java script

2)        一个桌面应用的组成

a)         main.xml               程序主框架实现的xml文件,含界面和函数调用

b)        main.js                  程序主逻辑实现的java script脚本,主要函数的实现

c)        gadget.gmanifest    属性文件,双击它可运行程序

d)        en/strings.xml        语言文件,用于本地化

e)         background.png     背景图,支持透明背景

f)         icon_large.gif         大图标

g)        icon_small.gif        小图标

3)        运行gadget桌面应用程序

a)         在window平台上,双击gg文件启动应用(启动前需安装过google桌面

b)        在Linux平台上,双击gg文件启动应用(启动应用前,需先启动引擎)

c)        程序不需要编译,通过引擎运行在各个平台上

4)        使用场景
它可以作为一个独立的应用比如小工具,游戏之类,有其界面中操作;也可以作为漂亮的桌面图标,通过它开启其它应用

3.         gadget引擎

1)        gadget引擎解析java script和xml文件,并用本平台上的图形程序显示出来
如:在linux平台写桌面应用,一般用gtk/qt这些图形化工具,写代码编译后执行,而gadget应用是用java script编写逻辑,用xml描述界面后,打包成gg文件(不用编译),运行时gadget引擎把它翻译成了gtk或者qt程序,然后运行,它屏蔽了不同平台,不同程序设计语言不同的细节。即使你对某个平台不熟悉,也可以轻松地写程序了。

2)        只要把gadget引擎移植到手机之类的嵌入式系统中,系统就可以运行各种gadget应用,和浏览器比起来,灵活,流量还小,系统资源占用小

三、安装google-gadget

1.         Windows
http://desktop.google.com/
点击安装google桌面

2.         Linux
按网页 http://code.google.com/p/google-gadgets-for-linux/wiki/HowToBuild 安装
以下是我在安装时遇到的问题,和简要步骤

1)        操作系统
我使用ubuntu 8.04 DVD版,可正常安装
也试过suse, 但是因为编译器版本的差异,总是编不过

2)        下载源码
http://google-gadgets-for-linux.googlecode.com/files/google-gadgets-for-linux-0.10.5.tar.bz2

3)        安装依赖包
$ apt-get install libmozjs-dev libgstreamer-plugins-base0.10-dev libcurl3-openssl-dev libdbus-1-dev libxul-dev
安装时若提示某个包无法安装,可能是系统默认的软件源不包含该软件,需要重新指定软件源
$ vi /etc/apt/sources.list        写入新的软件源
$ apt-get update                   使刚设置的软件源生效
以下网站中列出了很多可用的软件源,我试过台湾的那个速度很快
http://hi.baidu.com/leonkuo1984/blog/item/6624fe3db1b4d1e83c6d976d.html

4)        编译
$./configure
$ make; make install

5)        运行gadget引擎
$ ggl-gtk
此时在工具条上能看到四个小方块的图标,点开它的菜单,可以添加gadget和打开侧栏等

四、gadget引擎代码介绍(Linux中源码gtk部分为例)

1.         每个桌面应用开启两个独立gtk窗口(独立窗口),一个窗口是应用的内容,另一个用于显示菜单区域

2.         窗口不同区域显示不同透明度的效果效果通过cairo实现,gtk的基本控制只能设置窗口的异形和整体透明度

3.         代码google-gadgets-for-linux-0.10.5/ggadget/gtk/single_view_host.cc是桌面应用对应gtk窗口的源码,可以通过修改它来改变桌面风格及窗口逻辑

五、写gadget桌面应用程序

1.         创建一个新的gardge应用

1)        教程
http://code.google.com/intl/zh-CN/apis/desktop/docs/Tutorials/GadgetDesigner/index.html

2)        注意
如果有些版本的gadget designer无法自动生成gg包,以使用以下方法

a)         进入新建应用的目录,选中所有文件

b)        点右键,选添加到压缩文件

c)        设置生成压缩文件的位置为上层目录,并指定ZIP压缩

d)        把生成的压缩包扩展名改为.gg,即可正常运行

2.         修改一个已有的gardet应用

1)        教程
http://code.google.com/intl/zh-CN/apis/desktop/docs/Tutorials/ModifyHelloWorld/index.html

2)        用一个应用改出别一应用时,记住要在gadget.gmanifest文件中修改id号,因为同时不能运行两个ID号一样的应用
若没有ID号生成工具,可以google上查关键字”uuid generator”

 

安卓免Root自动化:Frida-Gadget.so注入与AutoJS联动实战 在安卓应用自动化与安全分析领域,动态插桩技术是实现应用行为监控与功能扩展的核心手段。其原理是通过向目标进程注入代码,实现对函数调用、内存访问等行为的拦截与修改,从而在不修改源码的情况下改变应用逻辑。这项技术的工程价值在于为自动化测试、安全评估、逆向分析等场景提供了非侵入式的解决方案。其中,Frida作为主流动态插桩框架,通过其Gadget组件实现了免Root环境下的应用注入,这为自动化脚本执行提供了底层支持。结合AutoJS等UI自动化工具,可以构建从底层Hook到界面操作的完整自动化链路,特别适用于需要绕 阅读详情

相关推荐

非Root安卓设备部署Frida Gadget进行动态调试的完整指南

动态插桩技术允许开发者在应用运行时注入代码,实现函数调用监控、逻辑修改与数据查看,是移动安全分析与应用调试的核心手段。其原理是通过注入代理或运行时环境,拦截并修改目标进程的执行流。这项技术的核心价值在于提供了对应用行为的深度可见性与可控性,广泛应用于安全评估、漏洞挖掘、协议分析及行为研究等场景。在安卓平台,Frida作为动态插桩的瑞士军刀,通常需要Root权限才能发挥全部功能。然而,面对设备难以Root或Root带来风险的现实,通过重打包APK将Frida Gadget嵌入应用内部,成为在非Root环境下实

weixin_30591551的博客 430

你的下一个Web应用程序是Google Gadget吗?

你的下一个Web应用程序是Google Gadget吗? by Aiessandro Lacava 翻 译:郭世龙       学习怎样驾驭Google Gadget API使你的Web应用程序更可行。作为例子,我们来看看怎样打造一个实用的gadget,它能够取回并显示DevX的feeds。        自从AJAX首次出现以来,对JavaScriot感兴趣的开发者数量快速增加—

只谈技术 3849

Frida Hook安卓逆向环境搭建:多版本兼容与实战指南

动态代码注入技术是现代软件安全分析的核心手段,它允许在不修改源码的情况下,实时监控和修改程序的运行时行为。其原理是通过向目标进程注入代理代码,拦截函数调用、修改参数或返回值,从而实现对程序逻辑的动态分析。这项技术在安全研究、漏洞挖掘、协议分析和应用逆向等领域具有重要价值,尤其在移动应用安全评估中应用广泛。在实际的安卓逆向工程场景中,Frida作为一款强大的动态插桩框架,因其脚本化、跨平台和无侵入的特性,成为解决兼容性问题的关键工具。本文聚焦于Frida Hook环境的搭建,针对不同Android版本和CPU

weixin_33970449的博客 425

google-gadget入门

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33713350的博客 332

一个简单的Gadget

一个简单的Gadget

Google gadget 代码

这是一个 阅读RSS Feed 阅读器的Google gadget源码<br>http://blog.youkuaiyun.com/xylary/archive/2007/08/19/1750669.aspx

Windows下单分区烧录img必备驱动

Android

glunoy的专栏 4021

USB_download_gadget_mv110_20200420

USB_download_gadget_mv110_20200420

Java Gadget链

Gadget链是由无害代码片段组成的恶意调用链,在Java反序列化漏洞中被利用执行危险操作。其核心要素包括触发点、传递链和执行点。自动化挖掘技术通过静态分析发现Gadget代码片段,使用符号执行和约束求解构建有效攻击链。典型应用包括ROP攻击和二进制漏洞利用,代表性工具有ROPgadget等。防御策略包括输入白名单验证和运行时防护技术,如Java Agent检测危险类。复旦大学JDD框架通过分段组合和约束求解显著提升了链挖掘效率,发现多个新漏洞。

lengxia0的博客 825

Flutter模块打包AAR集成Android原生项目实践

跨平台开发框架Flutter通过将UI组件渲染为原生代码实现高性能表现,其核心优势在于一套代码可同时运行在iOS和Android平台。在工程实践中,将Flutter模块打包为AAR(Android Archive)进行集成,成为混合开发的主流方案。这种方案既保留了原生项目的稳定性,又能渐进式引入Flutter的高效开发特性。通过配置MethodChannel实现原生与Dart代码通信,开发者可以灵活控制Flutter引擎生命周期,优化内存占用和渲染性能。对于电商、社交等需要快速迭代的业务场景,该方案能显著提

weixin_34025051的博客 399

weblogic启动异常故障处理(boot认证失败)

root 用户生成的文件属主为 root,WebLogic进程将无权读取,直接导致认证失败。· ⚠️ 密码必须完全一致:第3步 AdminAccount 命令中设置的密码,与第5步所有 boot.properties 文件中 password= 字段的值,必须保证完全一致。如果您的域下配置了受管服务器实例(如 ms_server1、ms_server2 等),必须逐一更新各实例下的免密启动文件,确保实例重启时密码与AdminServer保持一致,否则实例启动会因认证失败而报错。此步骤至关重要,必须执行。

weixin_53389944的博客 222

Google Gadgets 小例子

在学习 Google Gadget, 敲了书上的一个小例子, 放在这里吧: <ModulePrefs title="Mini Stock" height="140" scrolling="true" description="Mini Storck, Gadget A, B, C" author="xxxx" author_email="xxxx@gmail.com"

梦凡的家 883

ERA5获取的风场数据转换为.dfs2文件

ERA5获取风场数据的具体步骤可以参考下面的文章下载好后应该是.nc格式的文件,想要读取或者转换成其他格式的文件可以安装下面步骤,本文介绍如何转换为.dfs2文件。

我的博客 1459

学习 Google Gadgets (一)

一、什么是Google Gadgets以及它的使用环境 Google Gadgets (Google 小工具),是一些比较实用的工具,这些工具运行在不同的浏览器里。Google网站对它的解释是: “Google 小工具是一种用 HTML 构建的小型应用程序,通过 JavaScript、Flash 或 Silverlight 可获得动态行为。由于小工具可在多个站点和平台上运行,因此不同的位置中有...

weixin_30773135的博客 736

基于Spring Boot在线远程考试系统的设计与实现

结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。目前的信息时代,对信息的管理趋于高效化,便捷化,这也是计算机大力普及所带来的便利,此程序软件在设备选用上,依靠的是比较大众的电脑设备,对电脑的配置没有过多要求,一般学校的计算机机房的电脑都可以满足程序开发需求,另外,开发出此款程序,让信息处理变得高效率,其所带来的高效益是远超程序开发的低成本的,因此程序开发的资金投入是可以忽略不计的。

ITbiyesheji的博客 1216

基于RYU+Mininet的SDN校园网络实战:从零搭建虚拟化实验环境

本文详细介绍了如何利用RYU控制器和Mininet搭建SDN校园网络实验环境,从Ubuntu虚拟机准备到网络拓扑设计,再到关键网络功能实现。通过实战案例展示SDN在校园网络中的应用优势,包括简化配置、提升效率等,为网络工程师和学生提供了一套完整的虚拟化实验方案。

weixin_30872499的博客 458

从源码构建Frida编译环境:解决Android定制与兼容性问题

动态插桩技术是移动安全分析和逆向工程的核心手段,它允许开发者在程序运行时注入代码、监控函数调用和修改内存数据。其原理是通过注入代理或修改二进制文件,在目标进程中建立通信通道,实现动态调试和Hook功能。这项技术的核心价值在于提供了对黑盒系统的深度可见性和可控性,无需源码即可进行行为分析和漏洞挖掘。在Android应用安全评估、恶意软件分析和游戏修改等场景中,动态插桩已成为不可或缺的工具。本文聚焦于Frida这一主流动态插桩框架,针对其官方预编译版本在特定Android架构、系统兼容性以及反检测机制中遇到的限

weixin_30263073的博客 514

【气候极端指数】MATLAB计算各种气候极端指数

简介各类气候极端指数,及其MATLAB计算代码

WW、forever的博客 4917

Java反序列化漏洞深度剖析:从CVE-2017-5645看利用链构造与防御

Java反序列化机制是一种将字节序列恢复为对象的核心技术,广泛应用于RPC、会话持久化等场景。其原理在于通过ObjectInputStream读取并重建对象图。然而,当应用程序反序列化不可信数据时,若类路径中存在特定危险类组合,攻击者便可构造恶意序列化数据触发任意代码执行,技术价值在于揭示了设计模式与反射机制被滥用的安全风险。典型应用场景包括存在反序列化接口的Web服务、消息中间件等。本文以Apache Commons Collections库的Transformer接口和InvokerTransforme

weixin_34152820的博客 483

【自适应滤波】自适应UKF,基于新息自适应调节Q和R,场景为雷达跟踪与滤波、MATLAB实现

本文提出了一种基于新息协方差匹配的自适应UKF(CM-AUKF)算法,用于解决噪声统计未知或时变场景下的目标跟踪问题。通过实时调整过程噪声协方差Q和观测噪声协方差R,CM-AUKF显著提升了跟踪精度和稳定性。仿真结果表明,相比传统UKF,CM-AUKF在位置和速度估计误差上分别降低了约50%和30%,且无需人工调参。该算法适用于无人机导航、雷达跟踪等动态环境,MATLAB代码可直接运行复现结果。自适应曲线显示算法能有效收敛到真实噪声参数,验证了其自适应能力。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 330

龙腾CMS downloadFile接口任意文件读取漏洞复现 [附POC]

大连网龙网络科技有限公司专注于在信息科技领域中向客户提供商业解决方案,是专业的互联网服务解决方案提供商和网络营销服务专家,为用户提供一体化的网络营销整体解决方案,龙腾CMS downloadFile接口存在任意文件读取漏洞。

薛定谔嘚喵博客 720

160 份系统提示词泄露合集:读懂 ChatGPT、Claude 背后的“人格说明书“

为什么 ChatGPT 的语气那么自然,Claude Code 又像一位严谨的工程师?答案藏在对话正式开始前那段你看不见的**系统提示词**里。leaked-system-prompts 是一个持续更新的开源仓库,收录了 160 余份来自 ChatGPT、Claude、Gemini、Grok、Copilot 等主流 AI 产品的系统提示词泄露记录,时间跨度从 2022 年底到 2026 年中,是研

gitblog_00953的博客 875

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

CVE-2025-24071漏洞复现实战:从原理分析到利用脚本编写

缓冲区溢出是软件安全领域一种经典且危害巨大的漏洞类型,其核心原理在于程序向预先分配的固定长度内存缓冲区写入超出其容量的数据,导致相邻内存区域被覆盖。这种内存破坏可能被攻击者精心利用,通过覆盖函数返回地址等关键数据,劫持程序控制流,最终实现远程代码执行或权限提升,对系统安全构成严重威胁。在渗透测试、红队演练及安全研究等应用场景中,深入理解并能够复现此类漏洞,是评估真实风险、制定有效防御策略的基础。本文以CVE-2025-24071这一新近披露的漏洞为例,结合栈缓冲区溢出和ROP(面向返回编程)技术,详细拆解从

dianning8393的博客 389

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

强化学习机器人从GPU到RK3566部署实战:全流程解析

强化学习模型在GPU上训练和在嵌入式芯片上推理部署,是两种截然不同的技术路线。训练侧依赖算力堆叠,部署侧则需要在有限功耗和算力约束下实现毫秒级响应。本文以四足机器人Microduck为例,讲解如何将PPO算法训练出的策略网络,从PyTorch权重转换为RKNN格式并完成INT8量化,最终部署到仅0.8 TOPS算力的RK3566 NPU上。内容涵盖仿真环境搭建、模型转换工具链、实机控制循环、PID参数整定以及Sim-to-Real迁移中的奖励设计等关键环节。重点分析了嵌入式部署中常见的USB模式冲突、算子兼

weixin_34160277的博客 429

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

无需ROOT!Tiktok-SSL-Pinning-Bypass项目 patched APK使用教程:终极指南

你是否想要分析TikTok的网络流量,但被SSL证书锁定技术阻挡?Tiktok-SSL-Pinning-Bypass项目为你提供了完美的解决方案!这个开源项目专门用于绕过Android设备上TikTok应用的SSL证书验证,让你可以轻松监控和分析应用的网络通信。无论你是安全研究人员、开发者还是普通用户,这个工具都能帮助你深入了解TikTok的网络行为。 ## 🔍 什么是TikTok SSL P

gitblog_01179的博客 449

Spectre.js实战教程:在JavaScript中重现CPU侧信道攻击的完整指南

Spectre.js是Google安全团队开发的JavaScript概念验证代码,展示了如何在现代浏览器中通过JavaScript重现著名的Spectre CPU侧信道攻击。这个开源项目通过JavaScript实现了完整的Spectre漏洞利用链,让安全研究人员能够深入了解CPU推测执行漏洞的实际影响。🔍 ## 什么是Spectre侧信道攻击? Spectre是一种基于CPU推测执行机制的侧

gitblog_00452的博客 408
上一篇: 线性判别分析(LDA)
下一篇: 从一种生物信息数据种进行单个或多个生物标志的分析所存在的问题
chjjunking
博客等级 码龄17年 103粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值