Ejemplo n.º 1
1
 public int BeginCall(int funcid, Packers.AbstractPacker packer)
 {
     int seq = getSeq ();
     transport.BeginWrite (seq);
     Packers.Int8.pack (CMD_INVOKE, transport);
     Packers.Int32.pack (funcid, transport);
     replies[seq] = new ReplySlot (packer);
     return seq;
 }
Ejemplo n.º 2
0
 public void FromConfuserProject(ConfuserProject prj)
 {
     output = prj.OutputPath;
     snKey  = prj.SNKeyPath;
     seed   = prj.Seed;
     dbg    = prj.Debug;
     foreach (var i in prj.Plugins)
     {
         LoadAssembly(Assembly.LoadFrom(i), false);
     }
     if (prj.Packer != null)
     {
         this.packer = new PrjConfig <Packer>(Packers.Single(_ => _.ID == prj.Packer.Id), this);
         foreach (var j in prj.Packer.AllKeys)
         {
             this.packer.Add(new PrjArgument(this)
             {
                 Name = j, Value = prj.Packer[j]
             });
         }
     }
     foreach (var i in prj)
     {
         PrjAssembly asm = new PrjAssembly(this);
         asm.FromCrAssembly(this, i);
         Assemblies.Add(asm);
     }
     foreach (var i in prj.Rules)
     {
         PrjRule rule = new PrjRule(this);
         rule.FromCrRule(this, i);
         Rules.Add(rule);
     }
 }
Ejemplo n.º 3
0
        public void LoadAssembly(Assembly asm, bool interact)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("Loaded type :");
            bool h = false;

            foreach (Type type in asm.GetTypes())
            {
                if (typeof(Core.IConfusion).IsAssignableFrom(type) && type != typeof(Core.IConfusion))
                {
                    Confusions.Add(Activator.CreateInstance(type) as Core.IConfusion);
                    sb.AppendLine(type.FullName);
                    h = true;
                }
                if (typeof(Core.Packer).IsAssignableFrom(type) && type != typeof(Core.Packer))
                {
                    Packers.Add(Activator.CreateInstance(type) as Core.Packer);
                    sb.AppendLine(type.FullName);
                    h = true;
                }
            }
            if (!h)
            {
                sb.AppendLine("NONE!");
            }
            else
            {
                Plugins.Add(asm.Location);
                Sort();
            }
            if (interact)
            {
                MessageBox.Show(sb.ToString(), "Confuser", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }
Ejemplo n.º 4
0
 public ReplySlot(Packers.AbstractPacker packer)
 {
     type = ReplySlotType.SLOT_EMPTY;
     value = packer;
 }
Ejemplo n.º 5
0
 public FieldInfo(Packers.AbstractPacker keypacker, Packers.AbstractPacker valpacker)
 {
     this.keypacker = keypacker;
     this.valpacker = valpacker;
 }
Ejemplo n.º 6
0
 /// <summary>
 /// specialized version of Add that attempts to infer the packer for 
 /// the key, but the packer for the value must be provided
 /// </summary>
 public void Add(Object key, Object value, Packers.AbstractPacker valpacker)
 {
     Packers.AbstractPacker keypacker = getPackerForBuiltinType (key);
     if (keypacker == null) {
         keypacker = getKeyPacker (key);
     }
     if (keypacker == null) {
         throw new ArgumentException ("cannot deduce key packer, use 4-argument Add()");
     }
     Add (key, keypacker, value, valpacker);
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Adds the given given value (with the given value-packer) under the
 /// given key (with the given key packer) 
 /// </summary>
 /// <param name="key">
 /// The key (any object)
 /// </param>
 /// <param name="keypacker">
 /// The packer for the key (an AbstractPacker)
 /// </param>
 /// <param name="value">
 /// The value (any object)
 /// </param>
 /// <param name="valpacker">
 /// The packer for the value (an AbstractPacker)
 /// </param>
 public void Add(Object key, Packers.AbstractPacker keypacker, Object value, Packers.AbstractPacker valpacker)
 {
     //System.Console.Error.WriteLine("Add: {0}, {1}, {2}, {3}", key, keypacker, value, valpacker);
     if (keypacker == null || valpacker == null) {
         throw new ArgumentNullException ("keypacker and valpacker cannot be null");
     }
     FieldInfo fi = null;
     if (fields.TryGetValue (key, out fi)) {
         fi.keypacker = keypacker;
         fi.valpacker = valpacker;
     } else {
         fields.Add (key, new FieldInfo (keypacker, valpacker));
     }
     data.Add (key, value);
 }