Armenian Knowledge Base  

Go Back   Armenian Knowledge Base > Technical sections > Languages, Compilers, Interpreters
Register

Reply
 
LinkBack Thread Tools
Old 27.08.2002, 16:02   #1
Дошкольник
 
Join Date: 10 2001
Location: Armenia
Posts: 61
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post 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....

Reply With Quote
Old 27.08.2002, 17:41   #2
The Reloaded
 
Aram Hambardzumyan's Avatar
 
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Downloads: 4
Uploads: 0
Reputation: 146 | 4
Post

Quote:
Originally posted by Gevorg:
ved' delete file sidit na etom prerivani... CreateProcess kstati tozhe....
хм.... ну и ну ;( а ты испытывал эти вызовы?
Reply With Quote
Old 27.08.2002, 19:09   #3
Дошкольник
 
Join Date: 10 2001
Location: Armenia
Posts: 61
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

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....

Reply With Quote
Old 28.08.2002, 01:28   #4
Академик
 
W_z_rd's Avatar
 
Join Date: 08 2002
Location: Yerevan, Armenia
Age: 45
Posts: 4,854
Downloads: 1
Uploads: 0
Reputation: 225 | 3
Post

Tak, a chto interesnogo v prerivanii ? Ono delaet chto-to osobennoe ?
Reply With Quote
Old 28.08.2002, 15:30   #5
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Post

Не может быть в Windows приложении вызова прерывания. Я дебагал Kernel32.dll, User32.dll и знаешь нигде нет ни единого вызова int. А знаешь почему? Посмотри книжки по архитектуре - в защишенном режиме - прерывание? В файловых функциях я готов в это поверить, хотя в них тоже нету ни фига подобного. В досе это прерывание ответственно за то, чтобы посмотреть должен ли Дос проверять CRC прочитанного сегмента. В общем - мура.
Reply With Quote
Old 28.08.2002, 16:30   #6
The Reloaded
 
Aram Hambardzumyan's Avatar
 
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Downloads: 4
Uploads: 0
Reputation: 146 | 4
Post

Quote:
Originally posted by Agregat:
Не может быть в Windows приложении вызова прерывания. .... Посмотри книжки по архитектуре - в защишенном режиме - прерывание?
вполне.
Reply With Quote
Old 28.08.2002, 16:59   #7
Дошкольник
 
Join Date: 10 2001
Location: Armenia
Posts: 61
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

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
Reply With Quote
Old 28.08.2002, 17:29   #8
Дошкольник
 
Join Date: 10 2001
Location: Armenia
Posts: 61
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

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... )
Reply With Quote
Old 28.08.2002, 17:49   #9
Дошкольник
 
Join Date: 10 2001
Location: Armenia
Posts: 61
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

To Agregat:

Esli u tebya 2000 to pol'zuysya prerivaniem

int 0x1218

esli NT to napisannym vyshe (0x11f6)

Udachi....................
Reply With Quote
Old 28.08.2002, 21:52   #10
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Post

Ок. Насчет Windows функций, ты прав, show, update и т.д они на самом деле это вызывают, но насчет DeleteFile, CreateProcess ты не прав.
Как прикол в deletefile - e прямо перед
int 2eh стоит jmp addr;
так что, а твой ShowWindow - ничем не отличается от системного.
Да а Windows оня система корявая, но есть в ней и много хорошего.
Да насчет прерываний в защищенном режиме - конечно можно, но не думаю, что желательно дальше vxd и вообще систем ядра работать на прерываниях.
Дебагал я win2000 в основном системные функции, а не оконные посему не видел прерываний.
УДачи.
Reply With Quote
Old 28.08.2002, 22:49   #11
Дошкольник
 
Join Date: 10 2001
Location: Armenia
Posts: 61
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

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....

Reply With Quote
Old 29.08.2002, 02:40   #12
Академик
 
W_z_rd's Avatar
 
Join Date: 08 2002
Location: Yerevan, Armenia
Age: 45
Posts: 4,854
Downloads: 1
Uploads: 0
Reputation: 225 | 3
Post

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.
Reply With Quote
Old 29.08.2002, 02:51   #13
Академик
 
W_z_rd's Avatar
 
Join Date: 08 2002
Location: Yerevan, Armenia
Age: 45
Posts: 4,854
Downloads: 1
Uploads: 0
Reputation: 225 | 3
Post

Kstati, o prerivaniyax 0x2eh v Windows 95 bila celaay kniga "Sekreti Windows 95". Tol`ko zachem vam eto kopanie vo vnutrennostyax Windows 95-98 ?
Reply With Quote
Old 29.08.2002, 16:47   #14
Дошкольник
 
Join Date: 10 2001
Location: Armenia
Posts: 61
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Post

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...
Reply With Quote
Old 30.08.2002, 01:12   #15
Академик
 
W_z_rd's Avatar
 
Join Date: 08 2002
Location: Yerevan, Armenia
Age: 45
Posts: 4,854
Downloads: 1
Uploads: 0
Reputation: 225 | 3
Post

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.
Reply With Quote
Sponsored Links
Reply

Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 15:10.


Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.