Все комментарии

Новое на форуме

Комментариев 3
Время добавления 10:39
jonthedon486

Внимание! Если Вы видите рекламму на нашем ресурсе, установите для вашего браузера расширение Adblock Plus | AdBlocker Ultimate | Блокировщик |

[C#] Dnlib - создание массива строк

Увеличенное изображение

Мб кому надо (например для обфускатора)

Код
public static void InjectArray(string[] array, FieldDef field, ModuleDef module, MethodDef method)
  {
  Importer importer = new Importer(module);
  ITypeDefOrRef stringRef = importer.Import(typeof(string));

  method.Body.Instructions.Insert(0, new Instruction(OpCodes.Ldc_I4, array.Length));
  method.Body.Instructions.Insert(1, new Instruction(OpCodes.Newarr, stringRef));

  int b = 0;

  for (int i = 0; i < array.Length; i++)
  {
  method.Body.Instructions.Insert(b + 2, new Instruction(OpCodes.Dup));
  method.Body.Instructions.Insert(b + 3, new Instruction(OpCodes.Ldc_I4, i));
  method.Body.Instructions.Insert(b + 4, new Instruction(OpCodes.Ldstr, array[i]));
  method.Body.Instructions.Insert(b + 5, new Instruction(OpCodes.Stelem_Ref));

  b += 4;
  }

  method.Body.Instructions.Insert(b + 2, new Instruction(OpCodes.Stsfld, field));
  }


(значение присваивается фиелду, а не локальной переменной)
Информация:
Посетители, находящиеся в группе Гости, не могут скачивать файлы с данного сайта.

Пароль к архивам: ComInet



28 Мар 2021 09:59 丨 Загрузок: 0 Просмотров: 527 Комментарий: (0)

Автор материала
...
Логин на сайте: ...
Группа: ...
Статус: ...

Категория

Поделись с друзьями

Может быть интересно

Zoomed
Zoomed
Zoomed
Комментариев: 0
avatar