今天在群里看到的用法,RLO是一个微软的中东Unicode字符8238,或者0x202E,可以使后面的字符都变为RTL(阿拉伯语从右往左书写,对我们来说就是倒着的),可以简单用于改变文件的真实扩展名,进行文件名欺骗,引诱人下载恶意程序。不过是比较老的一个东西,一般杀毒软件也可以侦破。写篇博客记录一下玩玩。

两行代码实现字符逆序输出

虽然python非常简单,也有其他方式可以两行逆序输出字符,不过感觉这个挺好玩的。

s=input()
print('\u202E'+s)

注意编码的格式,我用cmd和powershell会因为gbk编码报错,最后用Pycharm测试成功的。

做个假文件

做着玩玩,也没有恶意代码,复制了一份cmd.exe作为素材



用下面的代码给其重命名(注意把cmd.exe和下面的py文件放在一个目录里,不然代码里要写清楚路径)

import os
os.rename('cmd.exe',u'Reveng\u202E3pm.exe')



运行后,cmd.exe的名字就变了



为了真一点,创建一个快捷方式(名字也改一改),然后右键->属性->快捷方式,更换图标



做出来就是下面的样子,然后可以发给别人玩玩

参考

“semaG dna nuF” with Right-to-Left Override Unicode Characters

[分析]Mac恶意软件使用Right-to-left override技巧

Unicode RTLO(Right-To-Left Override) Security ISSUE

How to change executable file's extension to any extension(File Name Cheating) - 如何更改可执行文件的扩展名为任意扩展名

简单认识RTLO(Right-to-Left Override)的更多相关文章

  1. Netty简单使用

    目录 丢弃服务器 DiscardServerHandler DiscardServer 测试 应答服务器 时间服务器 TimeServerHandler TimeClient TimeClientHa ...

  2. ASP.NET 截获服务器生成的将要发送到客户端的html的方法

    有时候我们需要在将服务器端生成的html发送带客户端之前对这些html进行操作,比如生成静态html加之保存.改变生成的html中的某些内容等等,那么久可以通过如下的方案解决. 我总结了两种方式,个人 ...

  3. 在Android中,使用Kotlin的 API请求简易方法

    原文标题:API request in Android the easy way using Kotlin 原文链接:http://antonioleiva.com/api-request-kotli ...

  4. Netty源码分析之客户端启动过程

    一.先来看一下客户端示例代码. public class NettyClientTest { public void connect(int port, String host) throws Exc ...

  5. 一起来学习Android自定义控件2-简单的写字板控件

    概述 上一篇文章我们对自定义控件进行了一个大体的知识介绍.今天就来学习自定义一个简单的写字板控件. 先来看看效果图 就是简单的根据手指写下的轨迹去画出内容 实现 在上一篇文章里提到了android官方 ...

  6. ViewStub源码分析

    ViewStub是一种特殊的View,Android官方给出的解释是:一种不可见的(GONE).size是0的占位view,多用于运行时 延迟加载的,也就是说真正需要某个view的时候.在实际项目中, ...

  7. ListView实现原理

    转载:http://blog.csdn.net/guolin_blog/article/details/44996879 在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了 ...

  8. Asp.Net Web API 2第十二课——Media Formatters媒体格式化器

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本教程演示如何在ASP.N ...

  9. 【ASP.NET Web API教程】6.1 媒体格式化器

    http://www.cnblogs.com/r01cn/archive/2013/05/17/3083400.html 6.1 Media Formatters6.1 媒体格式化器 本文引自:htt ...

随机推荐

  1. HTML5新标签和CSS伪类

    HTML5提供了很多新的标签,由于HTML5的兼容性比较差,HTML5的标签常用于手机端 <nav> <footer> <section> <header&g ...

  2. 使用Swagger创建Api

    1.首先创建一个web项目,选择Mvc模板 2.右键点击引用.管理Nuget程序包,浏览 搜索Swagger,下载安装下面的包 3.安装完后在App_Start里面会出现SwaggerConfig.c ...

  3. loadrunner 由mdrv进程终止导致的非正常终止

    因为脚本迭代次数多的问题,迭代了3次,后来改成了迭代1次(1个Vuser),就不会了,

  4. Qt实现表格树控件-支持多级表头

    目录 一.概述 二.效果展示 三.实现方式 四.多级表头 1.数据源 2.表格 3.QStyledItemDelegate绘制代理 五.测试代码 六.相关文章 原文链接:Qt实现表格树控件-支持多级表 ...

  5. 简单实现Shiro单点登录(自定义Token令牌)

    1. MVC Controller 映射 sso 方法. /** * 单点登录(如已经登录,则直接跳转) * @param userCode 登录用户编码 * @param token 登录令牌,令牌 ...

  6. loadrunner安装和应用

    问题:1.负载测试流程 2.为什么实现性能测试自动化 3.设置场景  (场景定义) 4.事物响应时间,吞吐量和吞吐率,正在运行vuser,windows资源,每秒点击次数,每秒http响应数. 5.i ...

  7. SqlServer数据库优化之索引、临时表

    问题:工作是查询一张500万多条数据的表时,查询总是很慢,于是进行优化. --查询表所有索引 use RYTreasureDB EXEC Sp_helpindex [RecordDrawScore] ...

  8. OGG 源端与目标端 约束不一致

    需求: 请在生产库执行下面的脚本 --删除主键并新增复合主键              alter table XXXXX  drop constraint PK_USERCHNL cascade; ...

  9. springboot常用方法手记

    1.Map方法 获取map的key和value的方法 Map<String, Object> map = new HashMap<>(); map.put("mobi ...

  10. angularjs中设置select的选中项

    最近用angularjs比较多,里面有很多自己的方法,都不咋会用,这篇只是个笔记,防止自己忘记 <select style="width:100%" ng-model=&qu ...