0xGame 2024-Reverse-Week 4

[Week 4] MineSweeper

  • 首先先用ILSpy反编译MineSweeper\Minesweeper_Data\Managed\Assembly-CSharp.dll
  • 得到的是程序的主代码
  • 注意到update是主要的运行逻辑函数(又一次惊人的注意力
  • 当游戏win之后会运行crypt函数
  • 这个函数通过Array.Copy(Resources.Load<TextAsset>("enc").bytes, array, 44);加载enc
  • 用AssetStudio反编译资源(过程中会有弹窗全选确定就行,时间有点慢
  • 然后另存enc,记录十六进制值
  • crypt内部使用key字符串用作key
  • 返回update看crypt函数的传参,使用了haha字符串用作Key
  • 最后手搓解密脚本
def crypt(key: str, Key: bytes, enc: bytes) -> str:
    num = 0
    array = bytearray(44)
    array[:] = enc
    Key = bytearray(Key)

    key_chars = [ord(c) for c in key]
    key_length = len(key_chars)
    for i in range(44):
        num = (num + key_chars[i % key_length]) % 44
        Key[num], Key[i] = Key[i], Key[num]

    for num2 in range(43, -1, -1):
        array[num2] ^= Key[num2]
    return array.decode()

enc = b'\x45\x21\x3E\x08\x57\x31\x09\x4D\x42\x45\x42\x44\x5D\x5A\x4B\x4B\x52\x56\x16\x44\x66\x45\x6C\x40\x57\x44\x33\x35\x51\x75\x0D\x58\x15\x71\x11\x1B\x0B\x08\x76\x04\x4F\x5C\x68\x3c'
key = "0xoX0XOxOXoxGAME"
Key = b"This is: True_KEY!for #0xgAmE_Unity~Cryption"
decrypted_text = crypt(key, Key, enc)
print(decrypted_text)
  • 0xGame{36ecd059-b3e7-73c8-fa80-0a2abef3c757}

[Week 4] PyPro

  • 一眼pyinstaller打包,执行python pyinstxtractor.py PyPro.exe
  • 然而uncompyle6支持3.8以下,尝试发现源码是3.12的,显然不能用
  • 这里偷个懒直接用网页了,用工具也是可以的pycdc(附上使用教程pycdc.exe PyPro.pyc编码问题可以输入chcp 65001
  • 发现反编译有问题,最终还是用回工具了pycdas pycdas.exe PyPro.pyc
  • 汇编是不可能看懂的,扔给GPT
import base64
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad

key = bytes.fromhex('0554B134A029DE539438BD18604BF114')     # 这里开头要手动补0

target_data = '2e8Ugcv8lKVhL3gkv3grJGNE3UqkjlvKqCgJSGRNHHEk98Kd0wv6s60GpAUsU+8Q'

encrypted_data = base64.b64decode(target_data)

cipher = AES.new(key, AES.MODE_ECB)
decrypted_data = cipher.decrypt(encrypted_data)

try:
    flag = unpad(decrypted_data, AES.block_size).decode('utf-8')
    print(f"flag: {flag}")
except ValueError:
    print("解密失败,填充不正确。")
  • 注意下给出的key是31位,会报错,开头补个0就行
  • 0xGame{1cb76d38-4900-476f-bf1b-9d59f74d7b2e}
  • p.s.其实吧汇编感觉还是能看懂点的(但只有一点点
暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇