• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Unsafe To Safe

  • Автор темы Elephant
  • Дата начала
Статус
Закрыто для дальнейших ответов.
E

Elephant

Как этот код будет выглядеть на C# без использования unsafe?

<!--shcode--><pre><code class='csharp'>for (i=0; i<QueueSz; i++)
{
fixed( byte *tmp0 = ovLaps)
{
OVERLAPPED *ovLapStatus = (OVERLAPPED*) tmp0;
ovLapStatus->hEvent = (uint) PInvoke.CreateEvent(0, 0, 0, 0);
}
}[/CODE]

Спасибо.
 
E

Elephant

этот код читает данные с USB. Это кусок который меня интересует.

Код:
// Setup the queue buffers 
byte[][] cmdBufs = new byte[QueueSize][];
byte[][] xferBufs = new byte[QueueSize][];
byte[][] ovLaps = new byte[QueueSize][];

byte j = 0;
for (j = 0; j < QueueSize; j++)
{
cmdBufs[j] = new byte[BufSize];
xferBufs[j] = new byte[BufSize];
ovLaps[j] = new byte[20];

fixed (byte* tmp0 = ovLaps[j])
{
OVERLAPPED* ovLapStatus = (OVERLAPPED*)tmp0;
ovLapStatus->hEvent = (uint)PInvoke.CreateEvent(0, 0, 0, 0);
}
}

// Pre-load the queue with requests 
int len = BufSize;

for (j = 0; j < QueueSize; j++)
InEndpoint.BeginDataXfer(ref cmdBufs[j], ref xferBufs[j], ref len, ref ovLaps[j]);

И можно было бы массив ovLaps объявить как OVERLAPPED сразу и без указателей, но ф-я BeginDataXfer требует ref byte[] ovLaps.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!