Other Bitcon analysis:
Analyses in other blockchains:
- Ethereum
- reidjs.medium.com/top-6-weird-innovative-and-hilarious-findings-in-the-ethereum-blockchain-83dbbca461ca Top 6 Weird, Innovative, and Hilarious findings in the Ethereum Blockchain by Reid Sherman (2018)
- "Annotated blockchain project"Does the same as this page, just that it is an uncomprehensible mess of broken links. But they have soe good ideas!
- etherpad.mit.edu/p/r.e33d2e7230fafc0612a0f2e7ebc87bae
- etherpad.mit.edu/p/r.19b7b3e2c5ea08a61cb0bef0aeb213fd image list (February 8, 2017) We tried going over it, but it is just too much work, the huge majority of the results are just AtomSea & EMBII so not that interesting.
- archive.ph/Zz7m5
- www.reddit.com/r/Bitcoin/comments/5wax5v/a_group_is_working_on_building_a_fully_annotated/
- archive.4plebs.org/pol/thread/111742853/
Their main techniques seem to be:and:mkdir binout for file in blk*dat; do echo "$file"; binwalk --dd='.*' "$file" -C binout/. --log=binout/"$file""res.txt"; done
which seem promising.mkdir subfileout for file in blk*dat; do mkdir subfileout/"$file"; done for file in blk*dat; do echo "$file"; hachoir-subfile --category=image,video,audio,container,archive,misc "$file" subfileout/"$file" > subfileout/"$file""subfile.txt"; done
These are installable on Ubuntu 23.10 with:sudo apt install binwalk hachoir
TODO how to they automatically map back to transaction IDs? There is a line "Script to add the TX ID to each file." Our attempts: Section "Get transaction id from position in dat file"
.data
is section 1:00000080 01 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 |................|
00000090 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 |................|
000000a0 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000000b0 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
- 80 0:
sh_name
=01 00 00 00
: index 1 in the.shstrtab
string tableHere,1
says the name of this section starts at the first character of that section, and ends at the first NUL character, making up the string.data
..data
is one of the section names which has a predefined meaning according to www.sco.com/developers/gabi/2003-12-17/ch4.strtab.html:These sections hold initialized data that contribute to the program's memory image.
- 80 4:
sh_type
=01 00 00 00
:SHT_PROGBITS
: the section content is not specified by ELF, only by how the program interprets it. Normal since a.data
section. - 80 8:
sh_flags
=03
7x00
:SHF_WRITE
andSHF_ALLOC
: www.sco.com/developers/gabi/2003-12-17/ch4.sheader.html#sh_flags, as required from a.data
section - 90 0:
sh_addr
= 8x00
: TODO: standard says:but I don't understand it very well yet.If the section will appear in the memory image of a process, this member gives the address at which the section's first byte should reside. Otherwise, the member contains 0.
- 90 8:
sh_offset
=00 02 00 00 00 00 00 00
=0x200
: number of bytes from the start of the program to the first byte in this section - a0 0:
sh_size
=0d 00 00 00 00 00 00 00
If we take 0xD bytes starting atsh_offset
200, we see:00000200 48 65 6c 6c 6f 20 77 6f 72 6c 64 21 0a 00 |Hello world!.. |
AHA! So our"Hello world!"
string is in the data section like we told it to be on the NASM.Once we graduate fromhd
, we will look this up like:readelf -x .data hello_world.o
which outputs:Hex dump of section '.data': 0x00000000 48656c6c 6f20776f 726c6421 0a Hello world!.
NASM sets decent properties for that section because it treats.data
magically: www.nasm.us/doc/nasmdoc7.html#section-7.9.2Also note that this was a bad section choice: a good C compiler would put the string in.rodata
instead, because it is read-only and it would allow for further OS optimizations.- a0 8:
sh_link
andsh_info
= 8x 0: do not apply to this section type. www.sco.com/developers/gabi/2003-12-17/ch4.sheader.html#special_sections - b0 0:
sh_addralign
=04
= TODO: why is this alignment necessary? Is it only forsh_addr
, or also for symbols insidesh_addr
? - b0 8:
sh_entsize
=00
= the section does not contain a table. If != 0, it means that the section contains a table of fixed size entries. In this file, we see from thereadelf
output that this is the case for the.symtab
and.rela.text
sections.
- a0 8:
A function that maps two sets to a third set.
Theses places give out free food all the time.
The first time Ciro Santilli went to one was when an Indian friend of his took him to the one in the North of Paris when they were living there in the first half of the 2010's, the Gurdwara Singh Sabha France.
Much like Islam's Ramadan, Ciro Santilli appreciates this a lot due to due to Ciro Santilli's self perceived compassionate personality and Ciro Santilli's cheapness.
Instead of just talking, those people really go out, and put food on the plate for anyone who needs it (or even for those that don't really need it! Although who would be so souless to eat for free and not donate a few bucks if they can afford to???). There's a beauty to that.
Writing this also remembered Ciro of non-religious groups that would give out free food to the poor at
Once Ciro joked in a twenty questions-like game that humans are animals.
But counting humans a fish would have been a stroke of genius.
- Lone Wolf and Cub (1972-). Suio style... Ogami Itto. Cute Japanese boy. Wagyu... beef recipe?
There are unlisted articles, also show them or only show them.