bomzzz
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ; =============================================================== ; =============================================================== .386 ; процессор .model flat,stdcall ; память плоская, stdcall определяет порядок передачи параметров слева-направо, а также что будет балансировать стек после вызова функции option casemap:none ; в этой программе важны регистры букв ; =============================================================== include \masm32\include\windows.inc ; библиотеки используемые программой include \masm32\include\user32.inc include \masm32\include\kernel32.inc include \masm32\include\shell32.inc include \MASM32\include\wininet.inc include \MASM32\INCLUDE\shlwapi.inc includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\shell32.lib includelib \MASM32\lib\wininet.lib ; точка с запятой отделяют ремарки от основного кода программы includelib \MASM32\LIB\shlwapi.lib ; =============================================================== .data ; секция данных String db 'Текстовый документ Текстовый документ Текстовый документ.txt',0 ;String db '[RuTor.Org]Карьера_охранника_Де.torrent',0 ;String db '',0 ;String db '[RuTor.Org]Insadong_Scandal.torrent[RuTor.Org]Insadong_Scandal.torrent',0 ;String db 'Текстовый документ Текстовый документ Текстовый документ.txt',0 ;String db 'АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЭэЮюЯяЫыЪъЬь',0 ;String db 'АаБбРРІР“РіР”РґР•РµРЃС‘Р–Р¶Р—Р·Р˜РёР™Р№РљРєР›Р»РњРјРќРЅРћРѕРџРїР СЂРЎСЃРўС‚РЈСѓР¤С„РҐС…Р¦С†Р§С‡РЁС€Р©С‰Р-эЮюЯяЫыЪъ',0 ; =============================================================== .data? ; секция с неинициализированными данными, они не включается в исполняемый файл и появляется только тогда, когда программа загружается в память PointToString dd ? COnvertBuffer db INTERNET_MAX_URL_LENGTH dup (?) db INTERNET_MAX_URL_LENGTH dup (?) COnvertBufSize dd ? COnvertStrSize dd ? ; =============================================================== .code ; начало кода start: ; старт mov PointToString, offset String invoke lstrlen,PointToString mov COnvertStrSize, eax invoke MultiByteToWideChar, CP_UTF8, 0, PointToString, COnvertStrSize, COnvertBufSize, 0 mov COnvertBufSize, eax invoke MultiByteToWideChar, CP_UTF8, 0, PointToString, COnvertStrSize, addr COnvertBuffer, COnvertBufSize invoke WideCharToMultiByte,CP_ACP,0,addr COnvertBuffer,COnvertBufSize,PointToString,COnvertStrSize,0,0 mov eax, COnvertBufSize lea ebx,String add eax, ebx mov byte ptr [eax], 0 invoke MessageBox,0,addr String,0,0 invoke ExitProcess,0 ; выходим из программы, eax - код возврата end start ; конец ассемблирования |