HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #401  
Старый 01.09.2008, 18:09
4p3
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме:
750247

Репутация: 92
Отправить сообщение для 4p3 с помощью ICQ
По умолчанию

Подскажите, пожалуйста, можно ли добиться улучшения быстродействия программы, если попутно использовать FPU. То есть, к примеру, я создаю через CreateThead еще поток, делаю в него вставку asm{} и работаю через FPU, пока тоже самое делает центральный процессор. Пишут вроде как при работающем FPU центральный проц работает отдельно. Еще также интересно вот что: количество FPU зависит от количества ядер проца?

Право даже не знал в какой раздел задать вопрос...
 
Ответить с цитированием

  #402  
Старый 01.09.2008, 23:28
4p3
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме:
750247

Репутация: 92
Отправить сообщение для 4p3 с помощью ICQ
По умолчанию

Только сейчас осознал, что не все написал.

Есть два потока. В первом случае. Они просто суммируют числа. при помощи add. Во втором случае первый поток делает все через add. а второй через fld, fadd, fstp.
Надо сравнить быстродействие.
 
Ответить с цитированием

  #403  
Старый 10.09.2008, 21:53
NetSter
студент
Регистрация: 30.07.2007
Сообщений: 800
Провел на форуме:
4275992

Репутация: 1188


По умолчанию

Доброго времени суток.
1)просьба показать пример собственного (програмного) заполнения векторной таблицы прерываний
2)если это возможно, то и смена местами в таблице аппаратные прерывания Nmi и Intr.
хотелось бы увидеть часть кода на асме которая отображает вышеизложенное.
если есть интересные линки по реализации прерываний и их использование на асме буду оч благодарен.
Заранее спасибо.
 
Ответить с цитированием

  #404  
Старый 12.09.2008, 15:40
Cecil B Demented
Новичок
Регистрация: 13.11.2006
Сообщений: 16
Провел на форуме:
114200

Репутация: 3
По умолчанию

Хай всем, ребят подскажите плз код простенького на асме - хватание аргументов из командной строки и выполнение их в коммандной строке. У мну аргументы не ловит совсем помогите плз


Код:
C:\masm32\get.exe netstat -a >> C:\log.log
 
Ответить с цитированием

  #405  
Старый 12.09.2008, 16:36
z01b
Постоянный
Регистрация: 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..
 
Ответить с цитированием

  #406  
Старый 12.09.2008, 18:53
FrMn
Познающий
Регистрация: 08.08.2008
Сообщений: 55
Провел на форуме:
369629

Репутация: 54
По умолчанию

GetCommandLine, откидуешь имя файла, чтоб остались только аргументы(вручную либо CommandLineToArgvW+lstrcatW, либо исчо както). то, что получицо пинаешь в WinExec
 
Ответить с цитированием

  #407  
Старый 13.09.2008, 11:27
bons
Участник форума
Регистрация: 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
 
Ответить с цитированием

  #408  
Старый 13.09.2008, 12:51
FrMn
Познающий
Регистрация: 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
 
Ответить с цитированием

  #409  
Старый 13.09.2008, 13:56
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

Репутация: 347
По умолчанию

Цитата:
и как CreateProcess должен реагировать, когда получает комманду на запуск >> ?
никак, потому что он ее не получает. Можешь проверить, GetCommandLineW возвращает строку без >>


создавать батник - это уже совсем неоптимально. Например если не будет прав на запись в текущую директорию то утилита не сработает

использовать VirtualAlloc для выделения небольших объемов памяти не очень правильно, т.к. размер выравнивается по размеру страницы

Последний раз редактировалось bons; 13.09.2008 в 14:09..
 
Ответить с цитированием

  #410  
Старый 13.09.2008, 14:14
FrMn
Познающий
Регистрация: 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)
 


Быстрый переход




ANTICHAT.XYZ