Legion (demon) "And he asked him, What is thy name? And he answered, saying, My name is Legion: for we are many" (KJV) (AV) The Gospel of Mark 5:9 (Gk. Κατά Μάρκον Ευαγγέλιον) [ "we are legion, for we are many"] (King James Version of the Bible) Legion (software Legion is a computer software system variously classified as a distributed operating system, a peer-to-peer system, metacomputing software, or middleware.
One of the slogans of the Legion project is "mechanism, not policy"

Loading...

mercoledì 24 giugno 2009

Copy protection defeating

mmmmmmmmmmm

Sometimes, indeed often, there are obstacles. Or learn to ride or learn to jump over obstacles


CD-Cops
-------
If your CD is protected with CD-Cops, when executing the main .exe file, a window appears with the words CD and Cops in the title. Also, the following files will be present in the installation directory:

?
?
Eerrrmm, forgot to add these ^_^


CDCOPS.DLL
----------
Files with The .GZ_ and .W_X extentions.
To defeat this you can use the 'CD-Cops decrypter' - which should work on some CD's.


Copylok
-------
No details yet known.


Copy-Protected CD & The Bongle
------------------------------
At present there is no generic patch available, so it likely you will need to find specific patches for each CD (i.e. look for a CD crack).


DiscGuard
---------
A CD protected with DiscGuard will have the following files on the CD or in the installation directory:

IOSLINK.VXD
IOSLINK.SYS

At present there is no generic patch available, so it likely you will need to find specific patches for each CD (i.e. look for a CD crack).


LaserLock
---------
A LaserLock protected CD will have a hidden directory called "Laserlok" on it. This directory can be seen if you tell windows to "show all files". The folder was designed to contain files with unreadable errors so that the CD could not be copied correctly.
At present there is no generic patch available, so it likely you will need to find specific patches for each CD (i.e. look for a CD crack). Sometimes this kind of protection can be got round using the 'Ignore Read Error' setting that a few good CD copiers have (CDRWin, Nero, DiskJuggler).


LockBlocks
----------
A LockBlocks protected CD will have 2 circles (5 mm and 3 mm), which cause a CD-R to lockup when being read.
At present there is no generic patch available, so it likely you will need to find specific patches for each CD (i.e. look for a CD crack).


SafeCast
--------
Detection on this is unknown at this moment in time.


SafeDisc
--------
A CD protected with SafeDisk will have the following files on the CD:

00000001.TMP
CLCD16.DLL
CLCD32.DLL
CLOKSPL.EXE.
GAME.EXE
GAME.ICD

To defeat this you need to Create a 1:1 copy of the CD and then use the "Generic SafeDisc Patch" (available from http://www.cdrsoft.com" to allow you to play the copy. Another method is to look for a patched game.exe file (do a search in a good search engine) and then do the following:
Create an image of the CD on your hard drive, but use the patched game.exe instead of the one actually on the CD. It is often better to use the CD-R drive to get the image file because the CD-R drive is more likely to avoid read errors.
Write the image file onto a blank CD-R at 1x (this will help to avoid errors).


SecuROM
-------
If a CD uses the SecuROM protection scheme, one of the following files will exist in the installed directory OR in the root of the CD:

CMS16.DLL
CMS_95.DLL
CMS_NT.DLL

To defeat this you can use a generic patch:
SecuROM R1: Get Generic SecuROM R2
SecuROM R2: Get Generic SecuROM R3
SecuROM R3: Get Generic SecuROM R4 v1.1
SecuROM R4: Get Generic SecuROM R5 v5.1
SecuROM R5: Get Generic SecuROM R5 v6.0


Here are some other techniques that are frequently used to protect CD's

Dummy Files
-----------
This can be detected by looking for large dummy files, mostly over 600 Mb, in the root of the CD (usually with a .AFP extension).

If the original CD is smaller than 659 Mb, you can do a CD copy which will re-create the exact Dummy Files on the copied CD. If the original CD is over 659 Mb then OverSize a 74 Minutes CD-R or just use an 80 Minutes CD-R to make an exact backup.

Illegal Table Of Contents (TOC) file
------------------------------------
This can be found by examining the tracks of the source CD. Usually there will seem to be a second data track (which is not allowed). Commonly, this track will appear after some audio tracks.

You can now bypass the illegal TOC files deliberately put on CD's as a form of protection by using a program such as 'Nero' or 'CDRWIN'. These programs have an option to ignore an illegal TOC file.


Protection Info

OverBurning CD's
----------------
To detect this, use a 74 minute writable CD and choose to do a test before writing - if the source CD has been overburned then the CD copier will come up with an error and tell you that your CD is not big enough (even if the source and destination CD's are both 74 mins!!).

To defeat this you can use a program such as 'Nero' or 'CDRWIN' to OverSize the CD-R using a capable CD-Writer . However, this can be dangerous if your CD writer does not support overburning - but there is another way! Simply get hold of an 80 minute writable and copy the source CD onto that!

The games 'Half Life', 'Kingpin', and 'Commandos' all use this method of protection.


Physical Errors
---------------
The CD is damaged on purpose. Most CD-Readers are not able to "copy" these kind of errors and will stop reading the CD. Few CD-Readers are able to copy these errors. The program 'BlindRead' can be very handy copying this protection.


PlayStation CD's
----------------
During the boot, the PSX chipset checks for an unknown sector on the CDS. This unknown sector is outside the mechanical range of the CD-Reader pickup. Therefore it is NOT possible to copy this track onto a CD-R.

To defeat this, install a modified Boot Chip (ModChip) inside the Playstation. This will trick the PlayStation so it thinks the inserted CD contains the right Country-Code & Bad Blocks.


Sega DreamCast CD's
-------------------
The Dreamcast actually uses GD-ROMs, which hold a maximum of 1Gb of Data instead of the standard 650-700 Mb. This provides a good level of copy protection as they cannot be reproduced using a standard CD-Writer.

A GD-ROM consists of 2 DATA tracks. The first is usually between 10 & 50 Mb and can be read by a normal CD-Reader. The second track is written in a high density format which is NOT accessible by a normal CD-Reader.

At the moment, there doesn't appear to be a perfect way of copying these CD's.
What are the different CD copying protections and how can I defeat them?

Here are most of the CD protections used to protect games and applications from people trying to copy them with their CD-R's. Most of the files and programs I mention here can be downloaded from http://www.cdrsoft.com .

ASTALAVISTA

Photobucket



mercoledì 17 giugno 2009

Dll Injection Part TWO English







ADVERTISE by Guardian Angel: This article is not 'designed for idiots who do play the sorcerer's apprentice. This article 'aimed at those who love knowledge.
A call to friends in Italy that deal with information technology: Internet, 16 June 2009 Presidents of Parliamentary Groups Senate ROME
Dear President,
the 1415A ddl approved in the House of Deputies on 11 June us has, in many quarters, raised many doubts and misgivings as to its constitutional legitimacy and, more generally, the appropriateness of regulatory interventions that, through it, be carried out.
There is, however, a profile, so far, remained in the shade and little in-depth discussions of these days: the contents of paragraph 28. 1, whose unfortunate wording - also admitted that this was not the actual will of the extensor - is likely to determine an unacceptable restriction of freedom of expression that push online, quickly, to Italy in a position more rearward than it currently occupies (it's Forty-fourth) in the international ranking on freedom of information.


I urge you to sign the petition found at this address:
http://www.firmiamo.it/norettifica otherwise of those articles, in Italy will only be a pale memory.



(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)

Dll Injection Part II


Welcome back...

Last time i explained to you what DLL Injection is.
"Injecting a dll into a running process, is inserting a dll into the process's address space..

as you all -should- know is that when you load a dll, it goes to your address space, which means that,
your variables/memory in general, are all accessible with normal pointers by the dll itself."


I also explained that you need to have a knowlege of the following things:

1) Memory management...You need to know how windows manages it's memory

2) PE Headers <--the most important thing if you're doin this in win9x/ME --

3) Basic debbuging APIs...These are some apis that allow you do debug a certain app

4) enough knowlege of asm...and OPCODES of instructions I also said that my tutorial is compatible with all versions of windows.

So don't go posting me saying 'CreateRemoteThread() will do all of what you have just done'...I told you that i'm doing this tutorial for everyone. And if it would make you happy, i will add some information about the functions you can use in higher versions than WinME/9x And I'm doing the same thing I did last time. I am "NOT" pasting full code in this tutorial either. No one is stupid enough like me to even think of posting such brief article about something that is hard to learn if you had no documentation. So, therefore, it is hard to accept distributing it to the public. Programmers all think that they got tired for searching all this. They're not going to let their sweat go to waste.

So they keep telling you "GO RESEARCH ON YOUR OWN",, and probably kick you off their chat rooms. So, i'm probably doing the same thing ::D::D::D::D -- Ok you should have made that dll file that i told you about last time.

I'll assume the dll is in C:\\NazSoft\\DLLINJ32.dll (Dll to inject) Remember also, that i asked you to make an exe project, that puts the dll into its address space using LoadLibrary() Now, we're going to do something else. FORCE an app to load the dll into its address space. That's what i did to mirc.exe. But first, i need you to create the exe file! Make an exe file, that has a dialog box with a button. If the button was clicked, this happens: MessageBox( 0, "Let's see whether this function gets intercepted or not?!!", "Hello world!", MB_OK ); I'll assume you named the exe file, C:\\NazSoft\\MYMSGBOX.exe (Target process) OK, For the first section of this part, we'll inject DLLINJ32.dll into MYMSGBOX.exe in 2 different ways, 1) Using

CreateProcess().... The injector (the program that will inject) will create a new process of that program. And simply inject using the debugging facilities. Recall from PART I: "Talking at a lower level, what my API Spy exactly does is 'debug' the chosen running process and thus suspending all of its threads. It will then use some special API functions to be able to read it's private address space...

(Read/WriteProcessMemory()) It will seek some place to inject some code into. It is ASM code ofcourse. What this ASM code does is: LoadLibrary("DLLtoINJECT.dll"); And add a breakpoint after the code. Then simply let the process run, starting with the beggining address of the injected code. When the breakpoint is reached, the threads are suspended again and the API Spy restores whatever bytes it has modified and restores all the registers and thus continuing with normal execution like if nothing happened. Kind of like hypnotising someone, slapping him, and bringing him back. He'll have no idea of what just happened. Anyway, The loaded DLL does its job normally. Simple as that." 2) Use a method to inject the dll into a thread, by knowing just it's ThreadId, ProcessId, and possibly base address of the program. This method is used to inject a dll into an ALREADY running process.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

--However, there is one problem in both of these ways. To do all that, i use the debugging method. Which is not such a good idea. I'll explain why later, and an alternative that can be used in future versions of windows. Actually, WinME had my problem solved, and then NT3.1 made it better, then came WinXP, which made it even better than ever before!... We'll talk about it later --- Let's make the (Injector) --- #define TargetApp "C:\\NazSoft\\MYMSGBOX.exe" #define DLL "C:\\NazSoft\\DLLINJ32.dll" *** | | | | This is the CreateProcess() method:
(*)(*)(*)(*)(*)(*)(*)


You use CreateProcess() to start the program, with DEBUG_ONLY_THIS_PROCESS flag set. This will let you use the windows' special debugging functions. If you read the link i gave you in part one about Basic Debugging, this should be no problem, and you must have seen that DebugActiveProcessStop() works _ONLY_ in WinXP and above...(There is no above. Maybe Longhorn? the new revolutionary version of blindows? i mean, windows?) This is one advantage of XP over other OS's...
(*)(*)(*)(*)(*)(*)(*)
So don't go saying, XP SUX XP SUX XP SUX This makes it a REAL problem, because if you are debugging a process, and terminate your own process, the debugged process will be terminated also, and there is no way to stop it from happening. Even visual studio 6's debugger can't keep an application being debuged from staying alive, upon closure of VC++, It always gives you a msgbox: "This command will stop the debugger. Do you wish to continue?"
--
(*)(*)(*)(*)(*)(*)(*)
There you see the problem that debugging a process has, which XP fixed...This is why i said "...WinXP, which made it even better than ever before!..." :)... Actually, it didn't make it better than ever before, because CreateRemoteThread(), supported in NT3.1 and over, makes all of what i'm doing simpler. We'll talk about it later...
--
(*)(*)(*)(*)(*)(*)(*)
After you create the process, windows' loader will automatically set a break point, right before the process starts execution(because of the DEBUG_ONLY_THIS_PROCESS flag). So what you do is use WaitForDebugEvent(), and ContinueDebugEvent() to get notifications from windows, for a debugging event to occur in a process being debugged. One of them, is a breakpoint.
(*)(*)(*)(*)(*)(*)(*)
WaitForDebugEvent() just sits there waiting for an event, then suspends the execution of the thread, and returns.. It's your job to check it's return values and handle the events that you want. And then use ContinueDebugEvent() to let it continue execution.
(*)(*)(*)(*)(*)(*)(*)

--You need to keep waiting, until the target process exits, then you can exit. Because as i said, you can't stop debugging unless you terminate the target process(except in WinXP) When the first breakpoint occurs, you know that the process has been loaded in memory. Now, you need the Handle of the process, and the handle of the main thread (or any thread)

It's all gettable through CreateProcess's PROCESS_INFORMATION parameter(pInfo.hProcess, pInfo.hThread) Now that you have the process's handle, you can use ReadProcessMemory() and WriteProcessMemory() to read/write bytes into/out of the memory of the target process. (Ofcourse, you're not required to pause execution of the process in order to use these two functions, however in our case, you ARE required to ) "The process whose address space is read is typically, but not necessarily, being debugged. " is what MSDN had to say. I'll tell you why we need to pause execution. Now you know how you can use ReadProcessMemory(), and WriteProcessMemory(). What you should do is this. You need your knowlege of PE/COFF headers to find a writable address in the process's memory.

Once you have found it, you will have no problem in changing it's contents, whether it was required by the target process or not, because as i said before, the execution has been suspended, so the process won't find out that you have changed it's memory, until after it continues execution... but it will be too late at that time, cause you will have already restored whatever it was that you have changed. Just like hypnotising...
When you find a writable memory, you need to use your knowlege of asm, and the OPCODES of the instructions inorder to use WriteProcessMemory() to write in the asm instruction, which will call LoadLibrary() inorder to insert the DLL into it's address space. (Remember the exe program in part I? When it used LoadLibrary(), the MessageBox() function automatically got intercepted,

This is what should happen here. Ofcourse the dll that we made is not so good, because it has no function to restore the address of the import table that it changed. So it's your job to change the dll -if you like- and save the original address of the MessageBox() function, before chagning it to the entry point of the MyMsgBox() function, so that when you need to free the dll, you'd be able to restore the entry point of the MessageBox() function, from the entry point it has been set to ( MyMsgBox() in DLLINJ32.DLL) back to it's original entry point ( MessageBox() in USER32.DLL ) )
Ofcourse, this is not so required, because you might just leave the dll into the process's address space for ever. And when the process exits, no need to restore, cause IT EXITED. You haven't patched the exe. So everything will be restored back to it's original next time the program is started Ok, so you wrote in the asm instructions. Now, what they do is call LoadLibrary() and then breakpoint (INT 3h --OPCODE 0xCC) So that the debugger would recv a breakpoint event inorder to restore the bytes that were changed
--If you have enough knowlege of asm, you'll know that EIP is the address in memory of the current instruction being run. When you write the asm code in the target process, you need to change (after saving) the EIP register to the offset of the first byte of the asm instructions you have written in the memory address space of the process.

Then when break point occurs, restore the memory, and restore EIP to it's original address, so that the process would continue execution, like if nothing happened! You can use GetThreadContext() and SetThreadContext() in order to change/get the values of registers/flags of a running process. And these two functions "REQUIRE" the _thread_ "Not the process" to be suspended. The two functions take a thread handle, not a proces handle. Because a process can have more than one thread, a problem that might occur is that a thread will be suspended, but other threads are still running. This will wreck havoc in the system. But fortunatelly, The debugging functions will suspend the WHOLE process from running.
There is some other method i wanted to use, (other than debugging) which will have THIS problem. Because it doesn't suspend the process's execution, it will only suspend the execution of ONE thread.
(*)(*)(*)(*)(*)(*)(*)
That's why OpenThread() isn't supported in 9x, because Microsoft is afraid someone would get a thread handle, suspend it, and wreck havoc. But somehow, i donno why, WinME supports it, so do later versions...maybe Microsoft fixed something? or i donno...

This isn't our subject right now anyway... (I like writing confusing text..) ___ **WARNING**___**WARNING**___**WARNING**___**WARNING**___**WARNING**___**WARNING***
The following two paragraphs are irrelevant, so don't confuse your self, skip them for now.. ___ **WARNING**___**WARNING**___**WARNING**___**WARNING**___**WARNING**___**WARNING***
Anyway, i really think the debugging way is the best, if you can't use CreateRemoteThread()..
But if you found a way to suspend the whole thread, without the need of debugging, i think we can make the asm instructions give some notification to a FileMap (Shared memory between processes) that it has successfully loaded, so that the injector app would restore what it had chagned, so that the process would continue execution. You can let the dll do this for you. But then comes another problem, when code is injected, and run, and the dll gets loaded, what if, in the process, the thread continued execution, and it needed the portion of memory that we edited?? THERE!!! Now we have a problem!..This might cause a crash.. But then you might let the dll create some executable in a temp dir, and suspend execution. Then the executable will restore bytes, and exit, then the dll shuld somehow find a way to notify it self that it can resume thread execution..
IT NEVER ENDS!!!!! FIX A PROBLEM, FIND ANOTHER ONE...the BEST solution instead of using all that crap is either through debugging, or using CreateRemoteThread()...debugging can't be stopped, unless in WinXP, but what's the use? You can use CreateRemoteThread() instead of debugging, in XP... You can't use it in 9x/ME,,but ah well...what to do? this is the life...
Win98 will be soon out of the market. 2k already is i think. Atleast MS promised that they will remove it. It's been a whole year since the deadline they have given, but seems like it's still in the market. Maybe i don't read news alot. I've got too much work, anyway..
-- So now you understood the debugging method in a verbal way. I'll explain more about it, in a "codish" way..
BUT FIRST! let me tell you this, inorder to use ReadProcessMemory(), for finding some writable memory... You need to know the base address of the target process! I'll tell you how later.. and also, to find a writable memory, you shuld read the sections of the programs... Read about 'sections' in PE header... i usually get section ".data" as the writable part..maybe some other app has some other section? i dono... Actually, I DO know. There are apps that have sections with different names. for example, programs compiled with borland have different section names, than programs compiled in msVC++ (Another project to have fun with is, to open all exes of different compilers, in your machine, and save their import table and section names... The PE/COFF header specs should help...) If you notice, in asm programs you set sections like .CODE .DATA etc... It's all the same... VC++ uses .text, .idata and .data instead (.text == .CODE, ,.data == .DATA, , .idata == Import table ) .edata == export table, etc... (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*) (*)(*)(*) (*)
INJECTING A DLL INTO AN ALREADY RUNNING PROCESS (*)(*)*)(*)(*)(*)(*)(*)(*)(*)
(*)(*)(*) (*)(*)(*)
(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)



And now you know all about The CreateProcess() method. The other method, injecting into an ALREADY running process,
you need to use OpenProcess() to get a process handle, from a ProcessId, then use DebugActiveProcess() to start debugging.
Read DebugActiveProcess() in msdn, you will find answers to many questions that might have been raised when i gave you
this function. I'm not going to show an example on this function. You're on your own. Sorry, wish i could help.
But i'm not giving you the butter.

Read the "Debugging a Running Process" section in Basic Debugging section in msdn.

"
To debug a process that is already running, the debugger should use DebugActiveProcess with the process
identifier retrieved by OpenProcess. DebugActiveProcess attaches the debugger to the active process.
In this case, only the active process can be ..... To detach from the process being debugged,
the debugger should use the DebugActiveProcessStop function.
"
-MSDN

DebugActiveProcessStop isn't supported in versions before WinXP......go cry baby :P

-----
(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)

ok, i showed you how the second method works...
Now.. the inefficient method that i was talking about... Doing all this without debugging..
You can skip this section if you want, it's for more advanced readers...
What i had in mind (I won't give code samples for this either, but this time, not because you need to reasearch on your own,
but beacuse i havn't done any code of it. And you never know, maybe this method is so inefficient, that you can't use it?)
ok here goes:

From the processes and thread section, i saw these functions:

OpenProcess, OpenThread, SuspendThread, ResumeThread

Look, get proces handle from the first function..Thread handle from the second.
Suspend the thread, use GetThreadContext/SetThreadContext and Read/WriteProcessMemory to read/write asm code
and modify/restore the registers, then Resume thread...
the asm code, can't use breakpoints, cause the app isn't debugging it, so the dll shuold somehow send some notification,
and suspend it's own execution. Then when the app recieves the notification, it will let it resume, after restoring everything.

There is more to it than just that...but you need to use your own imaginations

----
(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)

Somefunctions for you to look at, (interesting functions)

DebugBreak, DebugBreakProcess, DebugSetProcessKillOnExit, IsDebuggerPresent, GetStartupInfo, Sleep, SleepEx, SwitchToThread
ThreadProc, TlsAlloc, TlsFree, TlsGetValue, TlsSetValue

There are some issues i haven't talked about here. You might encounter them ___MIGHT___
so if you did, read about TLS,,,Thread Local Storage..it shuold help you through for process's with more than one thread
(TlsAlloc, TlsFree, TlsGetValue, TlsSetValue)

----
(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)

You're probably mad at me like hell, and not voting for me, because i asked you to reasearch on your own.
Too bad :PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP

kidding..i'm sorry dude, but i'm serious. These are issues that need work from the programmer him/her self.
You can't just let it away like that :( I'm sorry once again. Maybe if you email me(on my yahoo account)
I might help you more on this, or else, i'm sorry. Besides, i didn't have that much time to write all the code
in here..i'm truly sorry...and i applogize for any inconvenience this did.

Once again, i'm sorry

----
(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)

Let's see what the asm code that needs to be injected shuold look like.
There are many different ways to code it's asm code..but this is my way.
and i like it like that.

{
mov eax, 0h ; change 0h to address to LoadLibrary()
mov ebx, 0h ; change 0h to offset to dll name (almost always at the end of this code comes the dll name)
; so it can be, offset of beggining of this code + the total size of the asm code. This points you
; to whatever that's after it. Which is, the dll name

push ebx ; Push parameter of LoadLibrary() into stack (dll name)
call eax ; call LoadLibrary()
pop ebx ; Pop ebx which was pushed -- if you don't do this, you'll get a funny scary error
; If you read about opcodeVOID's NakedFunctions,, and saw the asm instructions before and after
; high level functions,, there are the code(within them) that will check for whether you have restored what you have pushed into the stack
; so basically it's required, opcodeVOID :D :D :D But, he's still right, if you are an advanced programmer
; and know what you're doing, then you have no problem
;;; and also note that where you're writing this code, it is at it's lowest level, and there aren't
;;; code to check for this..a whole program destruction might occur without you knowing
; it's kind of like when you are sick, and probably have aids, and are dying, but don't have
; a nervous system to feel it. So, you won't feel pain, this might cause you to suddenly collapse and die :D

int 3h ; break point
; Immediately after this, comes the dll's whole path "C:\NazSoft\DLLINJ32.DLL" and don't forget the null character
}

These are the OPCODES:
{
char CodePage[4096] =

{ 0xB8, 00, 00, 00, 00, // mov EAX, 0h | Pointer to LoadLibraryA() (DWORD)
0xBB, 00, 00, 00, 00, // mov EBX, 0h | DLLName to inject (DWORD)
0x53, // push EBX
0xFF, 0xD0, // call EAX
0x5b, // pop EBX
0xcc // INT 3h
};

DWORD nob=15; //Number of bytes ^^^^^^
//comes right after this, the dll name...so just do this, strcpy(CodePage[nob], Dllname) to append the dll name..
the total size is (nob + strlen(Dllname) + 1) -- strlen retreives the string, without NULL character.
So you do +1, do also add the null character
------You might ask why i declared 4096 chars? well, a codePage is 4K,,,So i just did it,,,for,,,um,,,
no reason... :D :D

}

I'll give you some OPCODE lists with this tutorial for you to have use of..
You'll have fun reading it
--by the way, go to EFnet#C++ or #asm or #win32asm and ask for a full ebook of asm..
They shuld give you a free ebook called, "The art of assembly"
--

I suddenly changed my mind and added some tutorials with the .zip file :p
I even added some unneccessary stuff :P

--
(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)

Here show you the code of CreateProcess() method:

--
(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)

declare these global vars:

CONTEXT OriginalContext; //Get/SetThreadContext's parameter
char OriginalCodePage[4096];
DWORD sizeofCP=0;
VOID* mySec; //my section...Offset of CodePage in the target process's memory, not this app's memory

BOOL InjectDLL_CreateProcess( char *TargetAPP, char *DLLTOINJECT )
{
BOOL B=FALSE, BREAK1=FALSE, BREAK2=FALSE;
STARTUPINFO sInfo;
PROCESS_INFORMATION pInfo;
DEBUG_EVENT dEvent;
DWORD ret;

ZeroMemory((VOID*)&sInfo, sizeof(sInfo));

B = CreateProcess(Filename, 0, 0, 0, FALSE, DEBUG_ONLY_THIS_PROCESS, 0, 0, &sInfo, &pInfo);
if(!B) return FALSE;

//-----
///
////
///// We need 3 things, ProcessHandle, ThreadHandle, and BaseOfImage (base address of executable file in memory)
////
///
//-----


HANDLE PHandle=pInfo.hProcess, THandle=pInfo.hThread; // Processhandle, Thread handle
VOID * BaseOfImage;
char DLLTOINJECT[] = "d:\\VCPrj\\MSNInject\\DLL\\Release\\DLL.dll";

while(1)
{
if( !(B = WaitForDebugEvent(&dEvent, INFINITE)) ) //Remember? -- dEvent is a structure that recv'es return of fucntion
return -1;

if(dEvent.dwDebugEventCode==CREATE_PROCESS_DEBUG_EVENT) //If the debug event was "Process has just been created"
{
BaseOfImage = dEvent.u.CreateProcessInfo.lpBaseOfImage; //Ok, now we have the base address of the exectable file in memory (remember before, when i said that i'll show you how to get it?)
}

if(dEvent.dwDebugEventCode==EXIT_PROCESS_DEBUG_EVENT) //if process terminated, then break the loop, so that you would exit function
break;

if(dEvent.dwDebugEventCode==EXCEPTION_DEBUG_EVENT)//Check for breakpoint
{
if(dEvent.u.Exception.ExceptionRecord.ExceptionCode==EXCEPTION_BREAKPOINT)
{//It is a break point;
if(BREAK1==FALSE)
{//First Breakpoint occured
B = InjectDLL( pInfo.hProcess, pInfo.hThread, BaseOfImage,
DLLTOINJECT); //The magical function, comes after this function

BREAK1 = TRUE;
if(!B)
return FALSE;
}else if(BREAK2==FALSE)
{//Second breakpoint occured (asm instructions have been all done, and int 3h was reached
ret = RestoreOriginalCodePage( PHandle, THandle, 0); //another function to restore
if(ret==0) return FALSE; //uhoh!!! Big big big big error...you need to restore what you have written, but couldn't,,,,i'll leave it to you, cause i, my self donno what to do, other than terminate the target process :P
BREAK2=TRUE;
}
}else
{ //if an Exception occured, and it wasn't a break point, then say DBG_EXCEPTION_NOT_HANDLED
//Because you haven't handled the exception, so let lindows,,i mean, windows handle it..
ContinueDebugEvent( dEvent.dwProcessId, dEvent.dwThreadId, DBG_EXCEPTION_NOT_HANDLED);
continue;
}

}//end if

ContinueDebugEvent( dEvent.dwProcessId, dEvent.dwThreadId, DBG_CONTINUE);
//you don't need to handle event,,let it pass

}//end while()
}//end function

////////////////////

next function:

BOOL InjectDLL(HANDLE hProcess, HANDLE hThread, VOID* hModuleBase, char *DllName)
{//You must have debug access to hProcess (required for ReadProcessMemory() & WriteProcessMemory)

FARPROC LoadLibProc = GetProcAddress(GetModuleHandle("KERNEL32.dll"), "LoadLibraryA");
if(!LoadLibProc) return FALSE;

//This is the entry point addr of LoadLibrary()...It's usually, always the same for any process that loads kernel32.dll
//So unless there is some other explanation, i don't know
//But i personally found that this works all of the time


////////////////////////////////

char CodePage[4096] =

{ 0xB8, 00, 00, 00, 00, // mov EAX, 0h | Pointer to LoadLibraryA() (DWORD)
0xBB, 00, 00, 00, 00, // mov EBX, 0h | DLLName to inject (DWORD)
0x53, // push EBX
0xFF, 0xD0, // call EAX
0x5b, // pop EBX
0xcc // INT 3h
}; //i could have used structS instead, but unfortunatelly, because of many compilers' stupid padding, i didn't >:(
int nob=15; //no of bytes

char *DLLName; //DllName
DWORD *EAX, *EBX; //Look at codepage

DLLName = (char*)((DWORD)CodePage + nob); //Set the pointers
EAX = (DWORD*)( CodePage + 1); //
EBX = (DWORD*) ( CodePage + 6); //

strcpy( DLLName, DllName ); //copy dll name
*EAX = (DWORD)LoadLibProc; //EAX==LoadLibProc
*EBX = nob; // need to do this: *EBX = *EBX + (offset of CodePage)
////////////////////////////
sizeofCP = strlen(DllName) + nob +1; //remember this? --


//Here comes the complicated part, you can use CreateRemoteThread() instead of all this, actually, but unfortunatelly
//it isn't supported in all versions of windows...but i'll tell you how to use it after this code..
//I have an example code that i found from google groups

IMAGE_DOS_HEADER DOShdr;
IMAGE_NT_HEADERS *pNThdr, NThdr;
IMAGE_SECTION_HEADER SecHdr, *pSecHdr;
IMAGE_DATA_DIRECTORY DataDir, *pDataDir; //@@@@@@@@
DWORD dwD, dwD2, read, written;
CONTEXT Context; //GetThreadContext's parameter &&
BOOL B;

Context.ContextFlags = CONTEXT_CONTROL; //look at WINNT.h header file for more information
OriginalContext.ContextFlags = CONTEXT_CONTROL;
if(!GetThreadContext( hThread, &OriginalContext)) //Save original context -- remember that currently the process is totally suspended
{
dwD = GetLastError();
return FALSE;
}

// Check to see if we have valid Headers:
//
/////////Get DOS hdr
B = ReadProcessMemory(hProcess, hModuleBase, &DOShdr, sizeof(DOShdr), &read);
if( (!B) || (read!=sizeof(DOShdr)) ) return FALSE;
if( DOShdr.e_magic != IMAGE_DOS_SIGNATURE ) //Check for `MZ
return FALSE;

//Get NT header
B = ReadProcessMemory( hProcess,
(VOID*)((DWORD)hModuleBase + (DWORD)DOShdr.e_lfanew), &NThdr, sizeof(NThdr), &read);
if( (!B) || (read!=sizeof(NThdr)) ) return FALSE;
if( NThdr.Signature != IMAGE_NT_SIGNATURE ) //Check for `PE\0\0
return 0;

// Valid EXE header!
// Look for a usable writable code page: -- this is where you seek the sections for a usable section
//

/////
//
if( (dwD=NThdr.FileHeader.NumberOfSections) < psechdr =" (IMAGE_SECTION_HEADER*)" b="FALSE;" dwd2="0" iterate="" sections="" for="" part="" which="" shouldn="" modified="" whatsoever="" because="" nazsoft="" sez="" bit="" long="" super="" novel="" give="" information="" u="" know="" confused="" listen="" when="" say="" points="" addr="" info="" from="" as="" see="" base="" addresses="" dll="" file="" functions="" are="" same="" programs="" psechdr="" isn="" true="" just="" easier="" way="" don="" use="" casting="" opers="" want="" do="" make="" sure="" correct="" amount="" was="" characteristics="" writable="" section="" const="" idata="" import="" strcmpi="" ignore="" cases="" small="" t="" find="" usable="" code="" found="" virtualaddress="" mysec="(VOID*)(SecHdr.VirtualAddress" global="" where="" asm="" instructions="" shuold="" ebx="*EBX" also="" remember="" top="" of="" stuff="" can="" read="" will="" already="" saved="" re="" going="" thread="" we="" them="" now="" starts="" mega="" occurs="" god="" knows="" uh="" system="" crash="" occur="" try="" save="" memory="" might="" injected="" must="" call="" upon="" following="" context="" b="TRUE;" change="" eip="(DWORD)mySec;" would="" be="" funny="" get="" an="" error="" all="" that="" goes="" and="" ever="" ist="" hat="" chagned="" s="" ok="" go="" back="" second="" break="" point="" another="" function="" ret="RestoreOriginalCodePage(" big="" need="" restore="" you="" but="" couldn="" ll="" leave="" it="" cause="" my="" self="" donno="" what="" to="" other="" than="" terminate="" target="" process="" break2="TRUE;" so="" lets="" have="" look="" at="" notepad="" is="" giving="" me="" a="" headache="" right="" keeps="" saying="" not="" enough="" m="" typing="" the="" rest="" in="" com="" program="" i="" love="" this="" thing="" p="" return="" if="" 0=""> successful
// if -1 -> (0xFFFFFFFF) WriteProcessMemory returned FALSE
// else -> Amount of bytes written + 1
// (to get exact amount of bytes written, you must decrement return value by one!)
//

DWORD RestoreOriginalCodePage( HANDLE hProcess, HANDLE hThread, DWORD *outSize )
{
BOOL B;
DWORD written;
CONTEXT Context;

if(outSize) *outSize = sizeofCP; //Just for user's info

Context.ContextFlags = CONTEXT_FULL; //look at winnt.h
GetThreadContext( hThread, &Context); //Get current thread context
//This isn't required, it's just for you to check the return
//value of LoadLibrary()
////It is in the EAX register (Context.Eax)

B = WriteProcessMemory( hProcess, mySec, OriginalCodePage, sizeofCP, &written );
//Restore original codepage

if(!B) return -1;

if(written!=sizeofCP)
return written+1;

//Restore context (EIP)
B=SetThreadContext( hThread, (CONST CONTEXT*)&OriginalContext);
if(!B) return -1;

return 0;
}





OK ATLAST!!!!!1

so now we're done!
You've seen how to do all this,,,now let me tell you how CreateRemoteThread() works...
You can skip this if you want...



CreateRemoteThread:

The CreateRemoteThread function creates a thread that runs in the virtual address space of another process

HANDLE CreateRemoteThread(
HANDLE hProcess, // handle to process
LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD
SIZE_T dwStackSize, // initial stack size
LPTHREAD_START_ROUTINE lpStartAddress, // thread function
LPVOID lpParameter, // thread argument
DWORD dwCreationFlags, // creation option
LPDWORD lpThreadId // thread identifier
);

Parameters:

hProcess
[in] Handle to the process in which the thread is to be created. The handle must have the PROCESS_CREATE_THREAD, PROCESS_QUERY_INFORMATION, PROCESS_VM_OPERATION, PROCESS_VM_WRITE, and PROCESS_VM_READ access rights. For more information, see Process Security and Access Rights.
lpThreadAttributes
[in] Pointer to a SECURITY_ATTRIBUTES structure that specifies a security descriptor for the new thread and determines whether child processes can inherit the returned handle. If lpThreadAttributes is NULL, the thread gets a default security descriptor and the handle cannot be inherited.
dwStackSize
[in] Specifies the initial size of the stack, in bytes. The system rounds this value to the nearest page. If this parameter is zero, the new thread uses the default size for the executable. For more information, see Thread Stack Size.
lpStartAddress
[in] Pointer to the application-defined function of type LPTHREAD_START_ROUTINE to be executed by the thread and represents the starting address of the thread in the remote process. The function must exist in the remote process. For more information on the thread function, see ThreadProc.
lpParameter
[in] Specifies a single value passed to the thread function.
dwCreationFlags
[in] Specifies additional flags that control the creation of the thread. If the CREATE_SUSPENDED flag is specified, the thread is created in a suspended state and will not run until the ResumeThread function is called. If this value is zero, the thread runs immediately after creation.
Windows XP: If the STACK_SIZE_PARAM_IS_A_RESERVATION flag is specified, the dwStackSize parameter specifies the initial reserve size of the stack. Otherwise, dwStackSize specifies the commit size.
lpThreadId
[out] Pointer to a variable that receives the thread identifier.
If this parameter is NULL, the thread identifier is not returned.


------

Return Values:

If the function succeeds, the return value is a handle to the new thread.

If the function fails, the return value is NULL. To get extended error information, call GetLastError.

Note that CreateRemoteThread may succeed even if lpStartAddress points to data, code, or is not accessible.
If the start address is invalid when the thread runs, an exception occurs, and the thread terminates.
Thread termination due to a invalid start address is handled as an error exit for the thread's process.
This behavior is similar to the asynchronous nature of CreateProcess,
where the process is created even if it refers to invalid or missing dynamic-link libraries (DLLs).


-----

Remarks
The CreateRemoteThread function causes a new thread of execution to begin in the address space of the specified process. The thread has access to all objects opened by the process.

The new thread handle is created with full access to the new thread. If a security descriptor is not provided, the handle may be used in any function that requires a thread object handle. When a security descriptor is provided, an access check is performed on all subsequent uses of the handle before access is granted. If the access check denies access, the requesting process cannot use the handle to gain access to the thread.

The thread is created with a thread priority of THREAD_PRIORITY_NORMAL. Use the GetThreadPriority and SetThreadPriority functions to get and set the priority value of a thread.

When a thread terminates, the thread object attains a signaled state, satisfying any threads that were waiting for the object.

The thread object remains in the system until the thread has terminated and all handles to it have been closed through a call to CloseHandle.

The ExitProcess, ExitThread, CreateThread, CreateRemoteThread functions, and a process that is starting (as the result of a CreateProcess call) are serialized between each other within a process. Only one of these events can happen in an address space at a time. This means the following restrictions hold:

1) During process startup and DLL initialization routines, new threads can be created, but they do not begin execution until DLL initialization is done for the process.
2) Only one thread in a process can be in a DLL initialization or detach routine at a time.
3) ExitProcess does not return until no threads are in their DLL initialization or detach routines.



Terminal Services: Terminal Services isolates each terminal session by design. Therefore, CreateRemoteThread fails if the target process is in a different session than the calling process.





Windows NT/2000/XP: Included in Windows NT 3.1 and later.
Windows 95/98/Me: Unsupported.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Kernel32.lib.


--------------------

ok i copied it from msdn to here :P

http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&safe=off&threadm=cl8L4.162599%24bm.706013%40news1.alsv1.occa.home.com&rnum=2&prev=/groups%3Fq%3DLLProc%26hl%3Den%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26safe%3Doff%26selm%3Dcl8L4.162599%2524bm.706013%2540news1.alsv1.occa.home.com%26rnum%3D2

Have a look at that site
It's an example of CreateRemoteThread() somone wrote...
I hope it's explanable from there?

plz post, and tell me if there shuold be part III
to fulfill something i haven't said right now
i will be glad to
if i had time


thats it for now
my eyes are draining

ok, thank you for reading PART II of my tutorial on how to inject a dll...

quiz:

What is dll injecting? And are its uses? And how do you do it? please elaborate :D :D

cya
-NRR TGA (aka NazSoft)
-CrankHank|EFNet#C++

Write to:
the-legions@mail.ru









The- Legions
http://i253.photobucket.com/albums/hh73/Tawdee/Blog/150x38.gif
«You may stop this individual, but you can't stop us all... after all, we're all alike.»
« potrete fermare me, ma non potrete fermarci tutti... dopo tutto, siamo tutti uguali.»
No-one is innocent

domenica 14 giugno 2009

DLL Injection - Part ONE - English


Article in english, this a short preamble by Guardian Angel

In questo momento, che io definisco "particolare", credo che tutti quelli che si occupano di informatica o hanno a che fare con il web, non sanno piu di che cosa parlare per non essere eventualmente fatti oggetto di segnalazioni o minacce. Qualsiasi cosa comunque, potrebbe essere usata contro di te, a meno che non parli della collezione di farfalle o delle tette della strafica di turno.
Io non ho una collezione di farfalle.
Non mi piace la gomma da masticare o manipolare chili di silicone.
Non mi piacciono le strafiche, mi piacciono le donne vere, in particolare una, da sempre, e prima o poi (anzi molto presto) credo che sara' l'unica.
Sono all'antica su certe cose, quindi come sempre controcorrente. Questo blog e' controcorrente.
Noi siamo per la libera circolazione delle idee e delle conoscenze. Noi siamo per il rispetto di tutti gli esseri umani che sono uguali, nella loro diversita'.
Ricordatevi che se mando articoli come questo, non e' che voglio incitare a fare i lamer da strapazzo, perche' questo e' il modo migliore per farsi beccare e ritrovarsi in un orto di cetrioli, se diffondo articoli cosi, e' perhe' vorrei che tutti siano in grado di conoscere determinate tecniche, non a scopo lesivo per altri, bensi per sapere come evitare perlappunto di trovarsi a vendere cetrioli.

E' in inglese, ed e' destinato a quelli che sono la parte "tecnica" dei lettori, con questo intendo dire appassionati non migliori. Chiunque puo fare determinate cose, basta soltanto cominciare.

























****************************
**
** BY: NRR - TGA
** Subject: DLL Injection - Part ONE
**
** -You'll probably steal this, and change my name to your name
** Then distribute like you want
** It's not like i can do anything about it, i'm just a poor lad
** who wishes the best for everyone...that's all
** --
** The original one is in this site all the time anyway, so don't waste your time :D :D
**
** The first revision is in www.planetsourcecode.com
**
** I have made some changes on this revision, and posted it to some other sites...
**
** Revision 2
**
****************************


It's time to rock! Time to have fun...
I'll tell you what DLL Injection is...
All explained simply, as if you're a dull, dumb donkey.

"Injecting a dll into a running process, is inserting the dll into the running process's address space.."
What you all -should- know is that when a process loads a DLL, whether statically or dynamically, it gets loaded into
the process's address space. Which means that, the process's/DLL's variables/memory in general, are all accessible
with normal C++ pointers by the DLL or the Process itself.

I'll explain how it works on win95/98/ME/XP/2k/NT everywhere :D --i did it all on VC++6... so i prefer
this compiler... Should work on .NET , probably on earlier versions too, I donno :P

One good use of DLL Injection would be to program an "API Spy" for example.
I called it like so and so have many other programmers. What such similar program would do is, according to some
specifications the user has provided, "Inject" a DLL into the chosen running process which monitors certain functions
of certain loaded DLLs and saves a log file of what function arguments were passed to that particular function.

Remember that when a DLL is loaded by a process, its image is loaded into the process's address space,
thus allowing both to access each other's variables simply using c++ pointers. Very interesting ;)...

Talking at a lower level, what my API Spy exactly does is 'debug' the chosen running process and thus suspending all of its threads.
It will then use some special API functions to be able to read it's private address space...(Read/WriteProcessMemory())
It will seek some place to inject some code into. It is ASM code ofcourse. What this ASM code does is: LoadLibrary("DLLtoINJECT.dll");
And add a breakpoint after the code. Then simply let the process run, starting with the beggining address of the injected code.
When the breakpoint is reached, the threads are suspended again and the API Spy restores whatever bytes it has modified and restores
all the registers and thus continuing with normal execution like if nothing happened. Kind of like hypnotising someone, slapping him, and bringing him back.
He'll have no idea of what just happened. Anyway, The loaded DLL does its job normally. Simple as that.

I told you what I shouldn't have... Don't think about all this now... PART II Explains the debugging part...

Some of you, so called 'experts', or probably arrogantly think they are experts, might tell people about CreateRemoteThread()...
Let me tell you this my friends...

"...it works on win95/98/ME/XP/2k/NT everywhere..."
-Above

Yes, also on win3.x and win32s, provided you do some small modifications...

I made a WSOCK32.DLL spy for mirc.exe... (mIRC chat client)
MAN !!! i had fun! I posted the log file with the tute...

Basically, DLL Inection gives you FULL control over an app.
Some of you script kiddies might think it's good for hacking, but once you get the hang of it, you'll have so much fun, that you'll drop hacking.
Hacking is bad. STAY AWAY FROM HACKERS

There are things you need to know before you read this article (Sorry couldn't just show 'em all, they're too much)

http://msdn.microsoft.com can be used to learn "ALL" of them

1) Memory management...You need to know how windows manages it's memory

2) PE/COFF Headers specifications <--the most important thing if you're doin this in win9x/ME -- 3) Basic debbuging APIs...Those are some APIs that help you to debug certain apps. 4) enough knowlege of asm...and OPCODES of instructions hmmm I think, if you read the WHOLE section of "Base Services" in The MSDN library, you should be able to learn all them steps(including PE/COFF SPECS) :P :P :P,, don't worry, i'll help you enough to find the articles that you need. Except ASM ofcourse, need to get some small "asm tutorial", then learn some "32bit asm" (API) Also read about Windows' calling conventions. ASM will help. First, let me tell you, i hate lazy people. You want to learn dll injection? atleast be glad that i posted some info in here, it took me a whole week to prepare an article like this. I'm not just giving you the butter, you need to research on your own...i'm just giving you a starter, and enough info to search on your own. If you don't like researching, then this article isn't for you. i'm sorry... ---Oh, forgot to mention, I love you "Matt Pietrek" I love you. You are Number one! I hope you read this! You can count me as one of your favorite students :P :P :P lol --- OK... How do i start? I told you what DLL Injection is... Well i'll talk more about it... Check the following links to learn what you need to learn: (I'll leave the asm part to you..search for it :D) *) Don't read it, i just found it interesting :P http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsetup/html/dlldanger1.asp Base services section in msdn library is here: msdn.microsoft.com/library section: Windows Development->Windows Base Services

1) DLLs, Processes, and threads : read the dll section ( just learn to make a small dll that exports a function),
So basically, look at DllMain() dll callback function in msdn, it should be like a crash course on Dlls.
Processes, and thread, are really not necessary to read, but it's recommended to. Look at the reference instead.
Just have an overview on the function names, and what they do.. Just helps to give you some inspirations when needed :).
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/dynamic_link_library_creation.asp


2) Debugging: (Read the basic debugging section only. It's easy BELEIVE ME)
(For PE Headers: read the Image Help Library, or look at step 3 instead)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/dynamic_link_library_creation.asp

3) Download the PE/COFF Format specifications file... It's a bit hard, but as i said, i'll help you through...
Just have a small peek at the Image Help Library section... Don't screw your self up :)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/dynamic_link_library_creation.asp

--- All of what i said, won't be REALLY neccessary if you are following me right.

Alright, let's start... What i'm doing is programming an API Spy. What this program does is, when the DLL I made becomes loaded into the address space of
the selected app, it monitors the MessageBoxA() function (if it was in the app's import table) and prepends "Nassoooor sez: " to every
MessageBox shown by the program. This is were knowledge of PE/COFF Format specs. is required.
(Note that i got my inspiration from Matt Pietrek's MEGA book, Windows 95 programming secrets - god bless you)

I'll start in a reverse way...
I'll make the DLL file first...
--
I'll put 3 functions in the DLL, which write the information to the log files (do them on your own :P)

HANDLE OpenLog( char *FileName );
BOOL AppendLog( HANDLE hLog, char *buffer, DWORD bufSize );
BOOL CloseLog( HANDLE hLog );
--
Read CreateFile() in msdn, it will help you make those 3 functions
OpenLog basically just does this:
return CreateFile( FileName, GENERIC_WRITE|GENERIC_READ, FILE_SHARE_READ, OPEN_ALWAYS, 0, 0 );
GENERIC_*: open file for read/write||
FILE_SHARE_READ: apps can read file while handle to it is opened
OPEN_ALWAYS: Open file, or create it if it does exist

AppendLog(...):
use SetFilePointer( hLog, 0, 0, FILE_END ) to set pointer to end of file
Then WriteFile() to write buffer to file :D

CloseLog(..):
CloseHandle( hLog );

that's it

--
Dude, if you haven't been able to understand all that, then believe me, this tutorial is not for you. Go out and play. Have fun, do your job. Just leave this tutorial alone.
--

First you need to make a dll, here is what it should do:

Put the 3 logfile functions in the dll...
When the dll is loaded ( in DllMain() ), and fdwReason is equal to DLL_PROCESS_ATTACH, do this:
Create the log file (OpenLog)
Append: "******************\r\nDLL_PROCESS_ATTACH\r\n"; (\r == CR, \n == LF -- in windows, atleast)
Then, Call the function that will "HOOK" MessageBox from the calling process.
........

The function that will "HOOK" MessageBox():

To hook MessageBox(), you must create a function that will be called INSTEAD of it.
Therefore, the function's definition must be exactly like the one of MessageBox:

int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType); //This is how it's declared in msdn

int WINAPI MyMsgBox(HWND hWnd, LPCTSTR lptext, LPCTSTR lpcaption, UINT utype); //This is how you declare it

//WINAPI is a calling convention, Search "CALLING CONVENTIONS" on msdn, it means push the parameters of the function
into the stack from Right-To-Left, instead of Left-To-Right (aha! Did you read an asm tutorial? tsk tsk tsk)

--Just always add WINAPI when it's an API function :P

Ok, and now you need to create a function type:

typedef int(WINAPI *MyMsgBoxProc)
(HWND hWnd, LPCTSTR lptext, LPCTSTR lpcaption, UINT utype); //I hope you know what this means?

************************************
* Always remember that IRC chat rooms will help you alot in your programming.
* download mIRC if you're using windows..mIRC is a chatting client...www.mirc.com
* Enter "EFNet" server -- Channel: #C++,,, I'm CrankHank....or ask the operators for help,they're more preferable
***********************************

Okay, Did you read about PE headers??
Here is the code of the DLL:

// Hook proc.cpp
//

#include
#include
#include
#include

using namespace std; //Don't tell me you don't know what standard C++ is??

#define LogFile "d:\\logs\\LOG.txt"
#define Append(text) AppendLog(hLogFile, text, strlen(text))
//hLogFile is the global variable defined below:

HINSTANCE g_hInst=0;
HANDLE hLogFile=0;

BOOL DoHookProcs();
PROC WINAPI HookImportedFunction(HMODULE,PSTR,PSTR,PROC); //inspiration from Matt Pietrek

BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID _Reserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH:
g_hInst = hInstance; //Remember dll instance

hLogFile = OpenLog( LogFile );
Append("\r\n************************\r\nDLL_PROCESS_ATTACH\r\n"); //(look at the #defines above
//The handle is a global variable in my case, so didn't need put it

DoHookProcs(); //<--main function return true; //if you return false, then the process that called LoadLibrary() will return 0 break; case DLL_THREAD_ATTACH: Append("DLL_THREAD_ATTACH\r\n"); //Remember that a program can have more than one thread break; //So you need to handle them in here, and in the next case,,,but, This is just a fast program //for processes with one thread,,works for them with multiple threads, but not all the time case DLL_THREAD_DETACH: Append("DLL_THREAD_DETACH\r\n"); // break; case DLL_PROCESS_DETACH: Append("DLL_PROCESS_DETACH\r\n********************\r\n\r\n"); //append (look at the #define) CloseLog(); //ummmmmmmmmmmmmm, guess what this does? return true; break; }//end switch(dwReason) return true; } //////// OK i hope you understood this, UNTIL NOW... Now all we have left is DoHookProcs(), then HookImportedFunction() If you haven't.. Then I think nothing from now on shall be understood.. //////////////////// /* Now, we need to "hook" MessageBoxA() If you learned PE/COFF header specs, then this should be easy What you need to know is look for the Import Table of the module loaded in memory(Running process). //You can get the module's base address by doing this: GetModuleHandle(0); (in the dll, HMODULE == BaseAddress of module) ...yeah, if you look at that address, you'll see the first bytes as the signature of a DOS MZ file!!! (READ THE PE/COFF SPECS THAT I INSTRUCTED YOU TO) ----------- After you find the import table, you iterate(enumerate) the functions imported in the dll (Note that a function will not be in the import table if it was loaded at run-time, not statically!) Look for the function that you want to hook, in our case, it's: DLLFile= USER32.DLL FUNCTION= MessageBoxA Remember that case is sensitive, and the 'A' at the end of MessageBox is also important. It's just declared like that in the DLL file, and vc++ (windows.h) does a #define MessageBox MessageBoxA Therefore MessageBox() is not a real function in the DLL, but MessageBoxA() is. ----------------- OKAY! - According to the PE/COFF specs that i told you to read.. In the .exe file, you'll find the function name in the import table, but when the image is in memory You WON'T... Only the entry point of the funcion (MessageBoxA()) will be in memory... You want the entry point. So ofcourse, you must look at the image in memory. You are already doing that. You need to get the entry point of "MessageBoxA" (in the HookImportedFunction() proc) using this: GetProcAddress(GetModuleHandle("USER32.DLL"), "MessageBoxA"); //Note that i used GetModuleHandle... because USER32.dll is "SUPPOSED" to be already loaded, because the app calls //MessageBoxA from USER32.dll, right? So it must load the dll file in it's address space in order to do it! hehe // // So, you did GetProcAddress() to get the procaddr of MessageBoxA().... --------- Like I said, read The MSDN Library if you found an ununderstood function... and now, So you found the function in the import table... now what you need to do, is just save that value(entry point) --incase you wanted to restore it-- and replace it with your new entry point...Which will be your MyMsgBox()'s entry point.. Cool huh?? So whenever the program calls MessageBoxA()... MyMsgBox() gets called instead... In the function MyMsgBox(), you can do what ever it is that you want... And after you're done, you can either call the original MessageBoxA() function to let the program work normally as if no change has occured. BUTTTTTTTTTTTTT, not through just simply calling the function MessageBox(), doing that will be like recursively calling the MyMsgBox() function. What you must do is call the addr returned from GetProcAddres() that i told you to call, above^^ So, if you did this: OriginalMessageBoxProc = (MyMsgBoxProc)GetProcAddress(GetModuleHandle("USER32.DLL"), "MessageBoxA"); What you then must do is this: OriginalMessageBoxProc( hWnd, lpText, lpCaption, uType ); //simple :D :D :D :D ^ |<--------------------------------\ | ok, you got that?????? now let's get to the code: | //Lets declare some things: |__________________________________________________________________ | typedef int(WINAPI *MyMsgBoxProc)(HWND hWnd, LPCTSTR lptext, LPCTSTR lpcaption, UINT utype);//remember this? | MyMsgBoxProc OriginalMessageBoxProc; //<--------------This is where we store the original MessageBox()--/ // Macro for adding pointers/DWORDs together without C arithmetic interfering -- I got it from Matt Pietrek's book // Thought it'd be great to use.. #define MakePtr( cast, ptr, addValue ) (cast)( (DWORD)(ptr)+(DWORD)(addValue)) //This code is very similar to Matt Pietrek's, except that it is written according to my understanding... //And Matt Pietrek's also handles Win32s --(Because they have some sort of a problem, or something) PROC WINAPI HookImportedFunction(HMODULE hModule, //Module to intercept calls from PSTR FunctionModule, //The dll file that contains the function you want to hook PSTR FunctionName, //The function that you want to hook ("MessageBoxA" in our case) PROC pfnNewProc) //New function, this gets called instead { PROC pfnOriginalProc; //Read up MSDN for these IMAGE_DOS_HEADER *pDosHeader; IMAGE_NT_HEADERS *pNTHeader; IMAGE_IMPORT_DESCRIPTOR *pImportDesc; IMAGE_THUNK_DATA *pThunk; if ( IsBadCodePtr(pfnNewProc) ) return 0; // Verify that a valid pfn was passed --look at msdn-- pfnOriginalProc = GetProcAddress(GetModuleHandle(FunctionModule), FunctionName); //remember this? if(!pfnOriginalProc) return 0; pDosHeader = (PIMAGE_DOS_HEADER)hModule; //Look at ImgHelp function reference in the Image Help Library section in msdn ////////////////// To do this in an easier way, according to your imaginations ////////////////// I'm doing it this way, so you'd learn exactly what's happening //hModule is the Process's Base address, remember? (GetModuleHandle(0)) <-- even if called in the dll, it still // gets the hModule of the calling process //---That's why i saved hInstance of DLL, g_hInst, in DllMain(), because it's the only way to get it(i think) // Tests to make sure we're looking at a module image (the 'MZ' header) if ( IsBadReadPtr(pDosHeader, sizeof(IMAGE_DOS_HEADER)) ) return 0; if ( pDosHeader->e_magic != IMAGE_DOS_SIGNATURE ) //Image_DOS_SIGNATURE is a WORD (2bytes, 'M', 'Z' 's values)
return 0;


// The MZ header has a pointer to the PE header
pNTHeader = MakePtr(PIMAGE_NT_HEADERS, pDosHeader, pDosHeader->e_lfanew); //it's like doing pDosHeader + pDosHeader->e_lfanew
// e_lfanew contains a RVA to the 'PE\0\0' Header...An rva means, offset, relative to the BaseAddress of module
// (Or file offset)----pDosHeader is the base address..and e_lfanew is the RVA,,, so summing them, will give you the
// Virtual Address..


// More tests to make sure we're looking at a "PE" image
if ( IsBadReadPtr(pNTHeader, sizeof(IMAGE_NT_HEADERS)) )
return 0;
if ( pNTHeader->Signature != IMAGE_NT_SIGNATURE ) //IMAGE_NT_SIGNATURE is a DWORD (4bytes, 'P', 'E', '\0', '\0' 's values)
return 0;

// We now have a valid pointer to the module's PE header. Now get a pointer to its imports section
// This is where action and adventure starts
pImportDesc = MakePtr(PIMAGE_IMPORT_DESCRIPTOR, pDosHeader, //IMAGE_IMPORT_DESCRIPTOR *pImportDesc;
pNTHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);

//What i just did was get the imports section by getting the RVA of it(like i did above), then adding the base addr
//to it
//////////// pNTHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress
//////////// IMAGE_DIRECTORY_ENTRY_IMPORT==1 -- Look at that PE documentation i gave you in the links section
//////////// They are the only good ones i found in the internet,,,Also Pietrek's articles in MSJ and MSDN Magazine will
//////////// Be real helpful!


//Go out if imports table doesn't exist
if ( pImportDesc == (PIMAGE_IMPORT_DESCRIPTOR)pNTHeader )
return 0; //pImportDesc will ==pNTHeader,, if the RVA==0,,, cause pNTHeader+0==pNTHeader -> stored in pImportDesc
//Therefore, pImportDesc==pNTHeader

// Iterate through the array of imported module descriptors, looking
// for the module whose name matches the FunctionModule parameter
while ( pImportDesc->Name ) //Name is a DWORD (RVA, to a DLL name)
{
PSTR pszModName = MakePtr(PSTR, pDosHeader, pImportDesc->Name);

if ( stricmp(pszModName, FunctionModule) == 0 ) //str"i"cmp,,, you should ignore cases when comparing, in our case
break; //or strcmpi() in some compilers

pImportDesc++; // Advance to next imported module descriptor
}

// Get out if we didn't find the Dll name.
// pImportDesc->Name will be non-zero if we found it.
if ( pImportDesc->Name == 0 )
return 0;

// Get a pointer to the found module's import address table (IAT) =====IMAGE_THUNK_DATA *pThunk;
pThunk = MakePtr(PIMAGE_THUNK_DATA, pDosHeader, pImportDesc->FirstThunk);
//This is what i was talkin about earlier...
//In pThunk, if it was image loaded in memory, you'll get the address to entry point of functions
//but in a disk file, It's a function name

// Look through the table of import addresses, of the found DLL, looking for the function's entry point
// that matches the address we got back from GetProcAddress above. (remember?)

while ( pThunk->u1.Function )
{
if ( (DWORD)pThunk->u1.Function == (DWORD)pfnOriginalProc )
{
// We found it! Overwrite the original address with the
// address of the interception function. Return the original
// address to the caller so that they can chain on to it.
pThunk->u1.Function = (PDWORD)pfnNewProc; // pfnNewProc is in the parameters of the function
//pfnOriginalProc = (PROC)(DWORD)pdw1;
return pfnOriginalProc;
}

pThunk++; // Advance to next imported function address
}

return 0; //function not found!!!!!
}
-------------------------------------------------------

THAT"S IT!!!!!!!
Ok, i'm glad we finished this function :P

remember the declarations?
{

//Lets declare some things:

typedef int(WINAPI *MyMsgBoxProc)(HWND hWnd, LPCTSTR lptext, LPCTSTR lpcaption, UINT utype);//remember this?

MyMsgBoxProc OriginalMessageBoxProc; //<--------------This is where we store the original MessageBox() } This is how you call the above function,, OriginalMessageBoxProc = (MyMsgBoxProc)HookImportedFunction( GetModuleHandle(0), "USER32.DLL", "MessageBoxA", (PROC)MyMsgBox) ^^^^Insert this in the DoHookProcs() function... ok,,,,,,so this is the finished off dll: BOOL WINAPI DllMain(...) { . case DLL_PROCESS_ATTACH: g_hInst = hInstance; //Remember dll instance hLogFile = OpenLog( LogFile ); Append("\r\n************************\r\nDLL_PROCESS_ATTACH\r\n"); //(look at the #defines above //The handle is a global variable in my case, so didn't need put it DoHookProcs(); //<--main function return true; //if you return false, then the process that called LoadLibrary() will return 0 break; . . } and: BOOL DoHookProcs() { OriginalMessageBoxProc = (MyMsgBoxProc) HookImportedFunction( GetModuleHandle(0), "USER32.DLL", "MessageBoxA", (PROC)MyMsgBox); //check if no error occured, return false, if error, true if no error if(!OriginalMessageBoxProc) return false; return true; } okkkkkkkkk So the function MyMsgBox gets called instead of MessageBox()... Let's see how the funciton looks like,, this should be simple: int WINAPI MyMsgBox(HWND hWnd, LPCTSTR lptext, LPCTSTR lpcaption, UINT utype) { int ret; //need to save ret value ofcourse char bufText[1024], bufCaption; strcpy(bufText, "Nassoooooor sez: "); strcat(bufText, lptext); strcat(bufText, "\n\n\n SAVED TO LOG FILE!!"); strcpy(bufCaption, "Caption=="); strcat(bufCaption, lpcaption); /////Do whatever crap that you want ret = OriginalMessageBoxProc( hWnd, bufText, bufCaption, utype ); //If you call MessageBox( instead,,, // one of 2 might happen: // 1) Get redirected back to this function, so it becomes like an infinite recursion function, until crash // 2) MessageBox() of the dll will be called. It has nothing to do with the process... // --Think, which of these 2 will happeN? if you did as i told you, and read the links that i gave you, and understood // all this, then you shuld have no problem in asnwering this quesion :D :D :D // Maybe do some stuff here Append("MessageBoxA Called!\r\n\tText=\"") Append(lptext); Append("\"\r\n\tCaption=\""); Append(lpcation); Append("\"\r\n\treturn value=...); . . ................. return ret; } that's it, we're done!! okay,,, when you put these functions in the dll, make this new program: win32app: in: WinMain(..) { HMODULE hModule; MessageBox(0, "Function not intercepted!", "NazSoft INFO BOX", 0); if(! (hModule=LoadLibrary("MyDll.dll")) ) MessageBox(0, "Function could not be intercepted!", "NazSoft INFO BOX", 0); else MessageBox(0, "Function intercepted!", "NazSoft INFO BOX", 0); FreeLibrary(hModule); MessageBox(0, "Function called after freeing library,,, A program crash will occur here, because we didn't restore the import table as it was :D :D", "NazSoft INFO BOX", 0); return 0; } MyDll.dll is that compiled dll above ------------------- That's it for PART ONE... You injected a dll into a process.. but it's not what we want, cause you need source code, recompilation, etc... In part two, i'll teach you how to do this in processes not yours... Just start a program like mirc.exe,, without modifying the source code,, and intercept the winsock fucntions,,, it's gonna be fun... So until then,,,.... cyaaaaaaa then, i'm posting part 2... It's ready already ;) so hurry up
lol cya

the-legions@mail.ru
Non fare esperimenti se non sai che cosa stai facendo. Soprattutto usa il cervello e non pensare di essere furbo. Ci sara' sempre qualcuno che e' piu furbo di te. Se qualcuno avesse intenzione di usare quanto sopra a scopi non chiari, e' vivamente pregato di non contribuire con un operato non in linea con i principi esposti nella premessa, a rendere solo piu potenti i Grandi Censori della Rete.

ASTALAVISTA



Photobucket
The- Legions
http://i253.photobucket.com/albums/hh73/Tawdee/Blog/150x38.gif
«You may stop this individual, but you can't stop us all... after all, we're all alike.»
« potrete fermare me, ma non potrete fermarci tutti... dopo tutto, siamo tutti uguali.»
No-one is innocent

lunedì 8 giugno 2009

Viva il presidente stallone - Silvio difeso dai Papi Boys-ITALIA CHE COSA STAI FACENDO?

Dopo i risultati del voto, dopo queste notizie, ho voglia di dire una sola frase:

ITALIA CHE COSA STAI FACENDO?

Continua la disfatta dello Stato Italiano, su quasi tutti i fronti, e vorrei essere ottimista usando il condizionale, ma non lo sono affatto.

Tengo a precisare che io personalmente non ho nessuna intenzione di farmi rappresentare al Parlamento Europeo da un Borghezio o da uno "Stallone" degni di un film- commedia della peggiore saga ital-deficente.

Come cittadino italiano, critico apertamente e profondamente tutti gli italiani che, con quale coraggio non lo so ancora, continuano a NON VOLER CAPIRE che non siamo in una telenovela, o forse Mediaset e' una droga cosi potente che ha rammollito il cervello di molte persone, oppure se e' vero quel detto che "gli uomini ad una certa eta diventano maiali" ebbene, questo e' il risultato.

Come uomo e come cittadino italiano (se continua cosi rinuncio alla cittadinanza italiana e lascio quella statunitense) mi dissocio apertamente da tutto questo che io definisco "schifezza" roba che fa impallidire i giornaletti porno.

Guardian Angel e' di sinistra. Questo blog e' di sinistra. Guardian Angel sono io, lo stallone e' un a figura che potrbbe andare o in una scuderia o tra le lenzuola, dipende dai gusti, io in questo momento direi che e' una figura da DARSI ALL'IPPICA con tutti i rincoglioniti Papy Boys che pensano che una dose di Viagra sia la soluzione alle loro porcal-voglie.

No, io non sono un santo, non faccio sesso-astinenza, sono un uomo anch'io, ma non penso che la virilita' sia qualcosa che vada ostentata o peggio, debba diventare un mezzo per fare adepti. E poi ci si lamenta delle donne che vengono violentate, ci si stupisce se la tua amica ha paura a tornare a casa con l'autobus, adesso non mi stupisco piu, anzi, e' da un bel po di tempo che non mi stupisco piu di niente, da quando ho visto che pure nel mezzo di un terremoto ci sono i "Boys". E adesso lo dico.

Molte donne qui (L'AQUILA SI ABRUZZO TERREMOTO) hanno rischiato di essere infastidite, ma la parola e' un'altra, non la posso dire ma e' facile da immaginare.

Mi vergogno di tutto questo, non ho parole per esprimere il mio disappunto e la mia insoddisfazione, ce l'ho apertamente con tutti quelli che non si stanno rendendo conto che stiamo precipitando in un baratro che porta la nostra Nazione indietro di un secolo minimo, come modo di pensare e come tutto il resto.

Passo alla notizia, questa e' stata diffusa via web, purtroppo, e' una delle poche volte che avrei voluto non diffondere un bel cazzo di niente.


Silvio difeso dai Papi Boys

Notizia del 8 giugno 2009 - 09:00

Al grido di "Viva il presidente stallone", interi gruppi di lettori di Libero.it prendono le parti del Premier sostenendo che tiene alta nel mondo l'immagine dell'italiano stallone. Davvero?

foto

di Giorgia Camandona

Chi pensava che certe foto di ragazze sdraiate a bordo piscina avrebbero fatto scalpore si sbagliava di grosso. Altro che opinione pubblica sconvolta e scioccata. Altro che indignazione. Qua nessuno è più capace di storcere il naso. Tra i lettori di Libero.it sono in tanti a difendere Berlusconi, lo osannano addirittura, per le sue (presunte) doti di latin lover, per l'immagine da macho italiano che esporta (ma non stavamo esportando grandi figuracce?). Chiamateli pure Papi Boys.

Viva il Papi che brinda al compleanno di Noemi. Viva il Papi lui sì che sa organizzare le feste. Viva il Papi che ha una bella villa in Sardegna. Viva il Papi che è ricco e famoso e tutte le donne lo vogliono. Il senso è questo. Più o meno come quando i ragazzini impazzivano sotto il balcone di Corona appena scarcerato e questo gli lanciava le mutande con il suo nome sopra. Lo stesso genere di ammirazione, per chi finisce sui giornali (non importa per quale ragione), per chi ha denaro e belle donne. Sono questi i valori dell'italiano medio.

Manu706 la butta sul che ce ne importa, mica sono affari nostri: «Non posso credere che il quotidiano spagnolo non avesse di meglio da pubblicare! Ma chi se ne frega di cosa fa Berlusconi a casa sua? Chi se ne frega di cosa fanno i suoi ospiti? Chi se ne frega se va alla festa di una ragazzina?». Lallapiro sostiene che tutte le donne vorrebbero essere al posto di quelle ritratte nelle foto, a bordo piscina: «L'invidia fa parlare.... quante vorebbero stare al posto delle veline?». Poi c'è chi tira fuori Sircana: «Penso che sia meglio avere la casa piena di belle donne ( come quelle nelle foto e tutte maggiorenni) che andare in cerca di travestiti o squillo, per strada e negli alberghi». Alvin non fa giri di parole: «Beato lui (Silvio, ndr.) che può». Qualcuno fa notare che Noemi all'epoca delle foto era minorenne e Caspiterinz ha subito la risposta pronta: «Adesso siamo al ridicolo, allora io che ospito un amico di mio figlio che ha 17 anni e mezzo sono una pedofila??????» con tanti punti interrogativi.

E infine il grande classico: è tutta invidia. Iaietta82 chiosa: «Perché è proibito stare nudi in casa o invitare qualcuno nel proprio giardino! Vabbè che siete pieni di invidia e di odio ma francamente fate davvero ridere!».

Sì, facciamo davvero ridere, ma per motivi diversi

Notizia del 5 giugno 2009 - 12:00

Sequestrate in Italia, le pubblica stamattina "El Pais". Sono cinque: tanga e topless, Berlusconi in nero, un uomo nudo e gente che prende il sole. Il premier: «Non ho nessuna paura ma questa è una violazione del privato e una aggressione scandalosa»



"Las fotos vetadas por Berlusconi", il concetto in spagnolo suona così. Alla fine è stato El Pais a pubblicare "una selezione delle fotografie delle feste del Cavaliere". I famosi scatti di Antonello Zappadu (già denunciato dal premier per violazione della privacy e tentativo di truffa) a Villa Certosa nel maggio 2008, quelli sequestrati dalla Procura di Roma. Il fotografo sardo ieri aveva buttato il sasso: le ho vendute all'estero. E oggi abbiamo scoperto a chi. El Pais ne pubblica 5: ragazze in tanga e topless, un ospite maschile nudo, Berlusconi in nero, gente varia che prende il sole sui lettini. Niente di più niente di meno.

Le facce sono oscurate, tutte tranne quella del padrone di casa. C'è da dire che i toni degli articoli che accompagnano le immagini sono piuttosto duri. Tanto che certi titoli di casa nostra sono carezze al confronto. «Le foto - si legge nell'editoriale - non violano la privacy del primo ministro ma svelano la sua deriva autoritaria. Se finora le sue uscite erano state prese come uno scherzo, oggi esistono nuovi e gravi motivi per avvertire che il premier sta mettendo a rischio il futuro dell'Italia come Stato di diritto». Stangata finale: «Un'Italia che scivola lungo la china verso la quale la sta trascinando Berlusconi non è un motivo di preoccupazione solo per gli italiani, ma per tutti gli europei».

Giornali esteri amici e complici della sinistra italiana? Manco tanto visto che su El Pais, tra i tanti sul Noemigate, c'è un titolo che recita così: "Dónde está la izquierda italiana?"



Le foto di Villa Certosa pubblicate da El Pais



La lettera di Silvio Berlusconi al Garante della Privacy dove il Premier chiede di inibire la pubblicazione delle foto che lo riguardano


Scoop di l'Espresso che racconta delle feste di capodanno del Cavaliere tra donne, gioielli, shopping, balli e bagni in piscina. Nella foto: Camilla Ferranti


Ricordate Imma, la concorrente del reality "Un due tre... Stalla!" di Mediaset? Ebene, c'era anche lei secondo l'Espresso


Insieme a Marianna e Emanuela, gemelline sexy già meteorine di Emilio Fede


Peter Gomez e Marco Lillo hanno scovato una gola profonda, una partecipante al capodanno sexy in Sardegna del Cavaliere


Quello a cui sono state invitate anche Noemi e la sua amica Roberta (all'epoca ancora 17enni), per intenderci



Colpisce, tra le varie storie riportare da l'Espresso a base di feste e donne, il racconto su Sabina Began e sul suo tatuaggio: una farfalla circondata dalla frase "L'incontro che ha cambiato la mia vita: S. B." Ecco questa si e' data all'ippica come si vede alle sue spalle



Non è la prima volta che Silvio accoglie a casa sua giovani ragazze. Il settimanale "Oggi" pubblicò alcune foto, anche in copertina, dedicate a Silvio Berlusconi e alle sue giovani ospiti


Silvio non ha gradito la pubblicazione di queste immagini e ha minacciato querele contro il settimanale


Una delle misteriose ragazze che tiene per mano Berlusconi è Angela Sozio, ex concorrente del Grande Fratello "Stasera vado a giocare a bocce"


Le Silvio's girls (Belle bocce pero')


Si proprio belle bocce Bel gioco, altro che palestra............



Adesso, mando i risultati delle bocce, cioe' delle elezioni, qui tra bocce ed elezioni SONO RIMASTO SENZA PAROLE
Comunque, quello che fa Berlusconi nella vita privata sono cavoli suoi, io ce l'ho con quelli che lo votano.

Verso Strasburgo ladrona

L'Europa svolta a destra e da noi stravince la Lega. Frena il Pdl e a sinistra cala anche il Pd. Soddisfatto?

Moltissimo Grazie. Libero chiaamati solo Infostrada e' meglio per te dammi retta (G.A.)

di Daniele Passanante

Evidentemente ha pagato fare proseliti sul tema dei clandestini e la Lega ha vinto ancora. In Veneto alle Provinciali si è sfiorato addirittura il testa a testa tra Carroccio e Pdl, anche se alla fine il sorpasso non c'è stato. Persino Silvio Berlusconi che in campagna elettorale si è guadagnato la tessera virtuale della Lega (era il 10 maggio quando Roberto Calderoli aveva commentato il "no" del presidente del Consiglio alla società multietnica) ha cavalcato la tigre del clandestino e Ignazio La Russa a cose fatte l'ha accusato di avere fatto propaganda a Bossi. Risultato: il Popolo della Libertà ha perso qualche consenso, complice l'astensionismo galoppante (ha votato il 67% degli aventi diritto, il 6% in meno delle ultime Europee) e forse il caso Noemi. Ma il centrodestra nel suo complesso può stare tranquillo con il 45 per cento abbondante e l'Umberto può esultare. E infatti quel 10% raggiunto a livello nazionale era al di là di ogni aspettativa: «Se ci arrivassimo - aveva detto dopo aver votato in un seggio della sua Gemonio - sarei contento, molto contento».

Situazione simile anche nel centrosinistra dove cala anche il Partito democratico, fermo al 26% (alle politiche aveva ottenuto il 33,2%). I sondaggi però davano il partito guidato da Dario Franceschini al 22% solo qualche mese fa e in fondo il Pd non ha perso moltissimo, mentre l'Italia dei Valori è salita all'8%. Insieme raggiungono il 34%, in totale 3 punti circa in meno rispetto alle Politiche dell'anno scorso. Ancora una débacle per la sinistra radicale che si è presentata divisa tra Prc-Pdci da una parte e Sinistra e Libertà, dall'altra. Potevano farcela se si fossero presentati insieme: la somma dei due partitini rosso-verdi raggiunge infatti il 6,5%. E invece distinti restano a casa e ottengono l'uno il 3,4% e l'altro il 3.1% senza raggiungere la quota di sbarramento del 4%. Un risultato che sommato a quello di Pd e Idv avrebbe portato il centrosinistra al 40.5%. Senza contare i Radicali, sconfitti anche loro con il 2.4%.

Passa invece col 6.5% l'Udc di Pierferdinando Casini, partito che Massimo D'Alema ha provato a portare dalla sua parte senza risultato. Se il baffo della sinistra ci fosse riuscito, l'Italia sarebbe stata spaccata esattamente in due.
Signori Signore e Indecisi "Vado a vivere in campagna"


ASTALAVISTA
Oggi siamo in lutto, per cui abbiamo a cena tutta la Santa Inquisizione.
C'e' pure Frate Pomicione.
Tanto per stare al passo coi tempi.
E Sorella Luna.
Vestita di pelle.
UMANA
The- Legions
http://i253.photobucket.com/albums/hh73/Tawdee/Blog/150x38.gif
«You may stop this individual, but you can't stop us all... after all, we're all alike.»
« potrete fermare me, ma non potrete fermarci tutti... dopo tutto, siamo tutti uguali.»
No-one is innocent

HELP REQUEST FOR THE ITALIAN FRIEND: ENRICO FORTI Sentenced to life in the USA (The final indictment of Public Prosecutor)

From:


The-Legions Pages on Facebook (USA)

To "\ALL/" USA Friends



HELP REQUEST FOR THE ITALIAN FRIEND: ENRICO FORTI Sentenced to life in the USA (The final indictment of Public Prosecutor)


Beyond any reasonable doubt...

These the groups on Facebook for help Enrico Forti:


Andrea Casari pro Chico Forti











Chico Forti: un innocente condannato all'ergastolo!!

An absurd story! My friend Chico Forti, a former windsurfing champion, a producer of short films, was in Miami at the murder of fashion designer Versace and Cunanan suicide-----read more




To "\ALL/" The People who Still ^W A N T - T O - B E L I E V E^

The story of Enrico Forti (nicknamed Chico)
Sentenced to life without parole in the USA after an unfair trial with no way out
"The State does not have to prove that he is the shooter in order to prove that he is guilty…"
(From the final indictment of the Public Prosecutor)

Enrico Forti (known as Chico), Italian citizen from Trento and US resident in Miami (Florida) for several years, where he carried out entrepreneurial activities, has been accused by American judges to have killed an Australian called Pike, who was the son of an Australian entrepreneur with whom Forti had signed a contract to purchase a hotel complex in Ibiza (Spain). Forti refers to having defined the contract with Pike's father, who had asked to take his son with him to work in the hotel in order to get the boy used to a new way of life, seeing that his previous lifestyle was not accepted by his father. Forti specifies that the father had therefore requested that the three of them meet in Miami. Forti had organized the arrival of Pike jr. in Miami, to be followed a few days later by his father. Forti picked Pike jr. up from the airport and left him at a car park, where the latter told him that he was going to be picked up by friends where he would stay for a few days. Forti went to the other airport in Miami to meet his father-in-law who had long planned a visit to his daughter and son-in-law.

The morning after, the corpse of Pike jr. was found on a beach some distance from the place where Forti had dropped him off the night before.

Chico was arrested and then let off with two accusations a few days later. The first accusation was of murder, and the second was for fraud in relation to the purchase of the hotel complex with Pike. The second accusation was soon dropped, but the first accusation of murder remained.

Forti was arrested on bail again in October/November 1999, near to the date of his trial, after a year that he had lived a normal life, except for the fact that he was not allowed to leave the U.S. He was sentenced to life imprisonment in June 2000 for the murder of Pike jr. This sentence foresees no possible sanctioning, which means that if Forti is not absolved or reprieved, he will only leave the prison as a dead man.

As evidence shows and according to Forti's solicitors, the accusation is exclusively based upon a lie made on behalf of Forti, during the first hours of his arrest, when he denied knowing Pike jr. and was further led to believe that the father was also dead. A few hours after, the first version was changed, informing the authorities that Forti himself had actually gone to the airport to meet Pike jr. for the first time and collect him from the airport, confirming also that he had paid the airfare and that he would meet the father there a few days later. The board of inquiry also believe obvious that Forti could not have physically carried out the murder himself, but could have been the instigator. It is difficult to understand the motivation, as the deal with the father had concluded and the law in Anglo-Saxon countries is different to that in Italy where possessions are automatically passed onto the next of kin, as everyone is free to leave their possessions to whoever they desire.

In this specific case, there is no reason to believe that if the sale had not gone ahead, Pike jr. would have reaped any advantage, as relations between father and son had not been good for a while, and the son led an independent life away from his father with no particular ties.

The only element that sustains the accusation, and therefore determines Forti's condemnation to life imprisonment, is the lie voiced by Forti in the first hours of his arrest, that denying knowing Pike jr, because police of Miami say also lies to him, when saw to him that also Pike senior was not to be found. This is the voice of Enrico Forti during a little documentary by italian tv across 2004. [Chico Forti http://www.chicoforti.com] say that him denying knowing Pike jr, because after come back to Miami after listen the notice of the death of Pike jr, when the police saw to him the fake notice that also Pike senior was not to be found, him have take fear and saw a lie.

Enrico Forti don't had problems with justice before this fact.

More U can read:
HERE (Facebook Causes)
HERE (Facebook Causes 2)
HERE (EN-ITA Albaria Site)
HERE (Seve Home-ONE CHANCE FOR CHICO)
HERE (EN Wikipedia org)
HERE (Sailing Sardinia it)
EN Chicoforti com (Official Site)
HERE (EN ITA Chicoforti com Official Site)
HERE (IT La Soria di Chico Blog RAI it)
HERE (Indopedia)


CHICO HAS WRITTEN FROM PRISON READ THE LETTER

Into the jail
but still I hope `
26/05/2009 17:40 L'Adige

According to the proverb "He who finds a friend finds a treasure" for some time I became rich, I discovered thousands of new and old friends through Facebook. It is true that "it is never too late '... now when I thought people had forgotten about me, here is the pleasant surprise. There are no words to express my gratitude and my emotions: you have revived the flame of my hope. It was said that in times of difficulty are not the words of the evil enemies that more injured, but the silence of friends ... I must say that, dear friends, have done a hell of noise, a noise that is also in this postaccio. Postaccio because it is! One day there is a soap, there's one day, one day the water is warm, the next day is cold, one day you require to walk in single file within the yellow stripes, two days after all ' outside. So total disorganization, so you need to suspect that the administration is of Italian origin! As you can see I certainly do not lack the proper mood. I like the joke to commiseration.
My body was locked up physically, but my mind gallops continuously. Traveling to the memories of the past, the good old days with friends.

The American justice system is bankrupt, I have no longer any doubt, is mainly based on physical and mental punishment, with little attention to rehabilitation. Consequently, the recidivism is enormous. People enter and exit from this place comes as a supermarket. Lack the motivation, the foundation for change for the better, to live in a society with basic rules.
In the process, when the judges roam, retract hate, hate to admit having made a mistake and cover their backs each other, making common barrier. It takes a tsunami to open the doors. God willing, you are the tsunami of time! Maybe Obama decides to assimilate some point the law Latin, rather than become moldy with the Anglo-Saxon.

The few rehabilitation programs are rarely useful. The people here have nothing to do. Television is queen. At 9 am, Sunday, transmit cartoons of Japanese Ninja (originally created for the age group 8-12 years). Hall, in front of the television, there is a seat free. All there between the magnets of Dr Gobbels, as Bonviva in its Sturmstruppen!
Few know the sanctuary of meditation, and those that are lost in reminiscences of the past, recall the countless acts of violence. They have grown from the children, with violence as the only form of communication. Zombies are now, without past, without future and without a basis of human values.
I try to help as I can, that small group that is thirsty to learn, understand and improve their standard of living.
Almost everyone here knows who I am. The 'tam tam' of these places, the news spreads at the speed of sound. Part of their esteem and respect me, I look the part with circumspection, and part is totally indifferent.
Thanks to my knowledge of languages can help centrosud-Americans and Haitians with Spanish and French in their tasks of school. Many have asked me to recount my adventures in the seven continents, it seems impossible that they could have lived so intensely in such a short time. A phrase that is often addressed, both by 'brown' than by 'blue' is: 'You do not belong here! "Translated:" You do not belong to this place. " And if it is true that a criminal knows recognize another criminal, I'm glad that an 'expert' judge me innocent. Perhaps one of the prosecutor or a judge of my case should spend some days in this place to "indoctrinated in the laboratory.
This is the eighth continent. The no man's land where the only law that applies is the one of the strongest. Or are you predator, and live with predators, prey or six, and still live with the predators. The 'prey' are the worker ants to work more useful. The predatory class there are various "ethnic caste, perhaps better known as ghenghe, which are constantly in the fight against each other. The reasons are many, often trivial: one wrong word, given a soup lyophilized and not returned, change the channel, turn on the phone. The consequences are almost always catastrophic, in fact, these disputes often end with a handshake. There is always the desire, repressed or not, of revenge, revenge. In litigation there are no restrictions or rules of honor.

But the conclusion is always the same: the inevitable severe punishment of the guards. Unfortunately, the meet has become an indispensable element for the survival of individuals when you lack of respect, uncontested open doors to other "bullies" to do the same ... and become prey. Io sono un po 'a white fly, in the middle of precarious balance. Being the only Italian I have a reference to ethnic group, let alone a gang.
Teach, when I can, to those who require it and need it. Step dall'aiutare the illiterate to read and write, to explain where is the geographical position of Sicily.
Many link the fact of being Italian with the association to a certain type of family (I only had the police in Miami that gave him for granted!). Unfortunately, most deny and stronger the conviction. Someone is calling me 'Don Chico' and when I try to explain to them that I never took the vows clergy responded, impassive, but no, not the don, the other, the one irrefutable proposals ... tightening at the same time the eye (if you have one to make!) to ensure their silence. I still remember the words of Mario Puzo (the soul's peace): "Dear Chico, the negative experiences have been the essence of my success." Perhaps this need for hope.
I realize now how easy it is in ignorance and chaos, turning the people into a group of dangerous fanatics lobotomizzati. Just that you offer them something in which to believe. I am here every day I have the opportunity to wash, I get three meals a day and once every so often, a chicken thigh. More often a piece of liver (even if cooked to Charlie Chaplin) and, for the Celebration of American Independence July 4 2003, I received a slice of watermelon. I try to find positivism in darkness and also reflect the fact that there are two billion people who are worse than me. Who do not have to dress or a sheltered place to sleep, which does not have three meals a day, who do not know what the hot shower and, a fortiori, the watermelon. In the universal context I could find myself in a situation even more terrible.

Yet, in a second, give up these 'convenience' for a night under the stars with my three children, told on a sailing boat in the roll of the ocean. Jenna Bleu, the light of my life, who with his face on my chest, fixing the eyes, told me: 'Dad, I know that one of those stars is for us. " When we talk on the phone Jenna Bleu often tells me to keep your eyes peeled for the rainbows, because it is certain that we shall meet at the base of the arch.
Jenna Bleu spirit is always here with me in my heart, as you are old and new friends, you are helping the heart, which have much to give, to fly regularly! A hug to everyone. Even if virtual.
Chico Forti
> inverti













The- Legions
http://i253.photobucket.com/albums/hh73/Tawdee/Blog/150x38.gif
«You may stop this individual, but you can't stop us all... after all, we're all alike.»
« potrete fermare me, ma non potrete fermarci tutti... dopo tutto, siamo tutti uguali.»
No-one is innocent

Senato della Repubblica Italiana: Caso Enrico Forti, detto "Chico"

From:


The-Legions Pages on Facebook



Legislatura 16º - Aula - Resoconto stenografico della seduta n. 170 del 11/03/2009

SANTINI, DIVINA, GIARETTA, MORRA, IZZO, DEL VECCHIO, D'AMBROSIO LETTIERI, TOMASSINI, MOLINARI - Al Presidente del Consiglio dei ministri e ai Ministri degli affari esteri e della giustizia - Premesso che:

al termine di un processo durato 24 giorni, il 15 giugno 2000 una giuria popolare della Dade County di Miami ha ritenuto colpevole di omicidio un italiano di Trento, Enrico Forti, condannandolo all'ergastolo, "per aver personalmente e/o con altra persona o persone allo Stato ancora ignote, agendo come istigatore e in compartecipazione, ciascuno per la propria condotta partecipata, e/o in esecuzione di un comune progetto delittuoso, provocato, dolosamente e preordinatamene, la morte di Dale Pike". Il delitto risale al 1998;

questa sentenza ha lasciato esterrefatti i presenti al processo e quanti avevano seguito il dibattimento processuale, increduli che una giuria abbia potuto emettere "oltre ogni ragionevole dubbio" un verdetto di colpevolezza sulla base di flebili e confuse prove circostanziali;

a seguito di attente verifiche e valutazioni sulla fondatezza di queste "prove circostanziali", si sono prodotti una tale quantità di dubbi che il sospetto che i fatti siano andati in modo completamente diverso da come sono stati presentati dall'accusa è divenuto quasi certezza;

si avverte la necessità di un'istanza per la riapertura del procedimento giudiziario per riformulare un verdetto, alla luce dei nuovi fatti accertati e delle inedite prove documentali;

la giustizia statunitense continua a negare questa possibilità, in base alla norma che non consente di giudicare due volte un cittadino per lo stesso reato. Inutilmente si cerca di fare capire che il reato potrebbe non sussistere;

da quasi nove anni Enrico Forti, detto "Chico", è rinchiuso in un carcere di massima sicurezza sito nelle paludi delle Everglades. L'accusa è di omicidio di primo grado ai danni di Dale Pike, figlio di un albergatore di Ibiza, Spagna, Anthony John Pike;

ex campione di windsurf ed eccellente documentarista, specializzato nei filmati sugli sport estremi, Chico Forti si trasferì da Trento in America, in cerca di fortuna, sfruttando la sua intelligenza eclettica ed il suo estro artistico e sportivo. Si stabilì in Florida, il Sunshine State. Sposò una californiana dalla quale ha avuto tre figli. La famiglia di Enrico Forti risiedeva a Williams Island, un quartiere esclusivo di Miami;

a dichiararlo colpevole è stata una sua bugia, detta nel Paese sbagliato, nel momento sbagliato ed alle persone sbagliate. In America, terra di forti contraddizioni, la menzogna privata o pubblica, è un delitto grave;

Dale Pike fu trovato morto in spiaggia, ucciso da ignoti. La polizia indicò il colpevole in Enrico Forti il quale aveva avviato rapporti d'affari con la vittima ed il padre;

Forti era entrato in pesante contrasto con la polizia, in relazione alle nebulose vicende che avevano portato alla morte dello stilista italiano Versace e, successivamente, del suo presunto assassino. Forti, anche in servizi televisivi, definì la polizia "corrotta", insinuando che essa avrebbe confuso le acque per salvaguardare i veri colpevoli. Da quel momento la sua vita fu sconvolta e si trovò nel mirino della polizia locale, fino all'incriminazione;

movente per l'omicidio era, secondo l'accusa, una presunta tentata truffa collegata all'acquisto di un albergo, per la quale Forti era stato assolto, precedentemente al processo per l'omicidio stesso;

ciò nonostante, il movente fu usato ugualmente in limine nella requisitoria finale dell'accusa dopo la quale non c'era più possibilità di replica da parte della difesa a causa della sua stessa decisione di non richiedere la testimonianza diretta di Forti durante il dibattimento. Questa grave negligenza dei difensori ha privato gli stessi di poter rettificare l'estrema scorretta iniziativa dell'accusa;

quando fu accusato dell'omicidio, con la mente annebbiata dalla paura e senza alcun supporto legale, Enrico Forti mentì alla polizia di Miami, dicendo di non avere incontrato la vittima. A nulla sono valsi gli sforzi suoi e dei suoi difensori per dimostrare la sua estraneità all'omicidio. Misteriosamente saltarono fuori prove imprevedibili e testimonianze di comodo, senza alcun sostegno probatorio;

Enrico Forti fu condannato al carcere a vita;

da quel momento incominciò una forte azione popolare per sostenere la richiesta di Forti di aprire un nuovo processo, alla luce delle nuove prove che lo scagionerebbero;

a Trento, sua città natale, è sorto un comitato che ha raccolto anche dei fondi per garantirgli il sostegno di bravi avvocati americani;

ad Enrico Forti è stato negato il diritto allo speed trial (processo veloce entro 20 giorni dall'arresto) per avvenuta scadenza dei termini di legge (6 mesi) dalla prima accusa all'arresto (20 mesi);

il diritto allo speed trial gli è stato negato perché applicata la regola Williams, cioè l'esistenza di una diretta connessione tra l'ottenimento di un illecito guadagno (truffa) e la consumazione dell'omicidio. Questa regola avrebbe dovuto essere revocata perché Enrico Forti era già stato assolto dall'accusa di frode in un precedente processo;

la deposizione rilasciata da Enrico Forti come testimone, durante la quale ha detto la bugia sul suo incontro con Dale Pike, avrebbe dovuto essere annullata perché coperta dai diritti Miranda che prevedono l'assistenza di un legale durante qualsiasi deposizione rilasciata da una persona ufficialmente accusata di un crimine;

questi diritti gli furono negati anche se, al momento di questa deposizione, era già il principale indiziato per l'omicidio;

a giudizio degli interroganti gli avvocati della difesa sono stati colti di sorpresa dall'accusa quando ha usato il movente della truffa per avvalorare la tesi dell'omicidio nell'arringa finale alla quale la difesa non aveva più diritto di replica. L'accusatore ha scorrettamente ignorato un accordo pre-processuale tra le parti, detto in limine, secondo il quale la truffa non avrebbe dovuto essere usata come movente, poiché da questa accusa Enrico Forti era già stato assolto. La giuria così non è mai stata informata di questo fatto ed è stata fuorviata nel suo giudizio finale; in questo modo si è violata la regola double Jeopardy secondo la quale, se un imputato è già stato assolto da un'accusa in un precedente processo, la stessa accusa non può essere usata in un altro processo;

in questi ultimi nove anni ripetutamente si è richiesta la riapertura del processo per addurre nuovi indizi probanti emersi a discarico dell'imputato e che le autorità preposte all'autorizzazione di tale riapertura non hanno ritenuto di dover accettare le motivazioni addotte;

un irrigidimento in tale posizione si è registrata al momento del trasferimento in Italia della detenuta terrorista Baraldini, poi scarcerata, con reazione indignata dell'opinione pubblica e delle autorità americane,

si chiede di sapere se il Governo abbia intenzione di attivarsi intervenendo presso le autorità degli Stati Uniti d'America per sostenere il ricorso alla Corte federale, presentato dai legali di Enrico Forti, come estrema possibilità per riaprire il caso e portare i molti elementi a discarico emersi in questi anni, utili a dimostrare la sua estraneità al delitto.

(3-00611)

Scarica il Documento Completo
Documento File PDF

Senato della Repubblica:Legislatura 16º - Aula - Resoconto stenografico della seduta n. 170 del 11/03/2009:
Riferimento

Seguito della discussione congiunta del disegno di legge n. 1078 - Legge comunitaria 2008 - e del Documento LXXXVII, n. 1
# PRESIDENTE
# BOLDI, relatrice.
# LICASTRO SCARDINO, relatrice
# RONCHI, ministro
# PRESIDENTE
+ Fai click per espandere questa voceSaluto ad una rappresentanza di studenti
# PRESIDENTE
+ Fai click per espandere questa voceRipresa della discussione congiunta del disegno di legge n. 1078 - Legge comunitaria 2008 - e del Documento LXXXVII, n. 1
# PRESIDENTE
# BAIO, segretario
# INCOSTANTE (PD)
# Fai click per espandere questa voceESAME DEGLI ARTICOLI
* PRESIDENTE
+ Fai click per espandere questa voceSaluto ad una rappresentanza di studenti
# PRESIDENTE
+ Fai click per espandere questa voceRipresa della discussione congiunta del disegno di legge n. 1078 - Legge comunitaria 2008 - e del Documento LXXXVII, n. 1
# GERMONTANI (PdL)
+ Fai click per espandere questa voceSaluto ad una rappresentanza di studenti
# PRESIDENTE
+ Ripresa della discussione congiunta del disegno di legge n. 1078 - Legge comunitaria 2008 - e del Documento LXXXVII, n. 1
+ Fai click per espandere questa voceSui lavori del Senato Commissioni permanenti, autorizzazione alla convocazione
# PRESIDENTE
+ Fai click per espandere questa voceRipresa della discussione congiunta del disegno di legge n. 1078 - Legge comunitaria 2008 - e del Documento LXXXVII, n. 1
# PRESIDENTE
+ Fai click per espandere questa voceSulla protesta messa in atto dai radicali contro il sistema dell'informazione
# PORETTI (PD)
o Fai click per espandere questa voceRESOCONTO STENOGRAFICO
+ PRESIDENTE
+ Fai click per espandere questa voceComunicazioni della Presidenza
# PRESIDENTE
+ Fai click per espandere questa vocePreannunzio di votazioni mediante procedimento elettronico
# PRESIDENTE
+ Fai click per espandere questa voceSeguito della discussione congiunta del disegno di legge n. 1078 - Legge comunitaria 2008 - e del Documento LXXXVII, n. 1
# PRESIDENTE
# BOLDI, relatrice
# LICASTRO SCARDINO, relatrice
# RONCHI, ministro
# PRESIDENTE
# BAIO, segretario
+ Fai click per espandere questa voceSaluto ad una rappresentanza di studenti
# PRESIDENTE
+ Fai click per espandere questa voceRipresa della discussione congiunta del disegno di legge n. 1078 - Legge comunitaria 2008 - e del Documento LXXXVII, n. 1
# INCOSTANTE (PD)
# PRESIDENTE
# Fai click per espandere questa voceESAME DEGLI ARTICOLI
* MARINARO (PD)
* BOLDI, relatrice
* RONCHI, ministro
* PRESIDENTE
* ADAMO (PD)
* PRESIDENTE
* ADAMO (PD)
* BOLDI, relatrice
* RONCHI, ministro
* PRESIDENTE
* BOLDI, relatrice
* RONCHI, ministro
* PRESIDENTE
* ADAMO (PD)
* BOLDI, relatrice
* RONCHI, ministro
* PRESIDENTE
* ADAMO (PD)
* PRESIDENTE
* BOLDI, relatrice
* RONCHI, ministro
* PRESIDENTE
* VICARI (PdL)
* FIORONI (PD)
* VICARI (PdL)
* PRESIDENTE
* BOLDI, relatrice
* RONCHI, ministro
* PRESIDENTE
* BOLDI, relatrice
* RONCHI, ministro
* PRESIDENTE
* MARINARO (PD)
* PEDICA (IdV)
* GHEDINI (PD)
+ Fai click per espandere questa voceSaluto ad una rappresentanza di studenti
# PRESIDENTE
+ Fai click per espandere questa voceRipresa della discussione congiunta del disegno di legge n. 1078 - Legge comunitaria 2008 - e del Documento LXXXVII, n. 1
# PRESIDENTE
# GERMONTANI (PdL)
# PORETTI (PD)
# D'ALIA (UDC-SVP-Aut)
# PETERLINI (UDC-SVP-Aut)
# BOLDI, relatrice
# BUGNANO (IdV)
# PRESIDENTE
# BUGNANO (IdV)
# PRESIDENTE
# BUGNANO (IdV)
# VICARI (PdL)
# GALLONE (PdL)
# BOLDI, relatrice
# RONCHI, ministro
# PRESIDENTE
# PEDICA (IdV)
# PRESIDENTE
# DE SENA (PD)
# PRESIDENTE
# FRANCO VITTORIA (PD)
# ANTEZZA (PD)
# PRESIDENTE
# PORETTI (PD)
# PRESIDENTE
# BONFRISCO (PdL)
# PRESIDENTE
# PETERLINI (UDC-SVP-Aut)
# PRESIDENTE
# PEDICA (IdV)
# BUONFIGLIO, sottosegretario
# PRESIDENTE
+ Fai click per espandere questa voceSaluto ad una rappresentanza di studenti
# PRESIDENTE
+ Fai click per espandere questa voceRipresa della discussione congiunta del disegno di legge n. 1078 - Legge comunitaria 2008 - e del Documento LXXXVII, n. 1
# PRESIDENTE
# DI NARDO (IdV)
# BOLDI, relatrice
# BOLDI, relatrice
# BUONFIGLIO, sottosegretario
# LUSI (PD)
# BUONFIGLIO, sottosegretario
# PRESIDENTE
# LANNUTTI (IdV)
# GERMONTANI (PdL)
# BARBOLINI (PD)
# BOLDI, relatrice
# RONCHI, ministro
# BOLDI, relatrice
# RONCHI, ministro
# PRESIDENTE
# MUSI (PD)
# INCOSTANTE (PD)
# PRESIDENTE
# LEGNINI (PD)
# FERRARA (PdL)
# PRESIDENTE
+ Fai click per espandere questa voceSui lavori del Senato Commissioni permanenti, autorizzazione alla convocazione
# PRESIDENTE
+ Fai click per espandere questa voceRipresa della discussione congiunta del disegno di legge n. 1078 - Legge comunitaria 2008 - e del Documento LXXXVII, n. 1
# PRESIDENTE
# PEDICA (IdV)
# VITA (PD)
# DI GIOVAN PAOLO (PD)
# GARAVAGLIA MARIAPIA (PD)
# PRESIDENTE
+ Fai click per espandere questa voceSulla protesta messa in atto dai radicali contro il sistema dell'informazione
# PORETTI (PD)
# PRESIDENTE
+ Fai click per espandere questa voceMozioni e interrogazioni, annunzio
# PRESIDENTE
+ Fai click per espandere questa voceOrdine del giorno per le sedute di giovedì 12 marzo 2008
# PRESIDENTE
o Fai click per espandere questa voceALLEGATO A
+ DISEGNO DI LEGGE 1078
+ Fai click per espandere questa voceDOCUMENTO Doc. LXXXVII, n. 1
# ARTICOLI, EMENDAMENTI E ORDINI DEL GIORNO RIFERITI AL DISEGNO DI LEGGE N. 1078
# Fai click per espandere questa voceARTICOLO 1 E ALLEGATI A E B NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTI
# Fai click per espandere questa voceARTICOLI 2 E 3 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTO
# Fai click per espandere questa voceARTICOLI 4 E 5 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTO
# Fai click per espandere questa voceARTICOLO 6 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTO TENDENTE AD INSERIRE UN ARTICOLO AGGIUNTIVO DOPO L'ARTICOLO 6
# Fai click per espandere questa voceARTICOLI 7 E 8 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTO TENDENTE AD INSERIRE UN ARTICOLO AGGIUNTIVO DOPO L'ARTICOLO 8
# Fai click per espandere questa voceARTICOLO 9 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTI
* EMENDAMENTO TENDENTE AD INSERIRE UN ARTICOLO AGGIUNTIVO DOPO L'ARTICOLO 9
# Fai click per espandere questa voceARTICOLO 10 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTI
# Fai click per espandere questa voceARTICOLO 11 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTI
* ORDINI DEL GIORNO
# Fai click per espandere questa voceARTICOLI 12, 13, 14 E 15 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTI
# Fai click per espandere questa voceARTICOLI 16, 17, 18, 19 E 20 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTO TENDENTE AD INSERIRE UN ARTICOLO AGGIUNTIVO DOPO L'ARTICOLO 20
# Fai click per espandere questa voceARTICOLI 21, 22, 23 E 24 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTI
* ORDINE DEL GIORNO
* EMENDAMENTO TENDENTE AD INSERIRE UN ARTICOLO AGGIUNTIVO DOPO L'ARTICOLO 24
# Fai click per espandere questa voceARTICOLO 25 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTI
* EMENDAMENTO TENDENTE AD INSERIRE UN ARTICOLO AGGIUNTIVO DOPO L'ARTICOLO 25
# Fai click per espandere questa voceARTICOLI 26, 27, 28 E 29 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTO TENDENTE AD INSERIRE UN ARTICOLO AGGIUNTIVO DOPO L'ARTICOLO 29
# Fai click per espandere questa voceARTICOLO 30 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTI
# Fai click per espandere questa voceARTICOLO 31 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTO
# Fai click per espandere questa voceARTICOLO 32 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTI
# Fai click per espandere questa voceARTICOLO 33, 34, 35 E 36 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTI
# Fai click per espandere questa voceARTICOLI 37, 38 E 39 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTI
# Fai click per espandere questa voceARTICOLI 40 E 41 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTI
* ORDINE DEL GIORNO
# Fai click per espandere questa voceARTICOLI 42 E 43 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTO
# Fai click per espandere questa voceARTICOLO 44 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTO
# Fai click per espandere questa voceARTICOLI 45 E 46 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTO
* ORDINE DEL GIORNO
# Fai click per espandere questa voceARTICOLO 47 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTO
# Fai click per espandere questa voceARTICOLO 48 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTO
# Fai click per espandere questa voceARTICOLO 49 NEL TESTO PROPOSTO DALLA COMMISSIONE
* EMENDAMENTI
+ PROPOSTE DI RISOLUZIONE AL DOCUMENTO LXXXVII, N. 1 6-00012 e 6-00013
o Fai click per chiudere questa voceALLEGATO B
+ Intervento del senatore Pedica in sede di illustrazione dell'emendamento 25.200 riferito all'articolo 25 del disegno d[...]
+ VOTAZIONI QUALIFICATE EFFETTUATE NEL CORSO DELLA SEDUTA
+ Congedi e missioni
+ Richieste di autorizzazione all'utilizzo di intercettazioni di conversazioni cui ha preso parte un senatore, deferimen[...]
+ Disegni di legge, trasmissione dalla Camera dei deputati
+ Disegni di legge, annunzio di presentazione
+ Autorità garante della concorrenza e del mercato, trasmissione di atti
+ Petizioni, annunzio
+ Fai click per espandere questa voceMozioni
# 1-00099
# 1-00100
# 1-00101
+ Fai click per chiudere questa voceInterrogazioni
# 3-00610
# 3-00611
# 3-00612
+ Fai click per espandere questa voceInterrogazioni con richiesta di risposta scritta
# 4-01250
# 4-01251
# 4-01252
# 4-01253
+ Interrogazioni, da svolgere in Commissione



The- Legions
http://i253.photobucket.com/albums/hh73/Tawdee/Blog/150x38.gif
«You may stop this individual, but you can't stop us all... after all, we're all alike.»
« potrete fermare me, ma non potrete fermarci tutti... dopo tutto, siamo tutti uguali.»
No-one is innocent

cronaca - peacereporter.net

"Ho fatto una scoperta oggi. Ho trovato un computer"

cable broad band hosting voip wifi connection,computer hack security guide hack crackers hackers,computer license sync planning system requirements,linux Linux unbuntu Unbuntu DOS msdos MSDOS MS-DOS,The-Legions hacker com  hacker websites web,The-Legions informatica hardware software hacker H,The-Legions Legions Legionlots Milagroscene,The Dark Legions Legionlots Milagromodeler

Io sono un hacker, e questo e' il mio manifesto
Voi potete fermare questo individuo, ma non potete fermarci tutti...dopotutto siamo tutti uguali.
Noi cerchiamo la conoscenza...e voi ci chiamate criminali.Noi facciamo uso di un servizio gia' esistente che non costerebbe nulla se non fosse controllato da approfittatori ingordi, e voi ci chiamate criminali
......Io sono un Hacker, entrate nel mio mondo
+++The Mentor+++
(8 Gennaio 1986)
Parole...gia' sentite spesso ignorate, volutamente dimenticate
perche' la consapevolezza di cio' e' "scomoda"
Guardian Angel
ASTALAVISTA REMIX

The-Legions flickr,legions,photos,foto,album,Wpa wireless network router linksys compact ciscoThe-Legions Album

Azazel

Iscriviti a un feed su questa pagina... Feed – "The-Legions Album"

Flickr, una società Yahoo!

===========================================
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

║<><><><><><><><║

░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░

Guardian Angel COGITO, ERGO E BUM BUM!░░

░░░Chi e'? "Sono la fatina buona del cazzo"░░░

║./\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\//\/\/\/\/\//\\/\/\/\/\/\/\/\/\/\║

Mai riuscito ad uniformarmi a niente

Se mi impongono qualcosa, la soddisfazione maggiore e' proprio NON FARLA.


Non credo nell'utilita' delle leggi, non amo rispettarle, se rispetto qualcuno o qualcosa (animali, cose, esseri umani e non) e' perche' sento di farlo, a prescindere da chi o che cosa sia, bianco rosso verdone o a palle. Mai riuscito a fare "la persona normale" Che cos'e' poi il cosiddetto "normale"?

Chi l'ha stabilito e con quali parametri?


Mi pare che qoalcuno abbia dimostrato il contrario.
C'e' stato un periodo in cui ho pure provato a confondermi o forse, adesso lo ammetto, tra gli altri.
Nada, non c'e' verso, tanto vale essere quello che si è, e allora, qui, manco il layout faccio, tutto pronto, sono pure pigro e ultimamente i vari stra-guru del "CSS-no-tabelle" con tutti quei siti pulitini che sanno tanto dell'ora del te' mi stanno proprio sulle scatole.

Mi fanno pensare a come ero io al Liceo

Abitudine: scrivo Liceo in maiuscolo, "rispetto ragazzo!" Don Delfo dove sarai adesso? Ma tu ci credevi davvero in Dio & TuttiSanti? E la cappella per te era proprio la casa di Cristo o un grosso rimpianto? Lo sapevi che il professore di Italiano era gay vero?

Tutti preti i miei insegnanti, l'unico laico era gay. Potevano assumere una donna allora.
Che ci faccio io dentro un blog. Non lo so adesso, poi forse. Veramente ho pure un paio di siti che avrebbero bisogno di una domestica, pure bona che sarebbe meglio Quando voglio e SE mi va scrivo.

-** -**--****--**Magari rientro negli schemi**-**-**-**-

║./\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\//\/\/\/\/\/\/\/\/\/\/\/\/\║
-**In una societa' sub-normale
"senza ciccia e brufoli" forse qualche non-uniformato ancora c'è-**-

Astalavista Perche' il primo amore non si scorda mai, e io mi ricordo questo.òòòòòòòòòAstalavistaCon tutto il sito i popups i wormetti l'hard core l'hacking i crack i Gran Pavesi e i Biscotti della Nonna, le mail bombs i RootKit e i rocchettari, che tanto sono sempre meglio dei missili di Bush e delle prevaricazioni dei potenti sui piu' deboli in tutti i Paesi
In tutta la Storia.



║<><><><><><><><║

=========================================== |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||


Add to Google

La Sicurezza Informatica: Digitare Nome Utente e Password

La Sicurezza Informatica: Digitare Nome Utente e Password
OGGI MI METTO IL FIREWALL!!!! ( Te lo metti da solo o te lo mette qualcun altro? Questo si che e' avere cu........ IL PC PROTETTO!!) Il camerino e' qui: http://www.openexp.it/index.php?option=com_docman&task=doc_view&gid=29

Guardia di Finanza - Comunicati Stampa

\|/ VOGLIO L' IMMUNITA' PARLAMENTARE PERCHE' SONO FATTI MIEI \|/

SIAMO TUTTI UGUALI (MA PARLA PER TE!)

SIAMO TUTTI UGUALI  (MA PARLA PER TE!)
Ognuno ha le sue perversioni. *±±**¯¯*±±*¯¯*±±*ED OGNUNO SI E' FATTO DA SOLO , TRANNE L'ONOREVOLE PREMIER PRIMO SINISTRO CHE E' "FATTO PERMANENTE". *µµ**¯¯*±±*¯¯*±±*¯**¯¯*±±*¯¯*±±*¯±*±±±**±*¯¯*±**±±*¯¯*±±±**±**±*¯¯*±**±±**µµ*_*µµ*µµ*˜˜˜*µµ**±±*E SICCOME IL DEGRADO E' MIO E LO GESTISCO IO "OGNUNO SI FACCI DA SOLO!" µ*˜˜˜*_*µµ*_*µµ*µµ*˜˜˜*µµ**±±*±±±**±**±***±*¯¯*±*¯¯*±±*˜˜˜˜˜*±±±*¯¯*±±ASTALAVISTA CON TUTTO IL SITO e I BISCOTTI DELLA NONNA *¯¯*±±*¯¯*±±*¯¯*±±±*˜˜±*¯¯*±±˜˜˜*±*¯¯*±*¯¯*±±*˜˜˜˜˜*±±±*¯¯*±±

2600: The Hacker Quarterly

Comunicati stampa dal Governo

Rdb-Cub Federazione Nazionale

New York Times: World News

The-Legions Podcasts

Photobucket

Subscribe Now

with web-based podcatchers. Click your choice below:

Subscribe with My Yahoo!Subscribe with NewsGatorSubscribe with BloglinesSubscribe with NetvibesSubscribe with GoogleSubscribe with PageflakesSubscribe with PlusmoSubscribe with FeedLoungeSubscribe with The Free DictionarySubscribe with Bitty BrowserSubscribe with Live.comSubscribe with ODEOSubscribe with PodnovaSubscribe with Excite MIXSubscribe with Yourminis.comSubscribe with Attensa for OutlookSubscribe with WebwagSubscribe with netomat HubSubscribe with Daily RotationSubscribe with Podcast ReadySubscribe with FlurrySubscribe with ParticlsAdd to Any Feed ReaderSubscribe with fwickiSubscribe with Zune MarketplacePowered by FeedBurner

with iTunes:

Add to iTunes

by email:

Get The-Legions Podcasts delivered by email

with something else (copy this address):

Get more info on other podcatchers:

original feed XML

Podcast is rich media, such as audio or video, distributed via RSS. Feeds like this one provide updates whenever there is new content. The-Legions makes it easy to receive content updates in popular podcatchers.

Learn more about The-Legions

The-Legions Podcasts Blog di informatica con test esperimenti e verifica dei risultati. Anche riflessioni su news,cronaca e tutto quello che riguarda il sociale. Un blog realizzato da Guardian Angel e i suoi collaboratori.

Photobucket
 

±°°°±.~*The-Legions*~.±°°°± il blog degli angeli che hanno scelto di essere liberi.Informatica,hardware,software,esperimenti,guide e tutorial su tutto quello che riguarda il computer,
appunti di informatica applicata alle diverse esigenze,news,attualita,cronaca. Realizzazione di Guardian Angel anche tramite podcast. Sono ben accetti quelli che hanno coltivazioni di
erba in vaso o in terra per un sano ritorno alla natura. "We are legion, for we are many"] The Gospel of Mark 5:9 (Gk. ΚατάΜάρκον Ευαγγέλιον) Le informazioni devono essere libere.

Creative Commons License
The-Legions Blog by Guardian Angel is licensed under a Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia License.
Based on a work at the-legions.blogspot.com.
Permissions beyond the scope of this license may be available at http://the-legions.blogspot.com

The-LegionsRSS