F#和Mono Cecil如何使用它?

时间:2012-09-21 20:58:17

标签: c# f# mono

我正在使用F#进行混淆机制。

我在几个月前使用C#编写了相同的内容,如下所示:

public void testobfusc(string file)
{
    AssemblyDefinition assembly = AssemblyDefinition.ReadAssembly(file);
    ModuleDefinition module = assembly.MainModule;
    foreach (TypeDefinition type in module.Types)
    {
        type.Name = "Yaobfuscatethis"; // Maybe I should use random function here
     }
 }

现在,我正试图在F#中写同样的东西。首先,我引用Mono.Cecil然后写:

open Mono.Cecil

let obfus(file:string)=
    use asm = AssemblyDefinition.ReadAssembly(file)
    let ModuleDefinition = asm.MainModule
    TypeDefinition(asm.MainModule.Types)
    t.Name = ""

..但此代码不起作用。

1 个答案:

答案 0 :(得分:4)

翻译(未测试):

let testobfusc (file:string) = 
    let assembly = AssemblyDefinition.ReadAssembly(file)
    let ``module`` = assembly.MainModule
    ``module``.Types |> Seq.iter (fun t -> t.Name <- "Yaobfuscatethis")