UCSC-WP&复现reverse
UCSC-WP&复现reverseeasy_re-ucsc
main函数
v7 = 10;
strcpy(Str, "n=<;:h2<'?8:?'9hl9'h:l>'2>>2>hk=>;:?");
for ( i = 0; i < strlen(Str); ++i )
Str1 = xor(v7, Str);
Str1 = 0;
printf(Format);
scanf("%s", Str2);
if ( !strcmp(Str1, Str2) )
puts("win,TQLLLLLLL!!!");
else
puts("sorry,this is not flag");
return 0;脚本
Str = "n=<;:h2<'?8:?'9hl9'h:l>'2>>2>hk=>;:?"
v7 = 10
Str1 = ''.join()
print(Str1)EZ_debug-ucsc
mian函数:
strcpy(Str, "UCSC");//key
v5 = 0x89B83EC0E7A3CF8i64;
v5 = 0x3F0EA83858C85F6Ai64;
v5 = 0xAB8A1E39811B5F22ui64;
v5 = 0x649F307A6475E9B1i64;
v6 = 0xAB7BBD90;//v5和v6是密文
v8 = 36;
v3 = strlen(Str);
rc4_init(Str, v3);
rc4_crypt(v5, v8);
return 0;脚本
import structdef rc4_decrypt(ciphertext_hex, key): ciphertext = bytes.fromhex(ciphertext_hex) s = list(range(256)) j = 0 key_bytes = key.encode('ascii') # KSA for i in range(256): j = (j + s + key_bytes) % 256 s, s = s, s # PRGA i = j = 0 plaintext = [] for byte in ciphertext: i = (i + 1) % 256 j = (j + s) % 256 s, s = s, s k = s[(s + s) % 256] plaintext.append(byte ^ k) return bytes(plaintext)# 构造密文cipher_qwords = [ 0x089B83EC0E7A3CF8, 0x3F0EA83858C85F6A, 0xAB8A1E39811B5F22, 0x649F307A6475E9B1, 0xAB7BBD90]cipher_bytes = b''.join(struct.pack("
页:
[1]