Archive for 31. jaan. 2011

Delphi XE Starter Edition on väljas…

jaanuar 31, 2011

Sisuliselt paistab, et inimeste palvetele on lõpuks vastu tuldud ja odavam Delphi variant väljas, mis ideaalne õppimiseks, samuti kasvõi Freeware programmeerimiseks. Paistab, et tuleb lähiajal väike ost teha…

Järgmiseks tuleb arvatavasti 64bit release (märts?)…millal Mac osa saadavaks tehakse, ei tea, aga tean, et kompilaator neil olemas.

Disclamer, mul pole mingit isiklikku kasu siin sees 😉 Lihtsalt olles aastaid programmeerimise valdkonnas, pean nentima, et Delphi siiani parim RAD vahend.

Delphi XE Starter Edition

Poe link:
http://store.embarcadero.com/DRHM/store?Action=DisplayProductDetailsPage&SiteID=borlande&Locale=en_IE&productID=224367400

What is the Starter edition license?

The Starter edition license is an “indie” or independent developer style license. Think indie music, indie artist, indie films, etc. The indie style Starter license allows for freeware and limited “for profit” commercial use. The license is designed specifically as a low cost solution for hobbyists, students, and independent developers to be able to get started building and distributing apps, including commercially for profit, without a significant up-front investment. It is modeled after the self-publishing music and literature models and has become popular within the game and mobile development tools market.

http://www.embarcadero.com/products/delphi/starter-faq

Advertisements

Programmeerimine: DEP aktiivseks

jaanuar 17, 2011

Mis on DEP ?

http://support.microsoft.com/kb/875352/en-us
Data Execution Prevention (DEP) is a set of hardware and software technologies that perform additional checks on memory to help prevent malicious code from running on a system. In Microsoft Windows XP Service Pack 2 (SP2) and Microsoft Windows XP Tablet PC Edition 2005, DEP is enforced by hardware and by software.

The primary benefit of DEP is to help prevent code execution from data pages. Typically, code is not executed from the default heap and the stack. Hardware-enforced DEP detects code that is running from these locations and raises an exception when execution occurs. Software-enforced DEP can help prevent malicious code from taking advantage of exception-handling mechanisms in Windows.

Täiendavaks lugemiseks: Buffer overflow

Samas on dokumenteeritud, et Windows teeb omamoodi hack-in-dosi: failid, mis on pakitud ASPack abil, nendel ei rakendu DEP ! Põhjus lihtne, osade pakkijate töömuster on suht sarnane buffer overflow’le.

Ntx: Firefox on DEP austaja, nii Firefox.exe’l, kui ka plugin-conteiner.exe’l on DEP alati lubatud. Müts maha nende ees !

————
Lisan siia juurde Delphi koodi, mille kirjutasin ühe enda rakenduse tarbeks:

uses
SysUtils,windows,typinfo;

const
PROCESS_DEP_ENABLE = $000000001;
PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION = $00000002;

type
_DEP_SYSTEM_POLICY_TYPE = (
AlwaysOff=0,
AlwaysOn=1,
OptIn=2,
OptOut=3);

type
TSetProcessDEPPolicy = function(dwFlags : dword):LongBool;stdcall;
TGetSystemDEPPolicy = function():_DEP_SYSTEM_POLICY_TYPE;stdcall;
TGetProcessDEPPolicy = function(hProcess : THandle;
var lpFlags : DWord;
var lpPermanent : LongBool):LongBool;stdcall;

var
pSetProcessDEPPolicy : TSetProcessDEPPolicy;
pGetSystemDEPPolicy : TGetSystemDEPPolicy;
pGetProcessDEPPolicy : TGetProcessDEPPolicy;

plib : THandle;
ppol : _DEP_SYSTEM_POLICY_TYPE;
pflags : DWord;
plperm : LongBool;
begin
writeln('Ingmar Tammeväli 2010 http://ingmar.planet.ee');
plib:=getmodulehandle('kernel32.dll');
pSetProcessDEPPolicy:=getprocaddress(plib,'SetProcessDEPPolicy');
pGetProcessDEPPolicy:=getprocaddress(plib,'GetProcessDEPPolicy');
pGetSystemDEPPolicy:=getprocaddress(plib,'GetSystemDEPPolicy');

if assigned(pSetProcessDEPPolicy) and assigned(pGetSystemDEPPolicy) and assigned(pGetProcessDEPPolicy) then
begin
ppol:=pGetSystemDEPPolicy;
pSetProcessDEPPolicy(0);
writeln(typinfo.GetEnumName(TypeInfo(_DEP_SYSTEM_POLICY_TYPE),ord(ppol)));

pflags:=0;
plperm:=false;
pGetProcessDEPPolicy(getcurrentprocess,pflags,plperm);
writeln('protsessi DEP olukord: ',pflags,' ',plperm);

// muul juhul pole seda vaja !
// jonni ikka peale
if (ppol=OptIn) and (pflags=0) then
begin
pSetProcessDEPPolicy(PROCESS_DEP_ENABLE);
// kontroll peale
pflags:=0;
plperm:=false;
pGetProcessDEPPolicy(getcurrentprocess,pflags,plperm);
writeln('protsessi DEP olukord: ',pflags,' ',plperm);
end;

end;

readln;
end.

Tore PHP kalake, hopsti interpretaator käpuli

jaanuar 6, 2011

Kontrollige nüüd URL parameetreid põhjalikumalt !

The bug, which first came to light on the Exploring Binary blog, is triggered when PHP apps process statements such as:

See reake lõpetab piinad …

<?php $d = 2.2250738585072011e-308; ?>

PHP apps plagued by Mark of the Beast bug

Windowsil turvakala: CreateSizedDIBSECTION

jaanuar 5, 2011

Microsoft Windows ‘CreateSizedDIBSECTION()’ Thumbnail View Stack Buffer Overflow Vulnerability

Programmeerimine: aktiivse veebilehe URL’i küsimine DDE abil

jaanuar 5, 2011

Üldiselt kõik teavad, et DDE’d enam eriti keegi ei kasuta ning DDE oli ka parajalt vigane (ntx DDE serverite numeratsiooni API ise hangus jne). Kuid DDE abil sai isegi Exceliga suhelda, kas nüüd ka enam saab, pole proovinud.

Teada tõde on see, et kui tülikas on erinevatest sirvikutest (Opera/IE/Firefox) urli kätte saada, kord Findwindow trikid, mida kõik veel. IE’ga lihtne, läbi ShellWindowsi….
Mõtlesin, et prooviksin universaalse inimese moodi ja uurin, kas DDE veel elus.

Neid DDE käske toetas kunagi Netscape:

http://graphcomp.com/info/specs/nets/ddeapi.html

Vähemalt üks asjalik DDE request siiani “elus “st vaatasin ntx Firefoxi xul.dll sisse ja nägin seal:

WW_GetWindowInfo
WWW_UnRegisterViewer
WWW_RegisterViewer
WWW_Version
WWW_CancelProgress
WWW_Activate
WWW_OpenURL

Meid huvitab WW_GetWindowInfo

WWW_GetWindowInfo

* Netscape is: Server.
* Transaction Type: XTYP_REQUEST.
* Item (Arguments): dwWindowID
o dwWindowID is the Netscape window to obtain current information on. This value can be 0xFFFFFFFF to specify the last active Netscape window.
* Data (Returns): qcsURL,qcsTitle
o qcsURL is the current URL loaded in the window.
o qcsTitle is the current title of the Netscape window.
* Description: This topic will fail if Netscape can not provide both return values (a blank page is loaded, so there is no URL), or if an invalid dwWindowID is specified.

Siis jõudsin testini: teoorias peaks saama loendada kõiki aknaid järjekorras 1,2,3,4,5… nii need “window” ID’d kunagi jooksid. Testprogramm tõestas vaid, et see kõikide avatud lehtede numeratsioon töötab vaid Operal.

Samas 0xffffffff trikk töötas nii IE’ga, kui Firefoxiga. Ehk kõigist sirvikutest sai teada “aktiivse lehekülje (tabi)”.

Lisan siia lähtekoodi, koos binaryga (download), koodi suhtes pole mõtet kriitikanooli visata, see on mul vist aastast 98 ?

IT tehnoloogiate areng (2011)

jaanuar 3, 2011

Varasemalt ka asju täppi läinud

Top 10 technology predictions for 2011
http://blogs.embarcadero.com/michaelrozlog/2010/12/28/37181

Minu ennustused oleks sellised:
– Ühinen 3D mängude teemal, nendest võib tõesti saada hitt. Pole ise mängu inimene, kuid neid isegi prooviks.
– iPhone (grandiosa) maania väheneb, reaalsuses on Euroopa turuosa ikka suht vähe võidetud. Loomulikult kasutajaid on, aga turusegment siiski suht väike. Samuti on Jobs paras kontrollfriik, sellise firma toodetele on tarkvara arendada paras enesetapp. Mitte eriti ammu ei olnud teemaks see, et tohib vaid Apple vahendeid kasutada Objective-C jne. Tehti selline litsens, et kuku pikali ja hiljem saadi aru, millega hakkama saadi.

– Java arendus teeb tõsist taandarengut ja uusi projekte enam Javas ei alustata. Probleemiks on vana hea Oracle ja selle ärijuhtimine, et iga liigutus peab meeletult raha tooma, palju raha. Kui suudeti Apache Group nii välja vihastada, et nad lihtsalt lahkusid tiimist, mis aitas leida Javale suundi. Nüüd võib arvata, et tuleviku projektid rohkem C keeles.

Sama jama MYSQL community editioniga, varsti ei saagi aru, kuidas asi muutunud tasuliseks või areng jääb aasta aastalt minimaalsemaks. Elementaarne support läheb kulla hinda ning mingist hetkest tulevad andmemahtude piirangud. Mina igatahes enam uusi projekte tuleviksu MYSQL’ga ei seo.

Open source MYSQL arendus läheb küll mariadb all edasi, aga kaua neil jõudu on, ei oska öelda. Küll leitakse põhjus, miks nad kohtusse anda…

Nüüd üritab ka Googlet pigistada, et saaks “dalviku” eest raha välja pressida.

– Android muutub aina populaarsemaks ja rakendusi muudkui lisandub.

– Tulevane Windows 7 Mobile või mis ta oligi, kõvasti müra eetris, aga vähe villa. Ei saavuta enam edu, lihtsalt rong on läinud. Eriti veel siis, kui WinCE rakendused ei tööta enam seal peal.

– .NET areng…ei oska täpselt öelda. Viimasel ajal paneb muigama, et tööle saada .NET rakendust pean N frameworki installima, üks versioon ei sobi teisega, see jälle kolmandaga, lõpuks 350MB ketast igasugu jooksutajaid täis. Näen tekkimas segadused, see pole hea.

Mul pigem küsimus, et mis saab Mono projektist, sest Novell ju müüdi ära mitme tükina ja Novell sisuliselt vedas antud projekti. Samuti MS ja tema patendid, ei saa seda firmat usaldada.
.NET suurim viga siiani, et ta ikka MS platvorm.

– Php’le tahab keegi mingi hetk käpa peale panna. Nagu teate lauset, pole müüdamatuid asju, küsimus on vaid hinnas.

– Seal lingi all pakuti välja visiooni, et Cloud Computing märksõna, millest aina rohkem räägitakse. Aus olles, oman kahtlusi, tihti see odav ei ole nii odav, kui paistab. Pilvekestes ka probleem, kui süsteemis suurem crash, siis kõik maas. MS enda pilvekesed on ka seda tõestanud.

Minu arvamus, et 2011 IT tehnoloogiates mingit erilist ahhetust ei too (puutetundlikuse maania ka lõppemas), same story, different day…