今天在群里看到的用法,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. 创建Maven项目时,GroupId和Artifact Id该怎么填写呢?

    1.什么是groupid和artifactId? groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根 ...

  2. .net 6.0 新特性

    1. 属性初始化 class Person { public string Name { get; set; } public string Sex { get; set; } = "男&q ...

  3. 在Visual studio上发布web项目,并添加到IIS服务器上。

    1.首先发布到IIS上 https://blog.csdn.net/kydkong/article/details/49563193 2.NET4.0部署出错HTTP 错误500.21 - Inter ...

  4. 基于vue+springboot+docker网站搭建【五】部署vue前端项目

    部署vue前端项目  一.下载项目到本地   https://github.com/macrozheng/mall-admin-web 二.npm install 三.修改api配置,改为你接下来要部 ...

  5. error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用

    出现如下错误: error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用 解决办法:

  6. 命令行运行ionic run android 出现running one or more of the platforms Error

    问题如图所示: 或者 这个问题也是由于端口号被占用的原因,解决的方法在上篇博客<Ionic run android失败解决方法>.

  7. UIPickerView基本使用

    UIPickerView是很常用的一个UI控件,在各种购物平台选择地址时候都是必备的,下面我们来说一下具体的使用 首先UIPickerView的创建,与多数控件一样,分配内存并设置位置尺寸. 重要的的 ...

  8. Django框架(九)-- 多表操作:一对一、一对多、多对多的增删改,基于对象/双下划线的跨表查询、聚合查询、分组查询、F查询与Q查询

    一.创建多表模型 一对一:OneToOneField 一对多:ForeignKey 多对多:ManyToManyField 创建表时,会自动添加一个nid字段,并且自增,所以id可以不用手动创建 On ...

  9. 网络编程(二)--TCP协议、基于tcp协议的套接字socket

    一.TCP协议(Transmission Control Protocol 传输控制协议) 1.可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会 ...

  10. QElapsedTimer定时器记录程序执行时间

    QElapedTimer类提供了一种快速计算运行时间的方法,从Qt4.7引入. QElapsedTimer类通常用于快速计算两个事件之间经过了多少时间.它的API与QTime相似,因此可以将正在使用的 ...