Sunday, April 22, 2012

Windows is a drug addict: Windows dll injections and hooking directx part 1


It seems there is a way to create a workaround for memory protection and work in another program's context with your injected dll, i was looking for a DirectX overlay method, there are several methods to do that but for me an dll injection seems the best way to do that.

    We just need to create remote thread that will load our dll, we need to keep everything in propper memory spaces (kernel32.dll and user32.dll must be loaded, we must track the DllLoad function true memory location, create memory on the remote process heap and so on) our dll then executes dll main in the other processes memory space, then add a bit of shared memory communications and you have yourself an interactive directx overlay.

For futher reference i redirect you to an exelent book: Windows via C/C++ by Jeffrey M. Richter
The best internet resource i found on DirectX hooking is located here: DirectX dll injection for DirectX overlay

    Please be aware that this post uses a commercial library that was free for some time: Microsoft Detours, i don't encourage you to download from any links located on this page. I will update you on my progress with overlays soon.

Saturday, January 7, 2012

Let's talk serious: Dynamic Programming - CUDA pt3

I've finally managed to get some time for learning CUDA. When it comes to a constant tutorial it's hard to find. I'm in a middle of Addisons Wesley's "CUDA by example". I must say it's a really good book, recommended by people that take their chances with CUDA. As it comes CUDA is a simple addition to C language with several rules. Everyrhing comes to a blocks of threads architecture. We can have X by Y blocks and X' by Y' threads. We can simply synchronize each blocks threads by shared arrays and __syncthreads() call. For now I don't have the knowledge and time to describe it more widely but I'm looking very forward to it. I'll try to do it in a form that anybody can review the document. I will concentrate on describing simple dynamic programming problem soled with CUDA. For now I'm going back to my master degree project. I'm trying to create a CUDA dll with a C call usage. Till next time!

Thursday, December 8, 2011

Another level in Qt certification - the wierd classes of Qt developer part 4

It was another success for me and BLStream. Thank you for an opportunity, I'm a little hard working now so that's all for now folks :) I'll try to pass the next level on the beginning of march.

Tuesday, October 25, 2011

The wierd classes of Qt Developer part3 the advanced c++ stories


I've been given an opportunity from BLStream to write Qt Advanced c++ certificate exam. So i'm preparing an document that may come in handy for You all. I'll be having that exam at the beginning of december. Like always i will share the result with You even if it's something embaresing. Till then dear readers. I think i will also do the advanced GUI part

https://docs.google.com/document/d/1PQfnSbXnhtB90ryvXZUvejX_23dz4IImrSXtcoprxYQ/edit

There's also a new version of ShutterPro on ovi with my gradient effect. Have fun while using it! It gave me tons of laughs while implementing :) .

Thursday, October 13, 2011

I'm going on google developer days!



I've been accepted by organizators of google developer days to join them in berlin at the google technology conference. I will be tracking the android part of the party becouse i plan to develop some android apps. I also will create a presentation from what I've learned and collect the presentations of the lectors . If possible i will share all that i will learn there (if i have proper rights from the lector).

Saturday, October 8, 2011

Building Qt for visual studio use

If You want to use Qt with visual studio You need to rebuild it. I'm warning You that on a i5 on all cores it takes about an hour, but it's worth it because You can debug entire Qt code in a visual c++ manner.

Here's how to do it: http://www.holoborodko.com/pavel/2011/02/01/how-to-compile-qt-4-7-with-visual-studio-2010/

Now I'm doing some initial project work in my masters main algorithm. I will connect CUDA OpenCV and Qt into one solution, it's not that hard as it may look.

Saturday, October 1, 2011

Let's talk serious: Dynamic Programming - CUDA pt2

To proceed with my master project i need to learn some more about dynamic programming, because it's a tree structured aproach we can paraele it as we wish. Dynamic programming problems partition a big problem into smaller problems. The fenomenal tutorial on this toppic can be found here:

http://mat.gsia.cmu.edu/classes/dynamic/dynamic.html

also there's many publicly avalible documents on DP approaches to the dense disparity map problems.

one of more interesting:

http://ftp.eafit.edu.co/cadcamcae/documents/09_09_2009_Congote_etal_TV_stereo_depthmap_CUDA.pdf

I will count some disparities with the best window cost for the disparity. I will keep You updated ;) .

As we speak about trees, theres a preatty neet program for finding too large ocupators of Your disc space: WinDirStat ( thank's Peter for sharing :) )


Each rect represents a single file, the color  represents the type of file and the rect size is an equivalent of the space occupied by the file. If You mark a folder it will draw a rect arround the set of rects that occupy that folder. It's great to find out what's killing Your hard drive space. It's a pretty complicated algorithm tho. I will dig deeper into it when i have some spare time.

Download at: http://windirstat.info/

Yes! It's free :)

Monday, August 29, 2011

BLStream succeses, mine honor to work here.



One of the project under the brand of BLStream won an enormous prize (Shutter Pro). I'm involved in that project, but the prize is meant for those who begun it. It's a huge success for BLStream and people that create this project. I have to say: huge congratulations guys! I wish them many luck and I'm grateful for an opportunity to work with them.

http://www.callingallinnovators.com/10M/winners.aspx
http://store.ovi.com/content/109884

Monday, August 15, 2011

Let's talk serious - CUDA pt1


I've found myself some time to start working with CUDA for this weekend i've set-up my visual studio for work with CUDA and finally used cuda cores on my GPU. It took so long because i was playing games to look up what's new in the industry (mass effect, crysis, batman arkham asylium, amnesia etc etc ale the stuff with cool and unlimited effects :) ) I must say that the unreal engine is amazing. 
Back to the topic. There's no tutorial given by nvidia for setup. I had to search the nvidia forum to find out how to setup the cuda toolkit 4.0. Here's a 100% accurate help with setting-up visual studio 2010:


Thank You Ade!

Wednesday, June 29, 2011

I've got a new PC

From july i can finally learn CUDA and Dense disparity maps algorithms. I'm an owner of a preatty cool PC now (NO! i won't share the details :D ) it enables me to work with OpenCL and CUDA + it compiles on several cores so i can code quicker, new monitor allows me to find bugs more precisley, and let's don't lie i can relax better while playing games after work in BLStream. Till next algorithm!