Существует ли модуль Perl, который может автоматизировать ollydbg?

Серьезно задержанное редактирование: при использовании.NET 4.0 или позже

File, класс имеет новое ReadLines метод, который лениво перечисляет строки вместо того, чтобы жадно читать их всех в массив как ReadAllLines. Таким образом, теперь у Вас могут быть и эффективность и краткость с:

var lineCount = File.ReadLines(@"C:\file.txt").Count();

Исходный Ответ

, Если Вы не слишком побеспокоены об эффективности, можно просто записать:

var lineCount = File.ReadAllLines(@"C:\file.txt").Length;

Для более эффективного метода Вы могли сделать:

var lineCount = 0;
using (var reader = File.OpenText(@"C:\file.txt"))
{
    while (reader.ReadLine() != null)
    {
        lineCount++;
    }
}

Редактирование: В ответ на вопросы об эффективности

причина я сказал, что второе было более эффективным, расценивал использование памяти, не обязательно скорость. Первый загружает все содержание файла в массив, что означает, что это должно выделить, по крайней мере, столько же памяти сколько размер файла. Второе просто циклично выполняет одну строку за один раз, таким образом, она никогда не должна выделять ценность больше чем одной строки памяти за один раз. Это не настолько важно для маленьких файлов, но для больших файлов это могла быть проблема (при попытке найти количество строк в файле на 4 ГБ в 32-разрядной системе, например, где просто нет достаточного адресного пространства непривилегированного режима для выделения массива это большое).

С точки зрения скорости я не ожидал бы там быть много в нем. Возможно, что ReadAllLines имеет некоторые внутренние оптимизации, но с другой стороны этому, вероятно, придется выделить крупный блок памяти. Я предположил бы, что ReadAllLines мог бы быть быстрее для маленьких файлов, но значительно медленнее для больших файлов; хотя единственный способ сказать состоял бы в том, чтобы измерить его с Секундомером или кодировать профилировщика.

5
задан Ira Baxter 17 December 2009 в 02:14
поделиться

1 ответ

При поиске в Google появляется следующее:

Обратите внимание, что это из 2005 года и предоставляет это описание:

Perl-скрипты для OllyDbg API, код качества Alpha, используйте на свой страх и риск. Требуется ActivePerl.

В пакет также включен wavediff.pl, PoC-реализация анализа двоичной разности через фазовую компенсацию.

6
ответ дан 14 December 2019 в 13:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: