Score:0

How can I decrypt an RC4 encrypted text when knowing the first 8 characters of the plain text secret?

ธง cn

I'm having difficulty decrypting a secret message as a part of a CTF and I was wondering how could I decrypt an encrypted text that has been encrypted with pycrypto RC4 and when the first 8 characters of the plain text secret are know. Here is the secret that is in the code:

secret = b'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'

and here are the first 8 characters of the decrypted text: VQ0NCgAA

Also here is the full provided code for anyone wondering:

import base64
import marshal
import io
from Crypto.Cipher import ARC4
key = input('Enter correct key: ').encode('utf8')
cipher = ARC4.new(key)
secret = b' ---- snip -----'
plain = cipher.decrypt(base64.b64decode(secret))
if b'VQ0NCgAA' == plain[:8]:
    print('Correct')
    bytescode = io.BytesIO(base64.urlsafe_b64decode(plain))
    bytescode.seek(16)
    implant = marshal.load(bytescode)
    exec(implant)
else:
    print('Wrong')

Sorry if this is a noob question but I'm new to cryptography and really curious on how something like this can be achieved.

Score:1
ธง ar

วิธีการที่ชัดเจนคือการบังคับอย่างดุร้าย บางทีคีย์อาจสั้นหรือบางอย่างเช่นคำในพจนานุกรม อย่างน้อยฉันก็คิดวิธีที่ดีกว่านี้ไม่ได้แล้ว

ปล. เมื่อคุณพบรหัสแล้ว ฉันหวังว่าคุณจะไม่เรียกใช้รหัสนั้นโดยไม่แก้ไขก่อน หากคำนำหน้าตรงกัน คำนำหน้าจะโหลดและเรียกใช้โค้ดใดๆ ก็ตามที่อยู่ในเพย์โหลดที่เข้ารหัส คุณเชื่อมั่น 100% ว่าจะไม่ทำลายระบบของคุณหรือติดตั้งแบ็คดอร์ที่ซ่อนอยู่หรือไม่? ฉันจะไม่

cn flag
ใช่ ฉันได้ลองใช้กับรายการคำของ rockyou.txt แล้ว ฉันควรลองใช้กับรายการคำศัพท์อื่นๆ ด้วยหรือฉันควรลองใช้สตริงแบบสุ่ม และใช่ ไม่ต้องกังวล ฉันได้เปลี่ยนสคริปต์เพื่อพิมพ์เฉพาะเอาต์พุตและไม่ได้ดำเนินการ
Score:0
ธง in

คำตอบน่าจะเป็นการค้นหาคีย์ที่ถูกต้อง บางทีคุณควรพยายามให้มากขึ้น?

ฉันพบคีย์หนึ่งที่สร้างข้อความธรรมดาที่ต้องการ รากเทียมพิมพ์ออกมาว่า อาจมีคำตอบอื่นด้วย

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา