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

[翻译]Pokémon Shellcode 加载器

2022-7-31 18:55
8041

原文地址:a4aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6@1k6h3y4Z5M7Y4W2H3N6r3W2U0i4K6u0W2k6$3W2@1K9s2g2T1i4K6u0W2K9h3!0Q4x3V1j5J5x3o6t1J5i4K6u0r3x3o6N6Q4x3V1j5J5z5q4)9J5c8W2m8G2K9$3g2E0L8$3&6Q4x3X3c8e0K9r3g2D9L8r3y4G2k6r3g2Q4x3X3c8x3L8$3q4V1k6i4u0Q4x3V1j5`.

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


注#1 更新的代码将在我的GitHub上:deeK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6f1k6h3y4Z5M7Y4W2H3N6r3W2U0i4K6u0r3f1r3!0C8k6h3#2G2L8W2)9J5k6q4y4Z5k6h3I4D9j5$3!0V1k6g2)9J5k6p5I4G2j5h3c8W2M7R3`.`.

注#2 GitBooks: 8b6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6@1k6h3y4Z5M7Y4W2H3N6r3W2U0i4K6u0W2k6$3W2@1j5X3!0G2K9#2)9J5k6h3W2G2i4K6u0r3M7r3!0C8k6h3#2G2L8W2)9J5k6s2y4Z5k6h3I4D9j5$3!0V1k6b7`.`.

注#3 GitPages: 303K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6@1k6h3y4Z5M7Y4W2H3N6r3W2U0i4K6u0W2k6$3W2@1K9s2g2T1i4K6u0W2K9h3!0Q4x3V1j5J5x3o6t1J5i4K6u0r3x3o6N6Q4x3V1j5J5z5q4)9J5c8W2m8G2K9$3g2E0L8$3&6Q4x3X3c8e0K9r3g2D9L8r3y4G2k6r3g2Q4x3X3c8x3L8$3q4V1k6i4t1`.

有多种方法可以做到这一点。如果我们看一下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的编号和名称:

37bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4y4@1i4K6u0W2k6$3W2@1K9s2g2T1i4K6u0W2j5$3!0E0i4K6u0r3j5i4u0E0k6$3W2D9L8r3g2K6i4K6u0r3x3e0V1@1j5X3y4X3k6U0x3#2x3o6l9I4k6e0N6W2j5U0f1K6j5e0u0S2z5r3t1@1y4o6q4W2z5r3t1J5j5K6j5`.

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

b65K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6K6K9h3&6V1M7X3g2K6L8%4u0Z5N6i4y4Q4x3V1k6H3L8$3E0W2L8h3!0F1i4K6u0r3j5X3I4G2j5W2)9J5c8X3#2S2K9h3&6Q4x3V1k6V1j5i4c8S2i4K6u0r3k6h3&6Q4x3X3g2B7M7$3!0F1

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

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

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

以上面的shellcode为例:


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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