C#逆向常见题型
C#逆向常见题型
做题
[强网杯 2022]GameMaster
DIE查壳为.NET,用dnSpy-x86打开,发现gamemessage被传入memory中。Ctrl+Shift+R查引用,在goldFunc中发现可疑函数。genCode()中为AES-PKCS7加密,发现没什么实质作用。
捋清思路:把gamemessage文件先$\oplus34$再AES-ECB
exp:
1 | from Crypto.Cipher import AES |
得解密后gamemessage,010Editor打开,找MZ文件头,前面全删掉,DIE查壳为.NET,改名.dll,丢dnSpy-x86,发现他很复杂…
第一步尝试z3爆破:
1 | from z3 import * |
第二部照猫画虎:
1 | l=[156324965,868387187,3131229747] |
[BJDCTF 2020]BJD hamburger competition
Unity做的汉堡制作游戏,主程序在DLL里。给出了SHA1值,查一下原文,再MD5加密。发现MD5被自定义类拦截,算法为第20位截断,即得flag。
[SWPUCTF 2023 秋季新生赛]Funny CSharp
学到个冷门知识点:
1 | byte[] array3 = array; |
这语句竟然是array3与array共用同一个地址,没想到C#没有指针还这么变态。
1 | enc=[116,94,80,127,49,71,101,106,115,97,57,83,94,109,58,98,75,86,40,100,61,123,110,57,123,89,86,121,123,104,97,60,86,74,86,112,103,103,124,111,86,99,107,56,93,71,96,106,69,49,112,59,103,124,90,65,71,114,79,93,74,90,90,71] |
[HGAME 2023 week3]kunmusic
找资源节“data”,发现异或后解析:
1 | Activator.CreateInstance(Assembly.Load(data).GetType("WinFormsLibrary1.Class1"), new object[]{ |
直接dump出来:
1 | f1=open("data","rb") |
output是个I386的.NET,再分析为z3:
1 | from z3 import * |
垃圾z3多解不能全报,而且每个版本的z3_solver报的都不一样…BitVec的位深改为9才报正确的…
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 The Blog of Monoceros406!