On Tue, 2010-06-01 at 00:16 +0300, Andrei Costin (lists) wrote:
> Hi all,
> 
> Just few more minor questions:
>  - ./tinkering/A5Util/a5lookup.cpp is using TableLookup::FindEndpoint(end)
> which in turn is looking for DAT file like snprintf(fname,16,"/%03x.dat",
> end >> 52);
>  - DAT file generation I understand is done by
> TableSorter::Sort()@TableSort.cpp, which take *.start.tbl and *.end.tbl file
> from an a51_rt_$ID$ torrent
>  - however, TableSort.cpp fails on this assert:
>                       /* Make sure start and end have 15 zero bits at lsb
> */
>                       assert( ((s&0x7fffULL)|(e&0x7fffULL))==0 );
>  - failure (which is not quite instant) was consistent on: a51_rt_2048,
> a51_rt_2272, a51_rt_123520 - so I didn't check other torrents
>  - as a side note, what is sort2.cpp meant for exactly?
> 
> Would appreciate if someone could point what I am missing (beside my brain
> of course :) )...

There are several missing pieces:
a) The latest version of a5lookup has not been committed to SVN until
now.
b) The lookups are performed on the "3d generation tables" made with the
tinkering/new_ATI_code - the old code used an obsolete table format.
c) The procedure for sorting and doing test lookups has not been
documented.

But since we have made a partial distribution, I might as well show how
lookups should be performed with these tables. 

1) Generate a table (This takes 1-5 days depending on HW) The table is
generated as 256 distinct bucket files of unsorted data.

2) Sort the tables with sort2 - This program sorts each bucket file
individually, removing any merges in the process. The resulting set of
files is the "full table".

3) For more compact storage and lookup, use the SSDwriter tool to copy
the table to a raw block device. (Currently only 1 table pr device is
supported) - If you have compacted tables (made with CompactTable.py)
ex. from the distribution media you can just dd the blockdevice file to
your block device of choice.

4) The table is now ready for test lookup. For real intercepts etc,
multiple tables has to be used concurrently. To do the test lookup on
the challenge test data, I run the following: (single line)

./a5lookup challenge.bin
204 /media/tables/sorted/204/index.dat /dev/sdd1 > craic204.txt

In this example I did a test run on a table with ID 204 (which had
previously been copied to the SSD device /dev/sdd1. I pipe the output to
a file for reference, but the output is flushed at regular intervals, so
progress can be inspected with tail -f etc.

To understand how the challenge was created, you can look at btest.cpp.

The lookup part is currently at a proof of concept stage, and some
amount of work remains to build a fast and efficient cracking machine.

Cheers,
  Frank




_______________________________________________
A51 mailing list
[email protected]
http://lists.lists.reflextor.com/cgi-bin/mailman/listinfo/a51

Reply via email to