Skip to content

Skype RC4 algorithm signaling test.

A few weeks ago the reverse engineered RC4 Cipher used for Skype Obfuscation was released to the public here.

I used the cipher and engineered it into an existing Skype reverse engineering effort at the transport level. I am successfully able to use any Skype “peering” service.

I’ve uploaded a video demonstrating it in action. Skype RC4 algorithm signaling test. A test of the SKYPE-TCP-RC4 algorithm to connect to a Supernode and signal through it.

The code was written in cross platform C++ and will be released in a series in the latter part of the year. I will be doing other videos demonstrating more on Skype Peering in the future.

Categories: Uncategorized.

IETF 78 – I’m not attending

I am unable to attend IETF(Internet Engineering Task Force) 78 (http://www.ietf.org/meeting/78/) unfortunately.  It would be nice to show off my p2psip implementation to the working group. IETF 79 I’ll see you in China this Fall.

Categories: Code, SIP, Technology, p2psip-base.

Rendezvous sessions via autonomous distributed routing.

Setting up a peer to peer connections in a autonomous distributed system is a trivial challenge. The basic principles are the session “offer” and “answer”. Say for instance you would like to send a data file to Pat. You would begin by sending a session_request of type session_type_data also know as the “offer”. Upon receipt of the “answer” if accepted a session_response is routed back to Pat containing your devices’ network interface “candidates” for each component. When Pat accepts the “answer” checks will begin on each end and the subsequent path will be traversed for data flow. The least latent path is used while the remaining if any are dropped. This works irrespective of NAT type because the “candidates” could by of type “relay” which allows a clear path to peers behind even the most restrictive firewalls or NAT devices.

This type of connection setup isn’t simply for “rendezvous punch” but works equally well for ICE negotiations as well.

Categories: Code, SIP, Technology.

Distributed(p2p) Chat, Delivery Notification, Presence, Status

A series of photographs showing a p2p session between two peers(iPhone Devices). These peers are attached to the main overlay network running live on the internet.

Categories: Code, SIP, Technology, iphone.

Distributed "extended" presence in a p2psip environment.

On top of regular presence such as “Available”, “Away” and “Invisible” I have added “Extended” presence attributes into the distributed database draft. An “Extended” attribute is NOT routed from one peer to another. Rather these are fetched from the overlay when a presence change has occurred as described by an indication.

Example: aor:”presence” | status.message

Categories: Code, SIP, Technology, cocoa, iphone, p2psip-base.

Distributed statistics in a p2psip environment.

Here I am showing screeshots of an iPhone, Mac and Windows p2psip client (one in peer mode, two as nodes). The algorithm I’ve designed to determine the “online users” is pinpoint accurate within any five minute window. This algorithm also scales infinitely is lightweight and easy to implement. Skype maintains an “online user” accuracy window of ten minutes.

Categories: Code, SIP, Technology, Uncategorized, cocoa, iphone, p2psip-base.

Distributed presence in a p2psip environment.

Here I am showing screeshots of an iPhone client (in peer mode). The topology being used is custom but uses the XOR metric for KBR.
IMG_2003IMG_2004
IMG_2005
IMG_2006

Categories: Code, SIP, Technology, Uncategorized, cocoa, iphone, p2psip-base.

Scalable distributed autonomous call routing.

I’ve been working on a peer to peer call routing system for the past four and some odd years. I gained interest in this when I worked at the now Google owned Gizmo5. I’ve been working with the p2psip WG on the RELOAD base protocol draft where many ideas blend. My p2p and voip background are now collectively one. I’ve completed a peer to peer telephony system(like Skype) with presence, data transfers and call routing. It is 100% cross platform C++ and running on Mac OS X, Windows, Linux and iPhone OS. I don’t plan to unveil this for several months but here are some old screenshots of the test system in use.

ScreenShot006
ScreenShot007
IMG_0993IMG_0994
IMG_0995IMG_0996IMG_0997Screen shot 2010-03-13 at 2.44.42 AMScreen shot 2010-03-13 at 2.44.54 AMScreen shot 2010-03-13 at 2.45.22 AMScreen shot 2010-03-13 at 2.53.02 AMScreen shot 2010-03-13 at 2.53.02 AM

This system requires only a single server to install a working infrastructure while being autonomous, distributed, load balanced and redundant.

Categories: Code, SIP, Technology.

Compiling CURL on OS X as a Static + Universal binary.

I’ve taken the liberty of adapting the given framework script to produce static libraries. Keep in mind that on Mac OS X 10.6 and > there is no ppc64 support so in order to use this script on that OS you’d first remove that support.


#!/bin/bash
# This script performs all of the steps needed to build a static
# universal binary libcurl.a for Mac OS X 10.5 or greater.

cd curl

VERSION=`/usr/bin/sed -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' include/curl/curlver.h`

SDK32='/Developer/SDKs/MacOSX10.5.sdk'

MINVER32='-mmacosx-version-min=10.5'

ARCHES32='-arch ppc -arch i386'

SDK64='/Developer/SDKs/MacOSX10.5.sdk'

MINVER64='-mmacosx-version-min=10.5'

ARCHES64='-arch ppc64 -arch x86_64'

echo "----Creating 32 bit ..."

if test -d $SDK32; then
echo "----Configuring libcurl for 32 bit universal ..."
./configure --disable-dependency-tracking --disable-shared \
CFLAGS="-Os -isysroot $SDK32 $ARCHES32 $MINVER32" \
LDFLAGS="-Wl,-syslibroot,$SDK32 $ARCHES32 $MINVER32" \
CC=$CC

echo "----Building 32 bit libcurl..."
make

cp lib/.libs/libcurl.a lib/libcurl32.a

echo "----Creating 64 bit ..."

if test -d $SDK64; then
popd
make clean
echo "----Configuring libcurl for 64 bit universal ..."
./configure --disable-dependency-tracking --disable-shared \
CFLAGS="-Os -isysroot $SDK64 $ARCHES64 $MINVER64" \
LDFLAGS="-Wl,-syslibroot,$SDK64 $ARCHES64 $MINVER64" \
CC=$CC

echo "----Building 64 bit libcurl..."
make

cp lib/.libs/libcurl.a lib/libcurl64.a

echo "----Merging 32 bit and 64 bit ..."

lipo lib/libcurl32.a lib/libcurl64.a -create -output lib/libcurl.a

fi

lipo -info lib/libcurl32.a
lipo -info lib/libcurl64.a
lipo -info lib/libcurl.a

echo "libcurl.a is built and can now be included in other projects."
else
echo "Building libcurl.a requires Mac OS X 10.5 or later with the MacOSX10.5.sdk installed."
fi


CURL

Categories: Code.

Apps: A handheld revolution.

Tomorrow January 7th at 10PM EST a one hour documentary will air on CNBC and affiliate stations. Some of my work is to be featured such as my iPhone and iPod Touch app dubbed “Cannabis”.

POA_Intro

More information may be found on the official website here.

More information about the “Cannabis” app may be found on the official website here.

Cannabis running in simulator:

Screen shot 2010-01-06 at 11.41.28 AM

The Cannabis App Website

Categories: Documentaries, cocoa, iphone.