Недавно более-менее изучил ассемблер, решил в качестве практики написать нечто несложное. Получился реггер e-mail адресов для mail.oru.ru. Скрин: Скачать exe вместе с исходниками: Zip Если кому интересно, как это вообще работает, то здесь - подробное описание: тык.
Сначала "Язык ассемблера для процессоров Intel" - Кип Р. Ирвин. А win32 api по примерам, которые в комплект masm32 входят, ну и msdn.
статейка кхороша. прост тож пишу на winAPI все пытаюсь перейти на асм под win32 но чет сложновато, то функции какойнить нет то либы нужной...
Это, как Вы написали ранее "Trojan.Crypt.XPACK.Gen"... думаю всетаки нужно узнать не что это, а происхождение "этого" в соответствующем файле =)))
Автору респект. Сам когдато страдал подобными вещами, типа трасероута на асме и бота. А вообще по мне лучше юзать FASM потому как он вообще не юзается всякого рода либы. Тупо указал какая DLL и какая функция и импорт готов и компилится всё сразу ) А вообще подправь обработку ошибок. А то если инет отключен и ты нажмешь "Начать", он выдаст что неудалось подключиться, а после нажатия ОК прога закрывается
на счет Trojan.Crypt.XPACK.Gen - тут всё ясно и банально. асмовские компиляторы код делают довольно плотный и в частности нестандартный (отличный от С++ и Delphi подобных прог) по этому антивири считают что файл возможно упакован и эмуляция выполнения ничего недает существенного, вот они и орут что типа криптором обработано.
Собери без опции /MERGE:.rdata=.text, и антивири будут молчать. Почему-то отсутствие секции rdata заставляет их думать, что это троян. Да, код там не особо, но сейчас почти доделал с потоками, чтобы форма не подвисала во время общения с сетью, и нормальной обработкой ошибок.
а что это за такой замечательный стиль юзать константные сдвиги относительно угла окна для прорисовки картинки? Делаем статик контрол CONTROL "", <тут ид>, "STATIC", SS_BITMAP | WS_BORDER потом в коде что-то типа такого Code: c:=GetDlgItem(hwnd, <id>); dc := BeginPaint(c, paintstr); GetClientRect(c, DestRC); dw := DestRC.Right-DestRC.Left; dh := DestRC.Bottom-DestRC.Top; BitBlt(...); EndPaint(c, paintstr); по-человечески код наверно всё-таки как-то так выглядеть должен..