в общем-то я хотел вообще-то сделать программу, которая будет по указанному имени длл будет вытягивать все CRC апишек и формировать список в виде: CRC API_name =) может есть пример насчет этого ? ну и собственно после каждой позиции каждой API нужно было переходить на другую строку. Вот поэтому я и завел эту тему
La_plaza "\r\n" в C Return New Line Эскейп символы Хотя это уже объяснил медуза Есть пример кода на С (черновой вариант, но дело сделал, и я его не дорабатывал). Формирует хидер с crc32 кодами всех функций всех дллок системной директории (в виде например {prefix}_{api_name}) %WinDir%\System\System32 Немного переделать, можно и inc сделать
ну да, си - "великий язык"... хоцу на асме короче знаю алгоритм получения CRC апишки, я вот только не пойму как сделать чтобы это все в файл не гамузом записалось, а красиво как раз, вот почему и спрашиваю за перевод каретки и тд гм, получается мне нужно записать имя апи, потом поставить пробел, потом записать CRC и потом поставить пустую строку "\n" и потом выйти в следующий проход поиска CRC ? блин, мне по алгоритму записи строк и перевод каретки не до конца ясен. Нет, я-то могу попытаться сделать как я смогу, но код разползется как хз что, а это имхо не совсем правильно
[offtop_below] Однозначно Видать есть какие-то. Я вообще не заметил поста про поиск конца функции тут. Странно, что человек разбирает ПЕ формат и не понимает простых апишек которые описаны просто всюду. [offtop_above]
Код (Text): .data szFormat db '%s %u',13,10,0 .data? szApiName db 64 dup (?) ; буфер для имени API CRC dd ? ; сюда положишь результат вычисления CRC .code invoke wsprintf, addr szOutbuffer, addr szFormat, addr szApiName, [CRC] Ещё можно: szFormat db 'Имя API = %s, CRC = %u',13,10,0 ; CRC десятичное szFormat db 'Имя API = %s, CRC = %x',13,10,0 ; CRC в hex
точнее во так: Код (Text): .data szFormat db '%s %u',13,10,0 .data? szApiName db 64 dup (?) ; буфер для имени API CRC dd ? ; сюда положишь результат вычисления CRC .code mov edi, offset szOutbuffer ; api не изменяют edi, esi, ebx, ebp @@: ; цикл вывода API и CRC ... invoke wsprintf, edi, addr szFormat, addr szApiName, [CRC] add edi, eax ; дописывать следующую строковую конструкция в хвост предидущей ... jxx @B
да в том-то и заключается мой оленизм. Я разбираю серьезные вещи, а простых навыков программирования у меня нехватает. Вот хочу исправится и пару десятков небольших прожек сделать.
ПЕ - это не серьезные вещи уж точно, просто видать русский ближе. чтобы сделать переход на новую строку нужно в конце строки ставить "\n", а если думаете писать 13, 10 то вообще все символы пишите в 10й системе, ну чтобы это - "типа круче было". Если UNICODE кодировку позже будете использовать, тоже так писать будете?
Да вирусы, PE и даже драйвера всё это детский лепет в сравнении с мировой революцией. Взять какой нибудь по-настоящему крутой продукт который разрабатывается кучей народу годами (напирмер игры), вот это действительно сложно.
K10 Спорить не буду \return \new line \tab и т.п. возможно действительно хрен разберешь по сравнению с десятичными цифрами 10 13 и т.п.
\n есть только в Си и ему подобных ЯП. В других ЯП такого нет, и ничего, пишут же люди както, и с юникодом пишут...
GoldFinch Сейчас разговор о конкретных апи. Это они обрабатывают эти эскейп последовательности. Не нужно смешивать все подряд - думайте сначала. Языки тут вообще не причем.
эм.... wsprintf не обрабатывает эскейп последовательности, разве что %%... их компилятор или препроцессор си обрабатывает вроде как...
GoldFinch Все ясно. Жесть какая-то. wsprintf(A/W) функции user32.dll Эти "глупости" отсюда Эскейп последовательности - сюда