 |
Windows i prerivaniyia |
 |
27.08.2002, 15:02
|
#1
|
Дошкольник
Join Date: 10 2001
Location: Armenia
Posts: 61
Rep Power: 0
|
Windows i prerivaniyia
V Window NT,2000,XP est' interesnie prerivaniya ...
Pervaya iz nix eto: int 2eh. Eto prerivanie vyzyvaetsya iz lyuboi funkcii i na nem sidyat vse servici systemy. Ono dostupno vsem bez ogranicheniya ot sistemnix API do template Userov...
Eto prerivanie ochen' napominaet DOS-ovski int 21h.
Pri etom ne izvestno kak, no sistema opredelyaet interrupt sdelannyi iz main i intterupt sdelannih ne iz main funkcii.
Esli sdelano iz main to prosto ignariruet.
Ya poproboval vse znacheniya registrov i steka (v razumnix predelax) skopirovat' dlya call-a iz main slovno eto call iz funkcii...i ne vyshlo.
Ya napisal neskol'ko funkcih pol'zuyas' etim prerivaniem:
ShowWindow, UpdateWindow, GetMessage, TranslateMessage, DispatchMessage....
tak kak mne nravilos'
Est' strannaya shtuka u systemi net vozmozhnosti opredelit' ot kokogo usera isxodit eto prerivanie... (ono opredelyaet tol'ko ot main eto ili drugoi funkcii) nu ostal'noe podumayte sami... ved' delete file sidit na etom prerivani... CreateProcess kstati tozhe....
|
|
|
 |
27.08.2002, 16:41
|
#2
|
The Reloaded
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
|
Quote:
Originally posted by Gevorg:
ved' delete file sidit na etom prerivani... CreateProcess kstati tozhe....
|
хм.... ну и ну ;( а ты испытывал эти вызовы?
|
|
|
27.08.2002, 18:09
|
#3
|
Дошкольник
Join Date: 10 2001
Location: Armenia
Posts: 61
Rep Power: 0
|
Chestno govorya ya tol'ko proboval
ShowWindow, UpdateWindow, GetMessage, TranslateMessage, DispatchMessage.
ShowWindow naprimer vyglyadit tak
void myShowWindow(void *hwnd, int ncmd)
{
mov eax,0x11f6
lea edx,hwnd
int 0x2e
}
znachenie ncmd beret iz steka, ya proveryal
Ostal'nie funkcii trudnodostupny iz za nedocumentirovannosti parametrov. Dlya etogo nuzhen chatel'ni debug....
Est' tam esho prerivaniya int 2bh i int 2dh tozhe otkrytye... no ya poka ne ponyal dlya chevo oni... int 2dh skoree dlya proverki privilegih no ya ne uveren....
|
|
|
28.08.2002, 00:28
|
#4
|
Академик
Join Date: 08 2002
Location: Yerevan, Armenia
Age: 53
Posts: 4,854
Rep Power: 5
|
Tak, a chto interesnogo v prerivanii ? Ono delaet chto-to osobennoe ?
__________________
Женщин не надо понимать, их надо любить!
|
|
|
28.08.2002, 14:30
|
#5
|
Грустно...
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 43
Posts: 21,717
Rep Power: 9
|
Не может быть в Windows приложении вызова прерывания. Я дебагал Kernel32.dll, User32.dll и знаешь нигде нет ни единого вызова int. А знаешь почему? Посмотри книжки по архитектуре - в защишенном режиме - прерывание? В файловых функциях я готов в это поверить, хотя в них тоже нету ни фига подобного. В досе это прерывание ответственно за то, чтобы посмотреть должен ли Дос проверять CRC прочитанного сегмента. В общем - мура.
|
|
|
28.08.2002, 15:30
|
#6
|
The Reloaded
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
|
Quote:
Originally posted by Agregat:
Не может быть в Windows приложении вызова прерывания. .... Посмотри книжки по архитектуре - в защишенном режиме - прерывание?
|
вполне.
|
|
|
28.08.2002, 15:59
|
#7
|
Дошкольник
Join Date: 10 2001
Location: Armenia
Posts: 61
Rep Power: 0
|
To Agregat:
Znaesh ti navernoe delal Debug Windows 98 ili Windows 3.1
Poprobuy vyzvat' function myShowWindow vmesto ShowWindow pod NT ili 2000.
I esho ne delay prezhdevremennyx vyvodov shtoby potom lyshny raz ne izvenyatsya
|
|
|
28.08.2002, 16:29
|
#8
|
Дошкольник
Join Date: 10 2001
Location: Armenia
Posts: 61
Rep Power: 0
|
To: W_z_rd
V interruptax net nichego osobennogo... I lyubaya sistema mozhet pozvolit' sebe prerivaniya... Nu vot vopros kak systeme razlichit ot kogo isxodyat eti prerivaniya...
Vopros imenno v etom i sostoit est' v Windows takoi mechanizm ili net?
Esli net to eto koshmar potomu shto vse servic-i sidyat na etom prerivanii...  )
|
|
|
28.08.2002, 16:49
|
#9
|
Дошкольник
Join Date: 10 2001
Location: Armenia
Posts: 61
Rep Power: 0
|
To Agregat:
Esli u tebya 2000 to pol'zuysya prerivaniem
int 0x1218
esli NT to napisannym vyshe (0x11f6)
Udachi....................
|
|
|
28.08.2002, 20:52
|
#10
|
Грустно...
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 43
Posts: 21,717
Rep Power: 9
|
Ок. Насчет Windows функций, ты прав, show, update и т.д они на самом деле это вызывают, но насчет DeleteFile, CreateProcess ты не прав.
Как прикол в deletefile - e прямо перед
int 2eh стоит jmp addr;
так что, а твой ShowWindow - ничем не отличается от системного.
Да а Windows оня система корявая, но есть в ней и много хорошего.
Да насчет прерываний в защищенном режиме - конечно можно, но не думаю, что желательно дальше vxd и вообще систем ядра работать на прерываниях.
Дебагал я win2000 в основном системные функции, а не оконные посему не видел прерываний.
УДачи.
|
|
|
28.08.2002, 21:49
|
#11
|
Дошкольник
Join Date: 10 2001
Location: Armenia
Posts: 61
Rep Power: 0
|
Chestno govorya ya sam ni proboval CreateProcess... No gde to bylo opisano kakie parametry peredat' stoby CreateProcess rabotal s etogo prerivaniya... Ya poprobuyu potom skazhu
Eto ne tak vazhno... ved' cel' nasha ne v tom shtoby delat' tak shtoby windows ne rabotal, a ponyat' kak ono rabotaet...
Na shet Windows 2000 ya poshutil... prosto ya smotrel Disassembler NtDLL.dll-a tam po kraynoi mere 200 int 2e... i ya celih den' izuchal kuda kakaya funciya idet..
I eshoh esli intersno: to est'esho neskol'ko prerivanih kotorie delayut neizvestno shto, vrode acces-i proveryaut ili shto to v etom rode....
|
|
|
29.08.2002, 01:40
|
#12
|
Академик
Join Date: 08 2002
Location: Yerevan, Armenia
Age: 53
Posts: 4,854
Rep Power: 5
|
Quote:
Originally posted by Gevorg:
To: W_z_rd
V interruptax net nichego osobennogo... I lyubaya sistema mozhet pozvolit' sebe prerivaniya... Nu vot vopros kak systeme razlichit ot kogo isxodyat eti prerivaniya...
Vopros imenno v etom i sostoit est' v Windows takoi mechanizm ili net?
Esli net to eto koshmar potomu shto vse servic-i sidyat na etom prerivanii... )
|
Naskol`ko ya pomnyu (davno eto bilo, kogda ya chital o i386 protected mode) prerivaniya v zashshennom rezhime obrabativayutsya primerno tak zhe, kak i vizovi iz nezashishennogo v zashishenniy rezhim - cherez shlyuzi. T.e. sisteme nichego ne stoit uznat` otkuda, s kakogo urovnya prishel vizov.
__________________
Женщин не надо понимать, их надо любить!
|
|
|
29.08.2002, 01:51
|
#13
|
Академик
Join Date: 08 2002
Location: Yerevan, Armenia
Age: 53
Posts: 4,854
Rep Power: 5
|
Kstati, o prerivaniyax 0x2eh v Windows 95 bila celaay kniga "Sekreti Windows 95". Tol`ko zachem vam eto kopanie vo vnutrennostyax Windows 95-98 ?
__________________
Женщин не надо понимать, их надо любить!
|
|
|
29.08.2002, 15:47
|
#14
|
Дошкольник
Join Date: 10 2001
Location: Armenia
Posts: 61
Rep Power: 0
|
Ya sovershenno soglasen shto mozhno opredelit' po interruptu iz kakoi chasti koda ili iz kakogo ringa ona prishlo...
Vopros v etom i sostoit proveryaet li Windows ot kogo isxodit to ili inoe prerivanie... Poka ne edinogo zapreta ya ne vstrechal pol'zuyas' etim interruptom..
Etot interrupt mozhet byt' poslan tol'ko API i skol'ko ya ponimayu net mechanizma opredeleniya ot API ili otkudo to esho ono isxodit...
Esli ne poluchitsya deletfile ili createprocess to ya soglashus' vsyo taki shto systema proveryaet....
Na shet fizicheskix urovnei ya ne uveren shto v Windows ix bol'she chem 2 odno dlya kernel-a drugoe dlya vsex ostal'nix vklyuchaya servici... Esli ne prav ispravte.........
I esho na shet kopaniya: prosto xochitsya uznat' kak systema sdelana...
|
|
|
30.08.2002, 00:12
|
#15
|
Академик
Join Date: 08 2002
Location: Yerevan, Armenia
Age: 53
Posts: 4,854
Rep Power: 5
|
Quote:
Originally posted by Gevorg:
|
Nu, esli interesno - derzay togda. Kazhetsya, Windows ispol`zuet tolko dva urovnya za****i 0 i 3, ostavlyaya ostal`nie urovni dlya prilozheniy. No ne uveren. A otkuda prishel vizov navernyaka proveryaetsya, ne mogli oni TAKUYU diru ostavit`. Xotya.... Microsoft, sam ponimaesh.
__________________
Женщин не надо понимать, их надо любить!
|
|
|
All times are GMT. The time now is 20:30. |
|
|