|
|
Message-ID: <20110323100357.GB28906@albatros>
Date: Wed, 23 Mar 2011 13:03:57 +0300
From: Vasiliy Kulikov <segoon@...nwall.com>
To: owl-dev@...ts.openwall.com
Subject: Re: iputils s20101006
Solar,
On Wed, Mar 23, 2011 at 10:51 +0300, Solar Designer wrote:
> > http://linux-diag.sourceforge.net/Sysfsutils.html
>
> I went to this link, but I can't quickly identify the Source tarball
> you'd be using in the package. Can you please provide more info?
It is the link "Download sysfsutils" to sourceforge:
http://sourceforge.net/projects/linux-diag/files/
The last link is "sysfsutils" dated 2006-08-23. I didn't try to compile
it on Owl, though.
> How do we verify its authenticity and integrity?..
As it is rather old tarball, we may compare checksums with checksums of
the same tarball in RHEL/Debian/other distros.
The AUTHORS file contains these line:
Ananth Mavinakayanahalli <ananth AT in.ibm.com>
Daniel Stekloff <dsteklof AT us.ibm.com>
Mohan Kumar <mohan AT in.ibm.com>
Nitin Vashisth <vnitin AT in.ibm.com>
So, we are to contact these people to get GPG signatures.
I've taken a look at arping's libsysfs usage, it's pretty simple:
void set_device_broadcast(char *device, unsigned char *ba, size_t balen)
{
struct sysfs_class_device *dev;
struct sysfs_attribute *brdcast;
unsigned char *p;
int ch;
dev = sysfs_open_class_device("net", device);
if (!dev) {
perror("sysfs_open_class_device(net)");
exit(2);
}
brdcast = sysfs_get_classdev_attr(dev, "broadcast");
if (!brdcast) {
perror("sysfs_get_classdev_attr(broadcast)");
exit(2);
}
if (sysfs_read_attribute(brdcast)) {
perror("sysfs_read_attribute");
exit(2);
}
for (p = ba, ch = 0; p < ba + balen; p++, ch += 3)
*p = strtoul(brdcast->value + ch, NULL, 16);
return;
}
int main()
{
...
#if 1
set_device_broadcast(device, ((struct sockaddr_ll *)&he)->sll_addr,
((struct sockaddr_ll *)&he)->sll_halen);
#else
memset(((struct sockaddr_ll *)&he)->sll_addr, -1, ((struct sockaddr_ll *)&he)->sll_halen);
#endif
...
}
Arping tries to optimize recvfrom() by catching not all broadcasts, but
only broadcasts that current netdevice is setup to receive. So, we may
simply comment set_device_broadcast() out and change "#if" argument to 0.
Thanks,
--
Vasiliy Kulikov
http://www.openwall.com - bringing security into open computing environments
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.