首页
社区
课程
招聘
[翻译]Pokémon Shellcode 加载器
发表于: 2022-7-31 18:55 7648

[翻译]Pokémon Shellcode 加载器

2022-7-31 18:55
7648

原文地址:https://techryptic.github.io/2022/07/28/Pokemon-Shellcode-Loader/

厌倦了整天看着十六进制和弹出'\x41'吗?宁愿去看Lugia/Charmander?我为你提供了解决方案。@Checkymander发来了一条推特,关于从Pokémon的名字中创建一个Shellcode 加载器。很有趣的项目,可以混淆蓝队,但没有POC! (至少在我最后一次检查时)


注#1 更新的代码将在我的GitHub上:https://github.com/Techryptic/Pokemon-Shellcode-Loader

注#2 GitBooks: https://techryptic.gitbook.io/pokemon-shellcode

注#3 GitPages: https://techryptic.github.io/2022/07/28/Pokemon-Shellcode-Loader

有多种方法可以做到这一点。如果我们看一下shellcode,它是一系列从0x00-0xFF的十六进制,或以0-256的十进制形式。我们可以选择的Pokemon(口袋妖怪)刚好超过256个。



从上面的Pokemon图来看,我们可以把编号为001的BULBASAUR翻译成0x01(去掉第一个0)。同样地,CHARMANDER将用0x04表示,以此类推。lucky空字节0x00可以对准Pokemon#257,BLAZIKEN!

将shellcode转换为Pokemon-Shellcode很简单。将Pokemon-Shellcode转换为Assembly怎么样?我们想在.ASM内有一个数组吗?C代码?从外部把它下载下来?

根据这种思路往下走!

我们需要数据。首先,我发现两个区域同时包含Pokemon的编号和名称:

https://gist.github.com/armgilles/194bcff35001e7eb53a2a8b441e8b2c6

还有一个只有Pokemon的名字。这可能更有用,因为我们可以在不携带长字符串的情况下获得特定Pokemon的数组索引位置。

https://github.com/sindresorhus/pokemon/blob/main/data/en.json

我正在使用一个普通的POP CALC shellcode,并将其放入C语言代码中。

不合格。它没有做任何恶意的事情,但仍然……不合格。

一个简单的脚本将一个shellcode字节对象转换为Pokémon Shellcode。

以上面的shellcode为例:


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2022-9-18 07:50 被梦幻的彼岸编辑 ,原因:
收藏
免费 5
支持
分享
最新回复 (2)
雪    币: 2622
活跃值: (1815)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
图片和文字我都熟,怎么放一起,就感觉高不可攀呢
2022-7-31 21:01
0
雪    币: 6893
活跃值: (3851)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
这。。不就是二战还是啥时候,那种密码本的加密方式吗。。。
2022-8-1 09:52
0
游客
登录 | 注册 方可回帖
返回
//