Archive

Archive for October, 2010

Debian Release Name

October 9, 2010 Leave a comment

Hi. Today Today I leardned about the relationship between the name of the Debian’ releases and the names of the characters of “toy Story”. So I want to explain it to you.
The names of the Debian’ releases come from “Toy Story”, the famous Pixar’s film (link). This is true since the release 1.1, released in the 1996. By this time, Bruce Perens had taken over leadership of the Project from Ian Murdock and Bruce was working as system programmer at Pixar.
Read more…

Categories: Bullshit, GNU/Linux Tags: , ,

inet_ntop() for Win32

October 9, 2010 3 comments

Like 4 years ago I made a little project for the operating system 2 class. I had to write an application capable of handling multiple file transfers for both Win32 and Linux. During the coding of the socket-side of the application I encountered an awkward problem: why the hell win32 does not have a compatibility function for the inet_ntop()?

Only recently, for Vista and 7, Microsoft introduced the InetNtop() function: http://tinyurl.com/3xrwaer

If you have to write something that needs to run on XP too (that still seems to be the most used operating system for home users: http://tinyurl.com/2w5ed8n ) just try this code :)


const char* inet_ntop(int af, const void* src, char* dst, int cnt){

	struct sockaddr_in srcaddr;

	memset(&srcaddr, 0, sizeof(struct sockaddr_in));
	memcpy(&(srcaddr.sin_addr), src, sizeof(srcaddr.sin_addr));

	srcaddr.sin_family = af;
	if (WSAAddressToString((struct sockaddr*) &srcaddr, sizeof(struct sockaddr_in), 0, dst, (LPDWORD) &cnt) != 0) {
		DWORD rv = WSAGetLastError();
		printf("WSAAddressToString() : %d\n",rv);
		return NULL;
	}
	return dst;
}

Timeout on Named Pipes

October 8, 2010 1 comment

Hi. In this post, I will show you how make a timeouted namedpipe with the WIN32 API: the msdn’s manual doesn’t explain how to do it.
The named pipes are an IPC’s method by which we can send data to an other process (like a son process).
Read more…

Using SHA1() function

October 6, 2010 10 comments

Hi. I’ ll show you how to convert any string into a SHA1 hash using the openssl library.
To use this library you must include in your codes this:

#include <openssl/sha.h>

Moreover you have to compile the source with the “-lssl” flag.
The following code takes in input a string (argv[1]) and generates an hash string through the SHA1() function. The value of “SHA_DIGEST_LENGTH” is 20 bytes, that is the dimension of SHA1 output.
This function stores the value computed in “temp” variable.
Then in the for loop, I copy the value of “temp” into “buf”, according to the standard format of SHA1 strings.

#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>

int main(int argn, char *argv[]) {

	int i = 0;
	unsigned char temp[SHA_DIGEST_LENGTH];
	char buf[SHA_DIGEST_LENGTH*2];

	if ( argn != 2 ) {
		printf("Usage: %s string\n", argv[0]);
		return -1;
	}

	memset(buf, 0x0, SHA_DIGEST_LENGTH*2);
	memset(temp, 0x0, SHA_DIGEST_LENGTH);

	SHA1((unsigned char *)argv[1], strlen(argv[1]), temp);

	for (i=0; i < SHA_DIGEST_LENGTH; i++) {
		sprintf((char*)&(buf[i*2]), "%02x", temp[i]);
	}

	printf("SHA1 of %s is %s\n", argv[1], buf);

	return 0;

}

We can compile and run it as follows:

$ gcc sha.c -lssl -o sha
$ ./sha asd
SHA1 of asd is f10e2821bbbea527ea02200352313bc059445190

If you want know something else of SHA1() function you can use the manpages:

man 3 sha1

Or look up in openssl website: link

Thinkpad IBM audio buttons

October 6, 2010 Leave a comment

Hi.
Do you have an ibm thinkpad?
Do you have gnome?
Do you have ubuntu?
You can not associate the hardware audio buttons with the volume indicator?
The most likely solution is to add ONE of the following lines to the “/etc/rc.local” file:

cp /sys/devices/platform/thinkpad_acpi/hotkey_all_mask /sys/devices/platform/thinkpad_acpi/hotkey_mask

Or:

echo 0x00ffffff > /proc/acpi/ibm/hotkey

… and, maybe, the buttons will work… :)

Piracy VS Theft

October 6, 2010 Leave a comment

Because the piracy is not theft…

Piracy-vs-Theft

Categories: Bullshit

India’s Code

October 5, 2010 1 comment

Hello. I do not remember where I found the code that follows, so I don’t know who was the real
owner of this beauty (all rights to the original creator).
It is an obfuscated code in C language:

#include <stdio.h>

void main()
{
   
   int a, b = 10, c;
   int count = 1;
   
   for (b=c=10; a="- FIGURE?, UMKC,XYZHello Folks,\
		  TFy!QJu ROo TNn(ROo)SLq SLq ULo+\
		  UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\
		  NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\
		  HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\
		  T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\
		  Hq!WFs XDt!" [b+++21]; )
		  
     for(; a-- > 64 ; )
       putchar ( ++c=='Z' ? c = c/ 9:33^b&1);
}

Try to run it… amazing, is not it?

Read more…

Follow

Get every new post delivered to your Inbox.