Сейчас на форуме: asfa, bartolomeo (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Какими вариантами отлова событий вы пользуетесь ?
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 февраля 2012 16:09 · Поправил: stdio
· Личное сообщение · #1

Вот решил написать батник который будет следить за некоторыми процессами и событиями которые запускались на машине в моё отсутствие.


что то типа этого:

:test
if exist "событие"
sleep 10
goto test
:go
echo "запушена программа...." >> c:\sobitie.txt

Вот только одна проблема, как же мне лучше всего отслеживать процессы и события в моём батнике? Подскажите кто в курсе, пожалуйста)
Я не зацикливаюсь на этом батнике. На самом деле интересно как можно перехватывать системные сообщение? как избежать этого? видь в защищённой программе может стоять запрет на вызов отладчиков и т.п.



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 13 февраля 2012 17:46
· Личное сообщение · #2

какие процессы и какие события?
может лучше не парить себе и другим мозг - и взять какой-нибудь уже готовый шпион, типа StaffCop ?



Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 февраля 2012 18:14
· Личное сообщение · #3

К примеру запущен ли браузер...а вот взять готовую программу конечно же можно, только так не учатся.
Чтоб было более понятен вопрос переформулирую..

"Как программно( в C++,Ассемблере в чём угодно) отслеживать запуск какой либо программы?"



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 13 февраля 2012 18:19
· Личное сообщение · #4

Ну, к примеру перехват CreateProcessA/W. Или вообще перехват любых API.

У вас вообще какие-нибудь знания в программировании есть? потому что bat-файлы (которые "батники"), и программирование - вообще очень сильно отличаются друг от друга



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 13 февраля 2012 18:26
· Личное сообщение · #5

CreateToolhelp32Snapshot
Process32First
Process32Next
и следить за появлением новых процессов.



Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 февраля 2012 18:32
· Личное сообщение · #6

Знания только на начальном этапе, а взять готовое не сильно отличается от программирования?
На самом деле спасибо за советы, сейчас же приступлю к изучению ваших советов. Надеюсь что нибудь для себя найти.



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 13 февраля 2012 18:40
· Личное сообщение · #7

читайте и просвещайтесь http://www.wasm.ru/series.php?sid=8
но это не для нулевых знаний в программировании



Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 февраля 2012 18:56
· Личное сообщение · #8

нашёл интересную команду tasklist
как теперь из полученного списка запущенных процессов найти тот что мне нужен?



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 13 февраля 2012 19:28
· Личное сообщение · #9

tasklist | findstr /I "skype" ;)

| Сообщение посчитали полезным: stdio


Ранг: 57.3 (постоянный), 67thx
Активность: 0.060
Статус: Участник

Создано: 13 февраля 2012 19:44
· Личное сообщение · #10

А скажите, какой апишкой можно узнать инфу о материнке и есть ли такая?



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 13 февраля 2012 20:08
· Личное сообщение · #11

-Sanchez- пишет:
А скажите, какой апишкой можно узнать инфу о материнке и есть ли такая?

Такой нету, смотри тут http://exelab.ru/f/action=vthread&forum=2&topic=19559
начиная с 00549860 как реализовано получение инфы о материнке.

| Сообщение посчитали полезным: -Sanchez-

Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 февраля 2012 20:20
· Личное сообщение · #12

как теперь задать цикл(если найдено то запускается например блокнот)?




Ранг: 164.6 (ветеран), 65thx
Активность: 0.120
Статус: Участник
Волшебник

Создано: 13 февраля 2012 20:31
· Личное сообщение · #13

stdio пишет:
как теперь задать цикл(если найдено то запускается например блокнот)?

Не парся. Послушай лучше советов и начни с начала, с азов.

-----
Следуй за белым кроликом




Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 февраля 2012 20:36
· Личное сообщение · #14

так я и так с озов учу 2й месяц(даже есть успехи но это касается С++)
а тут приспичило написать такое


вот тут я и завис:
:test
tasklist | findstr /I chrome.exe goto find
goto test
:find
notepad
pause




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 13 февраля 2012 20:58
· Личное сообщение · #15

stdio пишет:
так я и так с озов учу 2й месяц(даже есть успехи но это касается С++)

Так пиши на сях значит. Всяко лучше выйдет.

-----
Лучше быть одиноким, но свободным © $me




Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 февраля 2012 21:05
· Личное сообщение · #16

всё равно не сдамся,тем более что осталось только с циклом разобраться



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 13 февраля 2012 21:24
· Личное сообщение · #17

stdio пишет:
tasklist | findstr /I chrome.exe goto find

что за странная конструкция



Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 февраля 2012 21:29
· Личное сообщение · #18

это очень странная конструкция честно говоря просто это один из вариантов что я проверял.
просто даже не знаю как в этом случае ещё перейти на find если искомый прочес будет обнаружен.
перебираю все cmd команды которые чисто теоретически могут сработать в данной схеме.



Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 февраля 2012 23:30
· Личное сообщение · #19

(((((( Я победил её ))))))

:test
tasklist | findstr /I chrome.exe && goto go
goto test
:go
notepad
pause

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



Ранг: 2.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 февраля 2012 00:25
· Личное сообщение · #20

Если кому интересно то вот это вариант не грузит так процессор

:test
tasklist | findstr /I chrome.exe && goto go
timeout /T 3
goto test
:go
notepad


можно регулировать задержку в секундах (у меня задержка =3) timeout /T 3



Ранг: 3.6 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 23 февраля 2012 05:55 · Поправил: kiber_punk
· Личное сообщение · #21

stdio написал:
можно регулировать задержку в секундах (у меня задержка =3) timeout /T 3


Что за команда такая "timeout"?
Win7 или resKIT какой-то. В nt 5.1 таких нету. Вопщем, сторонняя шняга, а это не тру.

Про циклы смотрите FOR /?.
А в плане паузы - "пишем своё".
Погрешность 0.02-0.05 секунды
Об этом говорят отладочные сообщения «типа бенчмарк».

Code:
  1. @echo off
  2. rem эмуляция паузы на BAT без использования сторонних средств
  3. rem /by kiber_punk
  4. :MAIN
  5.          set delay=5
  6.          echo wait [%delay%] sec.
  7.          echo before: %time%
  8.          call :SLEEP %delay%
  9.          echo after:  %time%
  10.          pause
  11. exit/b
  12.  
  13. :SLEEP (second)
  14.          set/a n=%~1+1
  15.          ping -%n% localhost>nul
  16. exit/b


(сама суть - 3 строки - функция sleep, остальное вода)




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 23 февраля 2012 09:46
· Личное сообщение · #22

Лишние посты стёрты, некоторые за нехорошее поведение забанены.



Ранг: 39.7 (посетитель), 4thx
Активность: 0.040.01
Статус: Участник

Создано: 23 февраля 2012 10:59
· Личное сообщение · #23

во как раз что то подобное интересует тоже на самодельном серваке стартуют
nginx.exe
php-cgi.exe
mysqld.exe

restart.cmd
Code:
  1. taskkill //IM nginx.exe
  2. taskkill //IM php-cgi.exe
  3. net stop MySQL
  4.  
  5. start nginx.exe
  6.  
  7. set Path=c:\FastServ\php;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\nls;C:\WINDOWS\system32\nls\RUSSKI
  8.  
  9. cscript.exe php/php-cgiV.js
  10. cscript.exe php/php-cgi_5.2n.js
  11. cscript.exe php/php-cgi_5.2w.js
  12. cscript.exe php/php-cgi_5.3n.js
  13. cscript.exe php/php-cgiV.js
  14. cscript.exe php/php-cgi_5.3w.js
  15.  
  16. rem start /MIN /LOW php\php-cgi.exe -127.0.0.1:9000 -c php\php.ini
  17. set MYSQL_HOME=C:\FastServ\sql\data\&& set PATH=C:\FastServ\sql\bin\;%PATH%;
  18. net start MySQL
  19.  
  20. pause
  21. exit
  22.  


php-cgi.js
Code:
  1. var WSHShell = WScript.CreateObject("WScript.Shell");
  2. WSHShell.Run("php/php-cgi.exe -v -b 127.0.0.1:9000 -c php/php.ini",0);


надо чтоб при падении одного из процессов сервак рестартовал или упавший процесс только
nginx.exe
php-cgi.exe
mysqld.exe




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 23 февраля 2012 14:31
· Личное сообщение · #24

всего не осилил. Топик стартеру будет полезно посмотреть в сторону python.



Ранг: 3.6 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 26 февраля 2012 12:42 · Поправил: kiber_punk
· Личное сообщение · #25

...уфф, потёрли мою мего-креативную мыслю
Повторюсь: наверно cтоит написать "неломающийся" крякмис на «непрограммистском батнике», дабы доказать несостоятельность неуважительного высказывания в сторону Win-batch в #4-м посте.
____________________

Gideon Vi
>>python
А в чём связь между 'способом отлова событий' и 'конкретным языком программирования'?
Не обесутьте, но это каша ниочём и больше похоже на набив ранга через флудеразьм, ИМХО.

«Не читал, но советую ТС'у посмотреть в сторону c\d\d#\.NET\pascal\ruby\basic\fortran\brainfuck\etc»
На что похоже, мм?

Неужели форумачянам известна лишь одна технология детекта событий в системе - хуки в WinAPI?
Ну чтож, приоткрою вам Америку.


Детект закуска процесса (на примере калькулятора).
Никаких компиляторов - запускай дабл'кликом или под cscript.exe.
Event_of_start_process.vbe
Code:
  1. p="calc.exe"
  2.  
  3. #@~^nAEAAA==2{J^mV1R+X+r@#@&k+OPqH(~{PMOr(L+1O~`rhbxhohOk)E#@#@&/Y~n7xY~x,\qc3X+^gWDk0bmmOkKx}EDz~vJ?AJ2;KPC~oI}H,{mqHj:bHZA/IAbP(}12#3gK~Pq(:C(gP8P_2"3P:b]MAK(HUKbg/2,q?z~v&12 mn]6;2j?E~bgf~PzIM3P&1jKzH;2 gbt2'EJ,'PaP'PrBEb@#@&@#@&9r@#@&dU3PPAP{P3.HPc13(:3.A1P@#@&dhd^Mk2Ycn1tG,Pr$J,[,Oks+~[,JD~MEx,OtPJ,'~2cKzI!2P(g?Pbg/2cxCh@#@&7Akm.kaOc+^4W,PPr3b8+M{2E 3~.!V+k~Y4+PSG.V9P=#E@#@&7S/^Db2Yc+^4KPP~@#@&S6rh7i@#@&@#@&5W0AAA==^#~@


Сорц не выкладываю, а то что-то ранг скачет.
кто сломает - во будет классный крякер!




Ранг: 57.7 (постоянный), 49thx
Активность: 0.070
Статус: Участник

Создано: 26 февраля 2012 14:26 · Поправил: inffo
· Личное сообщение · #26

Code:
  1. p="calc.exe"
  2. set WMI = GetObject ("winmgmts:")
  3. set evnt = WMI.ExecNotificationQuery ("SELECT * FROM __INSTANCECREATIONEVENT WITHIN 1 WHERE TARGETINSTANCE ISA 'WIN32_PROCESS' AND TARGETINSTANCE.NAME='" & p & "'")
  4.  
  5. DO
  6.          SET E = EVNT.NEXTEVENT
  7.          wscript.echo  "[" & time & "] run the " & E.TARGETINSTANCE.name
  8.          wscript.echo   "kiber_pu-k rules the world )"
  9.          wscript.echo   
  10. LOOP


Это че я классный крякер

| Сообщение посчитали полезным: kiber_punk

Ранг: 3.6 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 26 февраля 2012 16:29
· Личное сообщение · #27

ха-ха-ха кидисы не дремлют ))
Нет, я имел ввиду дрогое.
пока что совсем не классный, и даже не крякер.

Взять автоматический декодер (много их, в том числе и под моим авторством, да-да), и скопипастить выхлоп дело нехитрое.

Суть-то не раскрыта.
Можете прокомментировать код? (события по моему нас интересовали)




Ранг: 57.7 (постоянный), 49thx
Активность: 0.070
Статус: Участник

Создано: 26 февраля 2012 19:21
· Личное сообщение · #28

kiber_punk а че тут комментировать "выхлоп" на лицо, помоему тут и так понятно, что происходит. Кому не понятно гугл есть



Ранг: 3.6 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 27 февраля 2012 01:26 · Поправил: kiber_punk
· Личное сообщение · #29

inffo:
а че тут комментировать "выхлоп" на лицо, помоему тут и так понятно, что происходит.

ТО ведь не бинарь какой, что же там происходит??

суть событий попрежнему не раскрыта. И гугл тут не помощник

Вам как "взломавшу" скрипт нужно было хотябы озаглавить технологию.
Так Вы ведь даже правильное расширение файла не обозначили.



Ранг: 3.6 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 27 февраля 2012 01:31
· Личное сообщение · #30

но в целом конечно не трушно получилось -
надо было поксорить скрипт, хрен бы кто поломал. А то ишь ты, готовые программки юзать...


. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› Какими вариантами отлова событий вы пользуетесь ?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати