Есть ли способ сделать этот код «нормальным»

#python

#python

Вопрос:

я декодировал / деэншифровал этот код, и python стал выглядеть так

 200d\U0001f466)))|(?:(?:(?:\U0001f468\u200d\U0001f468)|(?:\U0001f469\u200d\U0001f469))\u200d\U0001f466)|[\u2194-\u2199]|[\u23e9-\u23f3]|[\u23f8-\u23fa]|[\u25fb-\u25fe]|[\u2600-\u2604]|[\u2638-\u263a]|[\u2648-\u2653]|[\u2692-\u2694]|[\u26f0-\u26f5]|[\u26f7-\u26fa]|[\u2708-\u270d]|[\u2753-\u2755]|[\u2795-\u2797]|[\u2b05-\u2b07]|[\U0001f191-\U0001f19a]|[\U0001f1e6-\U0001f1ff]|[\U0001f232-\U0001f23a]|[\U0001f300-\U0001f321]|[\U0001f324-\U0001f393]|[\U0001f399-\U0001f39b]|[\U0001f39e-\U0001f3f0]|[\U0001f3f3-\U0001f3f5]|[\U0001f3f7-\U0001f3fa]|[\U0001f400-\U0001f4fd]|[\U0001f4ff-\U0001f53d]|[\U0001f549-\U0001f54e]|[\U0001f550-\U0001f567]|[\U0001f573-\U0001f57a]|[\U0001f58a-\U0001f58d]|[\U0001f5c2-\U0001f5c4]|[\U0001f5d1-\U0001f5d3]|[\U0001f5dc-\U0001f5de]|[\U0001f5fa-\U0001f64f]|[\U0001f680-\U0001f6c5]|[\U0001f6cb-\U0001f6d2]|[\U0001f6e0-\U0001f6e5]|[\U0001f6f3-\U0001f6f6]|[\U0001f910-\U0001f91e]|[\U0001f920-\U0001f927]|[\U0001f933-\U0001f93a]|[\U0001f93c-\U0001f93e]|[\U0001f940-\U0001f945]|[\U0001f947-\U0001f94b]|[\U0001f950-\U0001f95e]|[\U0001f980-\U0001f991]|\u00a9|\u00ae|\u203c|\u2049|\u2122|\u2139|\u21a9|\u21aa|\u231a|\u231b|\u2328|\u23cf|\u24c2|\u25aa|\u25ab|\u25b6|\u25c0|\u260e|\u2611|\u2614|\u2615|\u2618|\u261d|\u2620|\u2622|\u2623|\u2626|\u262a|\u262e|\u262f|\u2660|\u2663|\u2665|\u2666|\u2668|\u267b|\u267f|\u2696|\u2697|\u2699|\u269b|\u269c|\u26a0|\u26a1|\u26aa|\u26ab|\u26b0|\u26b1|\u26bd|\u26be|\u26c4|\u26c5|\u26c8|\u26ce|\u26cf|\u26d1|\u26d3|\u26d4|\u26e9|\u26ea|\u26fd|\u2702|\u2705|\u270f|\u2712|\u2714|\u2716|\u271d|\u2721|\u2728|\u2733|\u2734|\u2744|\u2747|\u274c|\u274e|\u2757|\u2763|\u2764|\u27a1|\u27b0|\u27bf|\u2934|\u2935|\u2b1b|\u2b1c|\u2b50|\u2b55|\u3030|\u303d|\u3297|\u3299|\U0001f004|\U0001f0cf|\U0001f170|\U0001f171|\U0001f17e|\U0001f17f|\U0001f18e|\U0001f201|\U0001f202|\U0001f21a|\U0001f22f|\U0001f250|\U0001f251|\U0001f396|\U0001f397|\U0001f56f|\U0001f570|\U0001f587|\U0001f590|\U0001f595|\U0001f596|\U0001f5a4|\U0001f5a5|\U0001f5a8|\U0001f5b1|\U0001f5b2|\U0001f5bc|\U0001f5e1|\U0001f5e3|\U0001f5e8|\U0001f5ef|\U0001f5f3|\U0001f6e9|\U0001f6eb|\U0001f6ec|\U0001f6f0|\U0001f930|\U0001f9c0|[#|0-9]\u20e3"rnrnrn@Exeter.command(aliases=["stopcopycatuser", "stopcopyuser", "stopcopy"])rnasync def stopcopycat(ctx):rn    await ctx.message.delete()rn    if Exeter.user is None:rn        await ctx.send("You weren't copying anyone to begin with")rn        returnrn    await ctx.send("Stopped copying "   str(Exeter.copycat))rn    Exeter.copycat = Nonernrnrn@Exeter.command(aliases=["copycatuser", "copyuser"])rnasync def copycat(ctx, user: discord.User):rn    await ctx.message.delete()rn    Exeter.copycat = userrn    await ctx.send("Now copying "   str(Exet  

Есть ли способ превратить это в обычный код python? Ниже приведены зашифрованный / экодированный файл и расшифрованный / декодированный файл.

Закодированный файл (Filebin)

Декодированный файл (Filebin)

Комментарии:

1. предполагается ли запустить закодированный файл? Я не вижу там никакого exec

2. я думаю, что я загрузил неправильный файл, но да. позвольте мне повторно загрузить файл.

3. @painor спасибо, что указали на это. я загрузил правильный файл.

4. Можете ли вы опубликовать меньший образец в своем вопросе, который не в формате изображения?

5. конечно, @MateenUlhaq

Ответ №1:

Код просто использует кодировку b64. для его декодирования вы можете просто распечатать результат, который передается в eval

 data = ((base64.b64decode(eval('x74x72x75x73x74')),'<string>','exec'))
print(data[0].decode("utf-8"))
  

если вы хотите избежать оценок, вы можете использовать

 joy = 'rot13'

trust = magic   codecs.decode(love, joy)   god   codecs.decode(destiny, joy)

code = (base64.b64decode(trust),'<string>','exec')
print(code[0].decode("utf-8"))
  

Комментарии:

1. eval('x74x72x75x73x74') эквивалентно имени переменной trust , поэтому OP также может заменить это, чтобы избежать eval .

Ответ №2:

Это не полный ответ, но большая часть вашего файла, похоже, выглядит правильно, когда он не экранирован и распечатан. Например, просто скопируйте-вставьте из вашего decoded.txt файла в python REPL и распечатайте его, чтобы получить:

 >>> print(
... """rn@Exeter.command(aliases=["stopcopycatuser", "stopcopyuser", "stopc
... opy"])rnasync def stopcopycat(ctx):rn    await ctx.message.delete()r
... n    if Exeter.user is None:rn        await ctx.send("You weren't cop
... ying anyone to begin with")rn        returnrn    await ctx.send("Stop
... ped copying "   str(Exeter.copycat))rn    Exeter.copycat = Nonern"""
... )

@Exeter.command(aliases=["stopcopycatuser", "stopcopyuser", "stopcopy"])
async def stopcopycat(ctx):
    await ctx.message.delete()
    if Exeter.user is None:
        await ctx.send("You weren't copying anyone to begin with")
        return
    await ctx.send("Stopped copying "   str(Exeter.copycat))
    Exeter.copycat = None

  

Один из способов выполнить это программно с помощью вашего decoded.txt является:

 with read("decoded.txt") as f:
    data = f.read()

unescaped = data.encode("utf8").decode("unicode_escape")
print(unescaped)