Snazim se zacit neco delat pomoci te dnlib. Konkretne bych potreboval prochazet pres vsechny stringy z #US streamu a nektery z nich prepsat, mam s tim ale problemy.
Nasledujici kod sice nacte vsechny stringy z #US streamu do USHeap.cachedDict, coz vypada dost jako to, co potrebuju.
ModuleDefMD module = ModuleDefMD.Load("Assembly-CSharp.dll");
dnlib.DotNet.Writer.MetaData metadata = dnlib.DotNet.Writer.MetaData.Create(module, null, null, null);
metadata.USHeap.Populate(module.USStream);
Problem je, ze k tomu cachedDict se neda nijak dostat. Neni tam zadna metoda, ktera by ty stringy dokazala prochazet.
Vedle toho je tam jeste dost podobna vec List<string> cached a metoda GetAllRawData(), ktera ten seznam dokaze pekne celej vratit. Problem je, ze nevidim "normalni" zpusob, jak ten cached seznam naplnit.
Co se divam dal, seznam tech stringu bych dokazal vytvorit sam, ale potom nerozumim tomu, jak ten dnlib Writer vlastne funguje. Problem je, ze k te dnlib neni skoro zadna dokumentace a ze zdrojaku se neda moc vycist, jak autor k tem problemum pristupuje.
Na dnlib homepage na GitHubu radi podivat se na ConfuserEx. Nikde v jeho kodu ale nevidim, ze by pristupoval k #US streamu nebo heapu...