Metasoubory – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Metasoubory – C / C++ – Fórum – Programujte.comMetasoubory – C / C++ – Fórum – Programujte.com

 

MaS0
Návštěvník
7. 9. 2008   #1
-
0
-

Potřeboval bych vědět, zda jde ve Windows spustit už vytvořený program tak, aby místo na obrazovku zobrazoval informace do matasouboru ....(nevím, jestli je to vůbec možné) .... a taky jestli jde okno minimalizovat tak, že je vidět jen ta malá ikonka na liště vedle hodin ..................díky za radu

Nahlásit jako SPAM
IP: 195.146.114.–
KIIV
~ Moderátor
+43
God of flame
7. 9. 2008   #2
-
0
-

nevim jestli chapu presne ale da se udelat presmerovani vystupu... pokud je to konzolovej program...
prog.exe >vystup.txt

pokud je to neco jinyho tak tezko rict...

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
MaS0
Návštěvník
7. 9. 2008   #3
-
0
-

To KIIV : Mám na mysli program ve WinAPI nebo MFC.

Nahlásit jako SPAM
IP: 195.146.114.–
Jura
~ Anonymní uživatel
637 příspěvků
7. 9. 2008   #4
-
0
-

To MaS :

Zdravím,

pokud ti jde o to minimalizovat ikonu do traye, tak se koukni zde:

http://www.builder.cz/art/cpp/win_api_24.html

Nahlásit jako SPAM
IP: 85.207.192.–
MaS0
Návštěvník
7. 9. 2008   #5
-
0
-

To Jura : Teď už jen zjistit, jestli jde to první .... myslim to tak, jestli nejde nějak aby to okno nebylo vidět, ale dalo se pomocí nějakýho kódu zjistit, co zobrazilo.

Nahlásit jako SPAM
IP: 195.146.114.–
dannyk0
Věrný člen
8. 9. 2008   #6
-
0
-

Ziskat handle sveho okna a schovat ho.A pro vypis pouzit primo nejakou funkci pro zapis do souboru.

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
MaS0
Návštěvník
8. 9. 2008   #7
-
0
-

To dannyk : Ne, Ja myslim jako z programu pustit jinou aplikaci a schovat ji, a pomocí nějaké funkce zjistit co zobrazila.

Nahlásit jako SPAM
IP: 195.146.114.–
dannyk0
Věrný člen
8. 9. 2008   #8
-
0
-

Aha,no tim handlem by slo ji schovat,ale jak presmerovat jeji vystup me tedka jaksi moc nenapada.Max ji hooknout funkce,ktere pouziva pro vypis a ziskat z nich data.

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
MaS0
Návštěvník
8. 9. 2008   #9
-
0
-

To dannyk : No mě třeba napadlo jestli není nějaká funkce, která by mohla ovlivnit jak třeba Windows reaguje, když chce ta aplikace získat kontext zařízení obrazovky, aby pak dostal třeba adresu toho metasouboru.

Nahlásit jako SPAM
IP: 195.146.114.–
dannyk0
Věrný člen
9. 9. 2008   #10
-
0
-

To se prave nazvya hookovani.Po provedeni hooku si nastavis,co se ma provest,kdyz se dana funkce vola a nejak ji ovlivnit.Ale neni to nic lehkyho a jestli si chces zaznamenavat samotny vykreslovani,tak teda nevim presne,jaky api odchytavat.A navic,pokud je OS dost chytry,tak to nemusi vykreslovat vubec,pokud rozpoznava,ze je okno skryte.

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
MaS0
Návštěvník
9. 9. 2008   #11
-
0
-

To dannyk : Tak nešlo by to nějak nahookovat, aby se při získávání kontextu vytvořilo kompatibilní DC, aplikace ho používala místo normálního a taky ho uložila, aby se k němu dalo přistupovat.

Nahlásit jako SPAM
IP: 195.146.114.–
dannyk0
Věrný člen
9. 9. 2008   #12
-
0
-

Tohle uz jsou docela hodne tezke cary mary a vyzadovalo by to hodne studovani.Navic funkci pro GDI kresleni je strasne moc a vsechno odhookovat by byl problem.

Ale mam dojem,ze jsem kdysi videl nejaky zdrojovy kod,ktery dokazal udelat screen nejakeho programu(neco jako hypesnap dx).Ale porad narazim na problem,ze to nic nevykresli,kdyz to okno bude schovane.

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
MaS0
Návštěvník
9. 9. 2008   #13
-
0
-

To dannyk : Vždyť by nemuselo být schovaný, stačilo by, kdyby se zapisovalo jen do kompatibilního kontextu zařízení, jako třeba když se načítá bitmapa (nevim jak v API ale v MFC nejdřív se ta bitmapa nahraje do kompatibilního kontextu zařízení a až pak ten se pak zkopíruje na obrazovku, takže by stačilo kdyby se na tu obrazovku nezkopíroval, ale třeba uložil)

CBitmap bmp;

void CBlat2View::OnDraw(CDC* pDC)
{
CDC dcMemory;
dcMemory.CreateCompatibleDC(pDC);
CBitmap* pOldBitmap = dcMemory.SelectObject(&bmp);

// Copy the bits from the in-memory DC into the on-
// screen DC to actually do the painting. Use the centerpoint
// we computed for the target offset.
pDC->BitBlt(nX, nY, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory,
0, 0, SRCCOPY);

}

takže kdyby se v tej přehookovanej funkci získal normální kontext zařízení, podle něj by se vytvořil kompatibilní, pak by se ten normální smazal a zůstal by jen ten kompatibilní, kterej by se používal, tak by se to teoreticky ani na tu obrazovku zobrazovat nemuselo?

Nahlásit jako SPAM
IP: 195.146.114.–
dannyk0
Věrný člen
9. 9. 2008   #14
-
0
-

To asi nemuselo,ale tohle je trochu uz mimo me znalosti a musel bych si problem nejak presneji prostudovat.Urcite to bude s tema device contextama a vykreslovanim,ale fakt nevim vsechny potrebne api funkce.Vidim to na jednu krasnou teplou noc stravenou nad MSDN :)

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
MaS0
Návštěvník
10. 9. 2008   #15
-
0
-

To dannyk : To já jen plácám co mě zrovna napadne, takže jsou nejspíš velký bláboly .... Jen mě ještě zajímá, jak poznám jestli byl ten program napsán ve WinAPI ? (nebo to přehookování těch funkcí pro zisk kontextu platí pro všechny knihovny a tak?)

Nahlásit jako SPAM
IP: 195.146.114.–
dannyk0
Věrný člen
10. 9. 2008   #16
-
0
-

Tohle uz zavani reverznim inženýrstvím.Pomoci nejakeho nastroje na vypis importovanych metod zjistis,jake funkce dany program pouziva.Zvladne to napriklad PE Explorer:



http://www.heaventools.com/


Tam si nech vypsat list Importu a uvidis,kolik winapi a jakych funkci program pouziva.Jestli je psan "ciste" winapi,tak pak bys mel hledat main funkci pro winapi WinMain,ale ta by mela byt v export listu.

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
MaS0
Návštěvník
10. 9. 2008   #17
-
0
-

To dannyk : Dík moc za pomoc, a když zase něco nebudu vědět, tak se obrátím.

Nahlásit jako SPAM
IP: 195.146.114.–
Quiark0
Věrný člen
11. 9. 2008   #18
-
0
-

Moc jsem to nečetl, ale nešlo by třeba poslat programu zprávu WM_PAINT a jako DC poskytnout nějaké svoje vlastní (ale asi bude problém s předáváním DC a adresy na něj mezi procesy... takže by možná byl potřeba ten hook.. ale ten by mohl tu zprávu poslat).

A každý program, který ve Windows vytváří okna musí používat WinAPI (a to i když používá nějakou mezivrstvu jako Windows.Forms, wxWidgets, GTK apod.)

Nahlásit jako SPAM
IP: 194.212.43.–
dannyk0
Věrný člen
11. 9. 2008   #19
-
0
-

No ten hook na WM_PAINT by mohl jit,ale nenapada me tedka,jak by se tam dalo predat ten DC.

Ano,kazdy program pouziva WinAPI,ale nebylo zde nejak receno,jestli to neni konzolový program.

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
Quiark0
Věrný člen
11. 9. 2008   #20
-
0
-

Aj jo vlastně, DC se s WM_PAINT neposílá... tak to nevim.

No a konzolový program jsem fakt nepředpokládal :)

Nahlásit jako SPAM
IP: 194.212.43.–
MaS0
Návštěvník
11. 9. 2008   #21
-
0
-

já to myslel tak, aby to okno nebylo na monitoru vidět, takže by se předal DC muselo by se ještě nějak skrýt okraje okna, tlačítko zavřít, ...

Nahlásit jako SPAM
IP: 195.146.114.–
KIIV
~ Moderátor
+43
God of flame
12. 9. 2008   #22
-
0
-

proc nepouzijes sdilenou plochu? samo potrebuje to jeste upravit par veci ve win aby se dalo pripojit na jednom pocitaci vicekrat
ale pod jednim uctem to nechas bezet - v druhem to nebude videt ale muzes se kdykoliv prihlasit na ten prvni a kouknout...

Nahlásit jako SPAM
IP: 80.250.27.–
Program vždy dělá to co naprogramujete, ne to co chcete...
dannyk0
Věrný člen
12. 9. 2008   #23
-
0
-

Nj,ale ja mam porad za to,ze pokud system detekuje,ze se to proste nema kreslit na plochu,tak to kresleni preskoci.

S tou dvoji plochou je to zajimavy napad,ale pokud to ma byt univerzalni,tak asi ee.

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
KIIV
~ Moderátor
+43
God of flame
12. 9. 2008   #24
-
0
-

dannyk jen hazu alternativy, ktere me napadaji.. treba se nektera z nich ujme, nebo aspon inspiruje k nejakemu dalsimu napadu

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
dannyk0
Věrný člen
12. 9. 2008   #25
-
0
-

Vsak ja nemam nic proti,ja jen rikam svoje,co si myslim :) Mozna bude nekdo zkusenejsi a rozvede tvuj napad nebo vyvrati moje pochybnosti ;)

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
MaS0
Návštěvník
15. 9. 2008   #26
-
0
-

Ještě bych potřeboval vědět jakej typ háku by se měl použít pro odchytávání WinAPI funkcí?

Nahlásit jako SPAM
IP: 195.146.114.–
dannyk0
Věrný člen
16. 9. 2008   #27
-
0
-

Tak to uz poradne nevim.Nikdy sem nehookoval.Zkusil bych asi google s "winapi hooking" nebo necim podobnym.

Nahlásit jako SPAM
IP: 85.135.97.–
Jedu v c++,c#,assembler,ASP.NET,PHP,databaze,bezpecnost softwaru[br] -----------------------------------------------------------[br] Muj blog o programovani,hudbe a vsem moznem,co najdu na netu :) [br] http://dannyk.aspone.cz[br] -----------------------------------------------------------[br] Na foru mam nejake prispevky pod nickem Master,tak jen pro upresneni :)
Jura
~ Anonymní uživatel
637 příspěvků
16. 9. 2008   #28
-
0
-

Zdravim,

koukam, ze se to tu nejak rozrostlo. No a co se tyka typu haku, tak pokud chces zachytavat i cizi procesy, tak nejlepsi bude asi pouziti globalniho haku(v DLL). Mozna by ti pomohl clanek pana Radka Chalupy

http://www.radekchalupa.cz/clanky/?kod=205&obsah=48

a

ttp://www.radekchalupa.cz/clanky/?kod=205&obsah=47

Nahlásit jako SPAM
IP: 85.207.192.–
Clock
~ Anonymní uživatel
5 příspěvků
4. 10. 2008   #29
-
0
-

To MaS : Obávám se, že žádná API funkce na nastavení DC pro okno není a hook na WM_PAINT zde nepomůže. Ten DC zcela jistě není parametrem WM_PAINT a vzniká již s vytvořením okna tak, aby byl kompatibilní s aktuálním zobrazovacím zařízením, na kterém je okno vytvořeno.
Kreslení do neviditelného okna je problémem, protože WM_PAINT vždy kreslí jen do viditelné části, neviditelné jsou při kreslení oříznuty. Sejmutí obsahu může mít potom za následek nekompletní obraz. Více zde:
http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/b61cba3e-e83d-45da-8604-6eacff76dd94/
1. Jak už tu zaznělo, výstup v bitmapě by znamenal vytvořit pomocnou funkci, která by kreslila obsah do zadaného DC. Pokud by se zavolala obsluha WM_PAINT, jako vstupní parametr této funkce by se vložila hodnota z GetDC(), v případě "sejmutí" by se funkce zavolala s pomocným DC vytvořeným pomocí CreateMemoryDC a z ní následně uložila do souboru.
2. Další podobná možnost je přes WM_PRINT, který má jako vstupní parametr DC, viz zde:
http://www.fengyuan.com/article/wmprint.html
3. Využití funkce CreateEnhMetaFile pro vektorový výstup a přímo vytvoření .emf souboru. Ta funkce vytvoří nový DC, do kterého je možné nakreslit celý obrázek, podobně jako ve funci WM_PAINT.
Všechny tři možnosti předpokládají, že je potřeba uložit jen to, co se kreslí v obsluze WM_PAINT přes DC získaný přes GetDC(). Nebude fungovat zobrazení prvků a podřízených oken, ty se totiž kreslí samostatně.

Nahlásit jako SPAM
IP: 85.71.59.–
MaS0
Návštěvník
6. 10. 2008   #30
-
0
-

a jaká funkce kreslí okraje okna, systémové ikony,...???

Nahlásit jako SPAM
IP: 195.146.114.–
Clock
~ Anonymní uživatel
5 příspěvků
20. 11. 2008   #31
-
0
-

To MaS : Okraje oken, ikony a ostatní podobné věci systém obsluhuje ve funkci DefWindowProc, pokud si je aplikace nekreslí sama. To dovoluje nastavit a jednotně měnit vzhled všech oken ve vlastnostech zobrazení.

Nahlásit jako SPAM
IP: 147.229.145.–
eidam19950
Newbie
23. 11. 2008   #32
-
0
-

A v konzoli to jde hodit do tray? :smile11:

Nahlásit jako SPAM
IP: 193.86.138.–
Hledám vhodný podpis[br]Zn. spěchá
MaS0
Návštěvník
23. 11. 2008   #33
-
0
-

To eidam1995 : pokud jde u konzole získat handle na okno (si nejsem jistej?), tak by to mělo jít jako u normální aplikace, ale ještě jsem to nezkoušel....

Nahlásit jako SPAM
IP: 195.146.114.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 69 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý