wz

Extended Straight Downloader - Nostalgie

Ξ July 22nd, 2007 | → 2 Comments | ∇ Můj soft |

Když jsem se před hodinou pokoušel extrahovat jedno swf pro kivana, použil jsem k tomu jeden můj program, který už používam mooooc dlouho. Uvědomil jsem si, že je to program neskutečně praktický, a jako jediný z mých programů ho používám i já sám. Žádný podobný program neexistuje. Leží mi na disku už od roku 2005 (to je taková doba! To jsem chodil do prváku! Dokážete si to představit?) a přestože je to můj nejpraktičtější a nejunikátnější program, nikdy jsem si nedal tu práci dát ho na web. Když jsem se podíval do jeho zdrojáku, našel jsem tam dokonce jeho aktualizovanou verzi - protože jsem si v té době bral nenávist k bushovi opravdu k srdci, tak jsem na něj tehdy vložil malý banner :).

To je zároveň důkaz pro kivana, že MF Softworks existuje už celou řadu let :D …
Každopádně jsem se rozhodl, že vám tento skvostný program dám k dispozici. Co vůbec dělá a co je na něm tak unikátního? Do prvního pole zadáte url, do druhého soubor a prográmek vám stáhne přesný výstup do souboru, takže můžete stahovat jak soubory, tak třeba neznámé vstupní soubory flashových sajtů (jako byla ta kivanovo sajta). Jak je možné, že tuhle featuru už dávno neobsahují prohlížeče? Vždyť je to přece potřebné, tedy já to shledávám potřebné … nebudu přeci pro každou blbost vytvářet nový soubor s linkem na soubor, abych ho pak otevřel v prohlížeči a kliknul uložit cíl jako.
Program je reglej v MSD, takže žádný kopie se dělat nebudou jasný?! :)

Link pro stažení: http://leviathan.xf.cz/filez/ESD.exe
(k běhu potřebujete msvbvm60.dll, ale od win2k výše je obsažen normálně v základní instalaci windowsů)

 

Microsoft JET databáze, ADO, OLEDB a tvorba slovníku

Ξ July 21st, 2007 | → 4 Comments | ∇ Můj soft |

Leviathanovo osobní zamyšlení:
Ano, ten titulek skutečně vypadá, jako kdybych chtěl vystřískat nějaký návštěvy navíc :). Navíc mě docela štve, že většina posledních článků přispívá k dojmu že tohle je nějakej geekovskej weblog (přitom neni, že ne? :)). A teď jdu psát další geekovskej článek! Co to se mnou je? Já vim co to se mnou je …. prázdniny! No … doufám, že už brzy skončí a já se zas začnu věnovat normálním věcem jako například pivu nebo holkám.

K věci. Pamatuju si, jak jsem říkal Nedymu (http://devden.wz.cz/) o JETu - pochopitelně, že ne dobrovolně, akorát se pokoušel dát najevo zájem, aby získal programátora na svojí stranu. Jenže mě s tím nedy strašně sral, nemám rád, když se mě někdo pořád na něco ptá a vůbec neskrývá ten druhý záměr.

Jednoho dne o prázdninách mě prostě z ničeho nic napadlo, že si napíšu slovník. V tu samou chvíli mě napadlo, že ten slovník NEUDĚLÁM, pokud se nevrátím zpět k Visual Basicu, protože ten jediný umím profesionálně a prakticky. Tak jsem dal sbohem javě a céčku a vložil jsem do mechaniky svaté CD a provedl jsem instalaci, při které jsem se nemohl zbavit nostalgické nálady. Už to bude 6, 7 let co jsem se poprvé začal učit Visual Basic a dnes znám vetšinu jeho funkcí tak dobře jako písmena na klávesnici.

Ovšem to samé nemůžu říct o JETu (databázovém systému Microsoftu). Ten jsem použil za celou dobu jenom párkrát a v jednom z těch případů ještě tak lamersky, že celá aplikace byla posléze odsouzena k vyřazení z provozu a přepsání (bez využití JETu, ale texťáku, který sloužil jako databáze). Přes to všechno si pořád myslím, že JET je dobrej databázovej systém. Proto jsem se taky rozhodl k této databázi přistupovat pomocí mezivrstvy ADO (ActiveX Data Objects). ADO je novější (1996), než jeho starší kolega DAO (1992 - Data Access Objects) … No co? 11 let to je jako nic :) JET využívá jazyka sequel.

Vytáhnul jsem tedy mojí (velmi dobrou) učebnici “1001 Tipů a triků pro Visual Basic” a začal jsem se šprtat ADO. Přes den, kdy se šprtat ADO nedalo (v pokoji bylo 33°C) jsem sháněl zdroj dat pro můj slovník. Nejdříve jsem chtěl vykrást můj milovaný slovnik.cz: Poprosil jsem Tondu, jestli by mi nenapsal PHP skript, kterej by za pomoci URL (slovnik.cz má rád metodu GET) vydoloval html výstup kompletně všech stránek slovníku a následně je spojil dohromady. To bohužel nešlo, protože slovnik.cz byl mírně chráněn proti takovémuto vykrádání. Hledal jsem tedy jiný slovník a přitom jsem omylem narazil na šestimegovaej texťák, kterej obsahoval celý anglicko český slovník. Byl šiřitelný pod licencí GNU/FDL, po čímž jsem si představil “vem si z toho ty data a autory vymaž, je to přece oupn sors” :)

Posléze jsem bohužel zjistil, že slovník obsahuje jisté výrazy, které nejsou přeložné. No jasný, to jsou celý oupnsorsáci, nedostanou za to prachy, tak na to serou … klidně si daj na web nekompletní slovník, kterej je navíc tak dementně udělanej, že by autoři zasloužili pořádně profackovat. To jsem měl radši ukrást nějakej komerční, bylo by to tisícekrát lepší. Ale mě to bylo v podstatě jedno, databáze, kterou jsem z toho hodlal udělat se bude dát v budoucnu nahradit lusknutím prstu :).

Začal jsem tedy dělat bastlo skript, který měl převést hnusnej oupnsorsáckej texťák do krásný MDB databáze. V tomhle jsem si trochu nechal poradit od Tondy, protože jsem databázovej laik. Díky němu má teď databáze 16 mega a ne 160, protože jsem se chystal používat char místo varchar :) Databáze tedy byla na světě.

Bylo mi líto toho bastlo programu, tak jsem ho nakonec povýšil na hlavní projekt slovníku. Zanechal jsem tam ty bastlo funkce netknuté, kontrolní prvky jsem odsunul za hranici formuláře a začal jsem tvořil slovník. Slovníku vznikly asi tři verze předtím, než vznikla finální. Při vytváření slovníku jsem měl problém s vyhledáváním, jelikož sloupce s typem varchar za boha nešly indexovat, ale nakonec jsem to vyřešil zase pomocí ADO a jeho funkcí.

Poslední problém byl s distribucí projektu. Musel mít instalátor, protože většina počítačů bez officu nemá MDAC (Microsoft Data Access Components), některé dokonce ani interpreter Visual Basicu (msvbvm60.dll). Instalátor je ale zabugovanej, tak jsem musel stáhnout Service Pack 5 pro Microsoft Visual Studio 6.0.

První betatesteři byli touny s kivanem. Oba dva rozběhli můj projekt bezproblému na Linuxu (!!!).

Nakonec asi download:
http://leviathan.xf.cz/filez/mfs_dict.rar

Až najdu nějaký lepší zdroj slovní zásoby, dám vám vědět, bude potřeba jenom vyměnit soubor db.mdb.
To je zatím ode mě vše.

 

Mephisto BD series 3 - vrcholné dílo

Ξ April 9th, 2007 | → 21 Comments | ∇ Můj soft |

Celý velikonoční weekend jsem strávil hluboko ponořen ve vývojovém prostředí Microsoft Visual Studio 2005, v jazyce C++/CLI a horlivě jsem se věnoval jednomu projektu, který jsem včera večer dokončil a můžu s radostí říci, že je dokončen a že je to moje zatím nejvíce použitelné a nejvíce mocné dílo.

Již dříve jsem se věnoval aplikacím, známým také jako backdoory nebo “zadní vrátka”. Podařilo se mi jednou i takový program udělat, ale měl značná omezení: Oběť musela mít veřejnou IP. Programové jádro bylo navíc tvořené cizím programem, který je v povědomí mnoha antivirů, antispywarů a podobných znepříjemňovačů života. Využití tohoto programu bylo takřka nulové. Test sice proběhl úspěšně na spolužákovi, který měl věřejnou IP, ale byl asi tak jediný koho znám.

Nyní, díky Microsoft .NET Frameworku, jsem objevil velice zajímavou třídu - System::Net::Sockets::NetworkSteam. NetworkStream dokáže mezi klientem a serverem otevřít duplexní komunikační kanál. A duplexní myslím doslova. Dostal jsem nápad, že by se klient mohl chovat ve své podstatě jako server a server v podstatě jako klient, tzn. že by klient vykonával rozkazy serveru. Vetšinou je server ta aktivní část, protože je automatizovaná a vykonává příkazy od pasivní části - klienta, u kterého sedí člověk a obsluhuje to. Moje myšlenka je, že to bude přesně naopak - u serveru bude sedět člověk a bude posílat rozkazy automatizovanému klientovi, u kterého nikdo nebude. Tím se rozšiřuje obor použitelnosti na naprosto každý počítač. Počítač za deseti NATama může být obětí stejně dobře jako počítač připojen přes ISDN. A podmínka je jediná - útočník musí mít veřejnou IP adresu, nebo udělaný portforwarding tak, aby na svém počítači rozběhl server. A to není nikterak náročná podmínka.

Realizovat toto jsem se rozhodl v jazyce, ve kterém se chci zdokonalit na mistra - C++/CLI. C++/CLI je C++ využívající všech možností CLI - Common Language Interface - Interface, který zajistí propojení vašeho projektu s třídami .NET Frameworku. V C# bych tohoto nikdy nebyl schopen, protože bych nemohl využít staré windows API funkce. Tak tedy C++/CLI. Ale tím, že budu používat Windows API funkce vznikne jeden velký problém - problém, který mi zabral asi pětinu celkového času - Interoperabilita. Interoperabilitou je myšlena kompatibilita základních datových typů a struktur C++ a základních datových typů a struktur .NET Frameworku. Ten nejtvrdší oříšek byl převod System::String na char*. Nakonec jsem to vyřešil (jak jinak:)) a protože jsem se u toho opravdu hrozně vztekal, poskytnu tady ostatním řešení:

Convert System::String to Char Pointer:

using namespace System::Runtime::InteropServices;
System::String ^str1;
char* str2 = (char*)(void*)Marshal::StringToHGlobalAnsi(str1);

No a potom to šlo jednoduše. Velikost datového bufferu jsem zvětšil na 16kB, kvůli dlouhým výpisům příkazu dir, který bude asi jeden z nejpoužívanějších.

Betatestů se zůčastnili: Kesy, Kivan.
Kesy byl mnohem ochotnější a důvěřivější než kivan, tak jsem mohl otestovat všechny funkce. Kivan nevypadal moc nadšeně, protože jsem mu předtím řekl, že pomocí toho programu mu dokážu rozebrat systém. Dokonce jsem si s ním jednou hrál na localhostu a vyzkoušel jsem příkaz “shutdown /s”, který mi vypnul počítač :) … “shutdown /s” jsem ale u betatesterů nepoužil.

Teď bych se mohl zmínit o použití.
V balíčku jsou tři soubory - jeden je návod k použití, který jsem v rychlosti napsal a druhé dva soubory bd_server a bd_client jsou server a klient.

obsah návodu je takový:

MEPHISTO BD SERIES 3 DUPLEX COMMUNICATION PROGRAM
by Michal “Leviathan” Frdlík 2007
distributed as freeware for non-commercial usage
distribuováno jako freeware pro nekomerční využití

Mephisto BD3 umožňuje uživateli vlastnícímu veřejnou IP adresu ovládat jakýkoliv
pasivní počítač v internetu pomocí příkazů příkazové řádky.
V pasivním počítači je nutno spustit bd_client a v aktivním bd_server.
bd_client se periodicky pokouší spojit s bd_serverem, jehož adresu a port jste
mu zadal. Je-li na počítači s veřejnou IP adresou spuštěn a správně nastaven
na lokální IP adresu bd_server, bd_client se spojí s bd_serverem a okamžitě
předá řízení bd_serveru.
Dojde-li k deaktivaci bd_serveru, bd_client se začne znovu periodicky pokoušet
o spojení. Dojde-li k deaktivaci bd_clientu, bd_server zavře soket, následně
znovu otevře a čeká na signál od bd_clinetu.

Ještě dodám že drive je písmeno diskové (nebo disketové) jednotky, kam se uloží malý dočasný soubor nutný k běhu klienta.

A teď nějaké ty obrázky a potom download:
(more…)

 

Leviathan

    kdo je Leviathan

    Jsem student aktuálně čtvrtého ročníku střední průmyslové školy strojní a elektrotechnické v českých budějovicích

     


 


RSS Zdroj

    ::

    RSS 2.0 < ZDE

    Přidejte si můj zdroj do vaší RSS čtečky

     

Statistiky