ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

01.09.2008, 18:09
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
Подскажите, пожалуйста, можно ли добиться улучшения быстродействия программы, если попутно использовать FPU. То есть, к примеру, я создаю через CreateThead еще поток, делаю в него вставку asm{} и работаю через FPU, пока тоже самое делает центральный процессор. Пишут вроде как при работающем FPU центральный проц работает отдельно. Еще также интересно вот что: количество FPU зависит от количества ядер проца?
Право даже не знал в какой раздел задать вопрос...
|
|
|

01.09.2008, 23:28
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
Только сейчас осознал, что не все написал.
Есть два потока. В первом случае. Они просто суммируют числа. при помощи add. Во втором случае первый поток делает все через add. а второй через fld, fadd, fstp.
Надо сравнить быстродействие.
|
|
|

10.09.2008, 21:53
|
|
студент
Регистрация: 30.07.2007
Сообщений: 800
Провел на форуме: 4275992
Репутация:
1188
|
|
Доброго времени суток.
1)просьба показать пример собственного (програмного) заполнения векторной таблицы прерываний
2)если это возможно, то и смена местами в таблице аппаратные прерывания Nmi и Intr.
хотелось бы увидеть часть кода на асме которая отображает вышеизложенное.
если есть интересные линки по реализации прерываний и их использование на асме буду оч благодарен.
Заранее спасибо.
|
|
|

12.09.2008, 15:40
|
|
Новичок
Регистрация: 13.11.2006
Сообщений: 16
Провел на форуме: 114200
Репутация:
3
|
|
Хай всем, ребят подскажите плз код простенького на асме - хватание аргументов из командной строки и выполнение их в коммандной строке. У мну аргументы не ловит совсем  помогите плз
Код:
C:\masm32\get.exe netstat -a >> C:\log.log
|
|
|

12.09.2008, 16:36
|
|
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме: 2360904
Репутация:
1393
|
|
Сообщение от Cecil B Demented
Хай всем, ребят подскажите плз код простенького на асме - хватание аргументов из командной строки и выполнение их в коммандной строке. У мну аргументы не ловит совсем  помогите плз
Код:
C:\masm32\get.exe netstat -a >> C:\log.log
Не понял вопроса, но мб invoke WinExec,...
Последний раз редактировалось z01b; 12.09.2008 в 18:50..
|
|
|

12.09.2008, 18:53
|
|
Познающий
Регистрация: 08.08.2008
Сообщений: 55
Провел на форуме: 369629
Репутация:
54
|
|
GetCommandLine, откидуешь имя файла, чтоб остались только аргументы(вручную либо CommandLineToArgvW+lstrcatW, либо исчо както). то, что получицо пинаешь в WinExec
|
|
|

13.09.2008, 11:27
|
|
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме: 1777055
Репутация:
347
|
|
GetCommandLine, откидуешь имя файла, чтоб остались только аргументы(вручную либо CommandLineToArgvW+lstrcatW, либо исчо както). то, что получицо пинаешь в WinExec
WinExec неудобно использовать вместе с CommandLineToArgvW, потому что нет версии WinExec для юникода.
Можно использовать следующий код:
Код:
.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\shell32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\shell32.lib
.data?
argc dd ?
st_info STARTUPINFO <>
pr_info PROCESS_INFORMATION <>
.code
start:
invoke GetCommandLineW
invoke CommandLineToArgvW, eax, addr argc
mov esi, eax
mLoop:
dec argc
cmp argc, 0
je mQuit
add esi, 4
invoke RtlZeroMemory, addr pr_info, sizeof pr_info
invoke RtlZeroMemory, addr st_info, sizeof st_info
mov st_info.cb, sizeof st_info
mov edx, [esi]
invoke CreateProcessW, 0, edx, NULL, NULL, FALSE, 0, NULL, NULL, addr st_info, addr pr_info
invoke WaitForSingleObject, pr_info.hProcess, INFINITE
invoke CloseHandle, pr_info.hProcess
invoke CloseHandle, pr_info.hThread
jmp mLoop
mQuit:
invoke ExitProcess, 0
end start
но тогда запускать надо примерно так:
Код:
startproc "netstat /a" >> log.txt
|
|
|

13.09.2008, 12:51
|
|
Познающий
Регистрация: 08.08.2008
Сообщений: 55
Провел на форуме: 369629
Репутация:
54
|
|
и как CreateProcess должен реагировать, когда получает комманду на запуск >> ?
Код:
format PE GUI 4.0
include '%fasminc%/win32a.inc'
section '.code' code readable writeable executable
fmt db "%s %ws",0
szfile db "12345.bat",0
entry $
;получить и разделить аргументы
invoke GetCommandLineW
push eax
invoke CommandLineToArgvW, eax, esp
lea esi,[eax+4]
pop edi
;выделить строку под склеенные аргументы
invoke VirtualAlloc,0,1000h,MEM_COMMIT+MEM_RESERVE,PAGE_READWRITE
mov ebx,eax
test eax,eax
jz .exit
;склеить аргументы(кроме нулевого)
@@:
sub edi,1
jz @f
lodsd
cinvoke _snprintf,ebx,1000h,fmt,ebx,eax
jmp @b
@@:
;сздать батник
add ebx,1
sub esp,sizeof.OFSTRUCT
invoke OpenFile,szfile,esp,OF_CREATE
mov esi,eax
add esp,sizeof.OFSTRUCT
;записать туда строку
invoke lstrlen,ebx
invoke WriteFile,esi,ebx,eax,esp,0
invoke CloseHandle,esi
;запустить
invoke WinExec,szfile,SW_HIDE
invoke VirtualFree,ebx,0,MEM_RELEASE
;удалить
invoke DeleteFile,szfile
.exit:
invoke ExitProcess,0
data import
library kernel32,'KERNEL32.DLL',\
kernel32w,'KERNEL32.DLL',\
user32,'USER32.DLL',\
shell32,'shell32.dll',\
ntdll,'ntdll.dll'
include '%fasminc%\apia\comdlg32.inc'
include '%fasminc%\apia\user32.inc'
include '%fasminc%\apia\kernel32.inc'
import shell32,\
CommandLineToArgvW,'CommandLineToArgvW'
import kernel32w,\
GetCommandLineW,'GetCommandLineW'
include '%fasminc%\ntdll.inc'
end data
|
|
|

13.09.2008, 13:56
|
|
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме: 1777055
Репутация:
347
|
|
и как CreateProcess должен реагировать, когда получает комманду на запуск >> ?
никак, потому что он ее не получает. Можешь проверить, GetCommandLineW возвращает строку без >>
создавать батник - это уже совсем неоптимально. Например если не будет прав на запись в текущую директорию то утилита не сработает
использовать VirtualAlloc для выделения небольших объемов памяти не очень правильно, т.к. размер выравнивается по размеру страницы
Последний раз редактировалось bons; 13.09.2008 в 14:09..
|
|
|

13.09.2008, 14:14
|
|
Познающий
Регистрация: 08.08.2008
Сообщений: 55
Провел на форуме: 369629
Репутация:
54
|
|
никак, потому что он ее не получает, поэтому и нужны кавычки.
насколько йа понимаю >> это жизненно важный оператор в данной строке, который указывает, что надобы записать вывод нетстата в файл. будет ли достигнут этот результат при использовании твоей проги - нет.
а >> криэтпроцес получает на втором витке цикла.
использовать VirtualAlloc для выделения небольших объемов памяти не очень правильно
а йа вроде и выделяю 4кб строницу, в чем вопрос?
создавать батник - это уже совсем неоптимально. Например если не будет прав на запись в текущую директорию то утилита не сработает
оптимальнее самому выявлять >, >> и подобные штуки и соответствующим образом на них реагировать?
сделой, чтоб создовалось в темпе, туда доступ вроде как всегда есть.
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Вопросы для новичков! (faq)
|
PEPSICOLA |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
92 |
14.05.2010 17:59 |
|
ОС с нуля
|
z01b |
С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby |
36 |
03.07.2008 15:30 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|