淘口令效果与粘贴板攻击防护

写在前面的话 – 关于剪切板安全性的思考不感兴趣的可以跳过这段废话

  1. 早在18年360互联网中心首次监听到一类木马病毒,该类病毒不断的监听剪切板,判断是否为比特币等数字货币地址,如果是数字货币地址则将其替换成自己的地址从而实施盗窃,其实这种漏洞早在16年Telegram就暴露出应用将剪切板文本写到本地的情况,而剪切板的安全一直不为大家所关注,因此应用本身如果需要较高的防护等级的话剪切板的安全就容易变成一个薄弱环节.

如何防护

笔者从两方面考虑防护

  1. 如何防止写入到剪贴板的数据被其他应用读取并篡改
  2. 如何简单快速的进行防护而不对现有项目做过多改动

本代码局限性

由于手头并没有三星手机,且三星自己实现了一套复制粘贴的service,所以下述代码没有对三星相关品牌做兼容.诸位看官可自行实现.

直接上代码

  1. 下面的代码主要是对剪贴板的hook,在应用中如果一旦使用了剪贴板会自动的走到我们hook的地方,在此我们可以将剪贴的数据进行加密处理,或者实现淘口令的功能.具体的各位可以根据自身的业务需求实现.完整代码各位可以下载github代码,如果有用请给个star支持一下.

     package com.lhc.hook.myapplication.hook;import android.content.ClipData;import android.content.Context;import android.os.IBinder;import android.text.TextUtils;import android.util.Log;import com.lhc.hook.myapplication.hookutil.ServiceHook;import com.lhc.hook.myapplication.hookutil.ServiceManager;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class ClipboardHook {private static final String TAG = ClipboardHook.class.getSimpleName();private static Context mContext;public static void hookService(Context context) {mContext = context;IBinder clipboardService = ServiceManager.getService(Context.CLIPBOARD_SERVICE);String IClipboard = "android.content.IClipboard";if (clipboardService != null) {try {IBinder hookClipboardService =(IBinder) Proxy.newProxyInstance(IBinder.class.getClassLoader(),new Class[]{IBinder.class},new ServiceHook(clipboardService, IClipboard, true, new ClipboardHookHandler()));ServiceManager.setService(Context.CLIPBOARD_SERVICE, hookClipboardService);} catch (Exception e) {e.printStackTrace();}} else {Log.e(TAG, "ClipboardService hook failed!");}}/*** 其实在android的粘贴板中有一个ClipData.getDescription()方法,* 各位甚至可以根据自己的需要对粘贴的内容进行描述,在此处就不赘述.*/public static class ClipboardHookHandler implements InvocationHandler {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {String name = method.getName();if ("setPrimaryClip".equals(name)) {//复制hookSetPrimaryClip(args);return method.invoke(proxy, args);} else if ("getPrimaryClip".equals(name)|| "getUserPrimaryClip".equal(name)) {//粘贴Object call = method.invoke(proxy, args);call = hookGetPrimaryClip(call);return call;}return method.invoke(proxy, args);}/*** hook粘贴,可对数据加密,或实现淘口令效果*/private void hookSetPrimaryClip(Object[] args) {for (int i = 0; i < args.length; i++) {if (args[i] instanceof ClipData) {ClipData clipData = (ClipData) args[i];if (clipData != null && clipData.getItemAt(0) != null&& !TextUtils.isEmpty(clipData.getItemAt(0).getText())) {// TODO: 2020/11/19 0019 对数据进行解密,实现淘口令功能ClipData data = new ClipData(clipData.getDescription(),new ClipData.Item("数据已经加密"));args[i] = data;}}}}/*** hook 粘贴 对数据进行解密或实淘口令解密功能*/private Object hookGetPrimaryClip(Object call) {if (call instanceof ClipData) {ClipData encodeData = (ClipData) call;if (encodeData != null && encodeData.getItemAt(0) != null&& !TextUtils.isEmpty(encodeData.getItemAt(0).getText())) {// TODO: 2020/11/19 0019 对数据进行解密对淘口令解密ClipData decodeData = new ClipData(encodeData.getDescription(),new ClipData.Item("数据已经解密"));call = decodeData;}}return call;}}}
    

淘口令效果及粘贴板攻击防护实现相关推荐

  1. kali linux 通过粘贴板攻击对方服务器

    目录 一.粘贴板中毒攻击原理 二.Pastejacker 攻击工具简介 三.安装Pastejacker 四.Pastejacker结合MSF拿到目标shell权限 一.粘贴板中毒攻击原理 该工具的主要 ...

  2. 淘口令高级版api,淘口令转化api,淘口令api,高级淘口令效果,高级淘口令使用场景

    一.该接口能达到什么样的效果 提供的链接转化成淘口令时,没有分享人,淘口令形式可以定义图片,标题,url等参数 二.建议的使用场景 ①.提高淘口令补单的安全性 ②.多样式推广,增加淘口令推广的安全性 ...

  3. flutter复制口令返回app监听粘贴板,类似App助力

    @overridevoid didChangeAppLifecycleState(AppLifecycleState state) {switch (state) {case AppLifecycle ...

  4. ios开发读取剪切板的内容_iOS中管理剪切板的UIPasteboard粘贴板类用法详解

    一.自带剪切板操作的原生UI控件在iOS的UI系统中,有3个控件自带剪切板操作,分别是UITextField.UITextView与UIWebView.在这些控件的文字交互处进行长按手势可以在屏幕视图 ...

  5. C# 淘宝商品微信返利助手开发-(九)编写一个vue页面用于复制淘口令

    系列教程一目录:返利助手原理 系列教程二目录:返利助手开放文档以及帐号申请地址 系列教程三目录:返利助手开发(1)API介绍 系列教程四目录:返利助手开发(2)淘宝分享的内容如何只取淘口令 系列教程五 ...

  6. Autohotkey实现粘贴板图片用百度OCR识别

    难点: 1.发送异步的http请求,包括获取获取token的get请求,和发送图片的post请求 2.post请求需要设置请求头,和请求体,请求体是图片,但是文档上说需要base64加密,还好wind ...

  7. h5 实现一键复制到粘贴板 兼容iOS

    效果展示 先贴上测试连接 http://cdn.foundao.com/zhaosheng/copytext 实现原理 采用 document.execCommand('copy') 来实现复制到粘贴 ...

  8. 被骗几十万总结出来的Ddos攻击防护经验!(转载)

    被骗几十万总结出来的Ddos攻击防护经验! 技术 站内编辑 2015-09-18 17:37 评论 0 阅读 115159 来源: 爱尖刀 本人从事网络安全行业20年.有15年防ddos攻击防护经验. ...

  9. 安全狗技术分享|Web应用防火墙之攻击防护

    一旦我们正式把web应用上线后,web应用就暴露在公网的环境中,随之则会产生访问和流量,我们最常开放的80端口和443端口就有可能被探测到随之就有可能被自动化工具扫描甚至被监控和攻击,那么怎么防护这些 ...

最新文章

  1. gtkorphan清理孤立软件包
  2. vs2017中报无法打开包括文件: corecrt.h: No such file or directory
  3. 如何设计一个端计算架构?
  4. sumif三个条件怎么填_函数SUMIF和SUMIFS
  5. 亚马逊面试有几轮_经过几个月的Google面试准备,我被亚马逊录用
  6. 休眠后gpio状态_STM32中GPIO的8种工作模式总结
  7. java中的@override
  8. 蓝桥杯 BASIC-9 基础练习 特殊回文数
  9. Android使用谷歌插件,IT之家学院:教你如何在安卓手机上使用Chrome插件
  10. GDAL虚拟文件简介
  11. java 静态相关内容
  12. 计算机硬盘扇区修复,w7硬盘坏道修复详细教程
  13. 计算机发展史的第五个阶段,信息技术的发展历程是怎样的? 信息技术的发展历程分五个阶段...
  14. java表白我爱你代码_微信翻译代码我爱你怎么写 微信翻译表白代码大全
  15. url 转码 java_URL 转码遇到的坑
  16. 由于应用universal link 校验不通过 ios应用升级SDK 更换Universal Links校验
  17. css3中3D变换的景深和灭点
  18. 三轮全向底盘:运动学性能分析
  19. 机械手表,石英手表,智能手表怎么选最好,哪种更适合佩戴?
  20. 清华集训2014 day1 task1 玛里苟斯

热门文章

  1. 【转载】SSH服务器端/etc/ssh/sshd_conf配置文件详解
  2. JavaScript打印和预览等
  3. 键盘快速启动工具Launchy的简单使用技巧
  4. 【蓝桥杯】写给零基础入坑蓝桥杯的同学(历届真题解析)
  5. Yahoo! 用户密码泄漏安全启示录
  6. tp5上一篇下一篇;php上一篇下一篇
  7. 服务器相关的指标解释
  8. 【OpenGl】万向节死锁的简易理解
  9. Java实现PC微信扫码支付
  10. vue实现换一批业务【WoodenFish完整版】