ID photo of Ciro Santilli taken in 2013 right eyeCiro Santilli OurBigBook logoOurBigBook.com $£ Sponsor 中国独裁统治 China Dictatorship 新疆改造中心、六四事件、法轮功、郝海东、709大抓捕、2015巴拿马文件 邓家贵、低端人口、西藏骚乱
This talk was presented on 24 September 2024 as part of the 2024 Aratu Week, a small online conference by Brazilian hacker interest group Boitatech.
How to contact me: Section "How to contact Ciro Santilli"
Links to this talk:
Figure 1. Source.
Video 1.
Self-recorded presentation VOD
. Source.
Video 2.
Presentation upload by the organizers
. Source.

Introduction

Articles: 2
Figure 2. Source.
Section "How to contact Ciro Santilli"
https://raw.githubusercontent.com/cirosantilli/media/master/ID_photo_of_Ciro_Santilli_2024_intro_to_ourbigbook.jpg
https://stackoverflow.com/users/flair/895245.png?theme=dark
Video 3.
How I found a Star Wars website made by the CIA
. Source.
Article: Section "CIA 2010 covert communication websites"
Figure 3. Source.
Figure 5. Source.
https://raw.githubusercontent.com/cirosantilli/media/master/Yahoo_CIA_website_article.png
Figure 6.
"Seriously a dumb question" Quora answer by Chris from the US Navy
.
Video 4.
Compromised Comms by Darknet Diaries (2023)
Source.
Figure 7.
Banner of the Reuters article
. Source.
Figure 8.
Reuters reconstruction of what the applet would have looked like
. Source.
Figure 9.
Inspecting the Reuters article HTML source code
.

Coolest findings

Words: 33 Articles: 6
Figure 10. . The Star Wars one.
Brazil
Words: 6
Figure 11. . The Brazilian one.
Germany
Words: 6
Figure 12. . The German one.
France
Words: 6
Figure 13. . A French one.
Italy
Words: 9
Figure 14. . An Italian one about extreme sports.

Methodology

Words: 154 Articles: 7
Figure 15.
viewdns.info activegameinfo.com domain to IP
. Source.
Figure 16.
viewdns.info aroundthemiddleeast.com IP to domain
. Source.

The hard: finding new IP ranges!

Words: 144 Articles: 5
dnscensus2013.neocities.org/
Figure 17. . Source. This source provided valuable historical domain to IP data.
amazon.com,2012-02-01T21:33:36,72.21.194.1
amazon.com,2012-02-01T21:33:36,72.21.211.176
amazon.com,2013-10-02T19:03:39,72.21.194.212
amazon.com,2013-10-02T19:03:39,72.21.215.232
amazon.com.au,2012-02-10T08:03:38,207.171.166.22
amazon.com.au,2012-02-10T08:03:38,72.21.206.80
google.com,2012-01-28T05:33:40,74.125.159.103
google.com,2012-01-28T05:33:40,74.125.159.104
google.com,2013-10-02T19:02:35,74.125.239.41
google.com,2013-10-02T19:02:35,74.125.239.46
https://raw.githubusercontent.com/cirosantilli/media/master/ciro-love-sqlite.png
web.archive.org/cdx/search/cdx?url=capture-nature.com&matchType=domain
com,capture-nature)/robots.txt 20211229130524 https://www.capture-nature.com/robots.txt warc/revisit - XWX2XVEZVSVIUKYXF3AJUYIRDOLOXLTO 1213
com,capture-nature)/robots.txt 20211230151913 http://capture-nature.com/robots.txt warc/revisit - XWX2XVEZVSVIUKYXF3AJUYIRDOLOXLTO 1186
com,capture-nature)/robots.txt 20220419233721 https://www.capture-nature.com/robots.txt warc/revisit - XWX2XVEZVSVIUKYXF3AJUYIRDOLOXLTO 1075
com,capture-nature)/scenes.jar 20110201104851 http://capture-nature.com/Scenes.jar application/java-archive 200 U3GPB3SPISZKLFGUJFD34C5GXWAAC2GJ 287887
com,capture-nature)/scenes.jar 20110224193204 http://capture-nature.com/Scenes.jar application/java-archive 200 U3GPB3SPISZKLFGUJFD34C5GXWAAC2GJ 287890
com,capture-nature)/scenes.jar 20130903003254 http://capture-nature.com/Scenes.jar application/x-java-archive 200 U3GPB3SPISZKLFGUJFD34C5GXWAAC2GJ 287898
com,capture-nature)/trees-and-details 20200928184446 https://www.capture-nature.com/trees-and-details text/html 200 NO6J7567VFWZLRSKBJ5HVXGT27MX2A4K 30902
com,capture-nature)/trees-and-details 20210127132910 https://www.capture-nature.com/trees-and-details text/html 200 SI73WNJUBGTOXSTRK4IRU4D4AJ637F6A 31041
com,capture-nature)/trees-and-details 20210419062751 https://www.capture-nature.com/trees-and-details text/html 200 K4Q444QJ243HW3ECXNNOBNUFMXWAPVFD 31464
https://raw.githubusercontent.com/cirosantilli/media/master/cia-website-comms-methods.png
Tor automation at: github.com/cirosantilli/cirosantilli.github.io/blob/f45d859d4f9350e4a3deffdbb8acd86584d60f2c/cia-2010-covert-communication-websites/cdx-tor.sh
They really screwed up there:
$ jq <hits.json '.[].host' | wc
    361     361    7777
$ jq <hits.json '.[].host' | grep news | wc
    129     129    2809
More than 1/3 of my hits found contain the word "news" in the title!!! E.g.:
global-view-news.com
firstnewssource.com
theworldnewsfeeds.com
pars-technews.com
newdaynewsonline.com
sportsnewsfinder.com
newsworldsite.com
todaysnewsreports.net
hassannews.net
weblognewsinfo.com
newsincirculation.com
static.hupo.com/expdomain_myadmin/2012-03-06(国际域名).txt
0000o.com
001cssf.com
001techan.com
0061hs-0351xc-g305h.net
006979.com
006h4g-054hs-6504ga.net
github.com/cirosantilli/expired-domain-names-by-day-2011
Figure 18. Source.
https://web.archive.org/web/20240703222455im_/https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/30a_Sammlung_Eybl_Gro%C3%9Fbritannien._Alfred_Leete_(1882%E2%80%931933)_Britons_(Kitchener)_wants_you_(Briten_Kitchener_braucht_Euch)._1914_(Nachdruck)%2C_74_x_50_cm._(Slg.Nr._552).jpg/401px-thumbnail.jpg
github.com/cirosantilli/linux-kernel-module-cheat
Figure 19. Source.
Figure 20. Source.
One time setup:
git clone https://github.com/cirosantilli/linux-kernel-module-cheat
cd linux-kernel-module-cheat
sudo apt install docker
python3 -m venv .venv
. .venv/bin/activate
./setup
./run-docker create
./run-docker sh
You are now in Docker.
Build everything from source inside docker:
./build --download-dependencies qemu-buildroot
Boot Linux and get a userland shell:
./run
Outcome:
<6>[    1.383114] NET: Registered protocol family 17
<6>[    1.383682] 9pnet: Installing 9P2000 support
<6>[    1.385473] IPI shorthand broadcast: enabled
<6>[    1.385701] sched_clock: Marking stable (1355697980, 27047205)->(1385555667, -2810482)
<6>[    1.387744] ALSA device list:
<6>[    1.387843]   No soundcards found.
<6>[    1.535981] ata2.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100
<5>[    1.543470] scsi 1:0:0:0: CD-ROM            QEMU     QEMU DVD-ROM     2.5+ PQ: 0 ANSI: 5
<6>[    1.548952] EXT4-fs (vda): mounting ext2 file system using the ext4 subsystem
<6>[    1.555909] EXT4-fs (vda): mounted filesystem without journal. Opts: (null)
<6>[    1.556145] VFS: Mounted root (ext2 filesystem) on device 254:0.
<6>[    1.557451] devtmpfs: mounted
<6>[    1.605639] Freeing unused kernel image (initmem) memory: 1248K
<6>[    1.605875] Write protecting the kernel read-only data: 16384k
<6>[    1.607977] Freeing unused kernel image (text/rodata gap) memory: 2044K
<6>[    1.610190] Freeing unused kernel image (rodata/data gap) memory: 1012K
<6>[    1.610495] Run /sbin/init as init process
<6>[    1.683311] tsc: Refined TSC clocksource calibration: 3293.671 MHz
<6>[    1.683618] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x2f79f177aae, max_idle_ns: 440795226653 ns
<6>[    1.683849] clocksource: Switched to clocksource tsc
<3>[    1.694241] 9pnet_virtio: no channels available for device host_data
mount: mounting host_data on /mnt/9p/data failed: No such file or directory
qemu-system-x86_64: warning: 9p: degraded performance: a reasonable high msize should be chosen on client/guest side (chosen msize is <= 8192). See https://wiki.qemu.org/Documentation/9pset.
<3>[    1.712287] overlayfs: overlapping upperdir path
mount: mounting overlay on /mnt/overlay failed: Too many levels of symbolic links
hello S98
hello .profile
/lkmc
root@buildroot# pwd
/lkmc
/lkmc
root@buildroot#
https://web.archive.org/web/20240424065053im_/https://bootlin.com/wp-content/uploads/2015/05/logo-buildroot.png
The following are stored in submodules:
submodules/binutils-gdb/
submodules/buildroot/
submodules/gcc/
submodules/glibc/
submodules/linux/
submodules/qemu/
So you can modify source, rebuild and that's it, its in the VM.
E.g., let's hack the linux kernel:
asmlinkage __visible void __init __no_sanitize_address start_kernel(void)
{
  pr_info("I'VE HACKED THE LINUX KERNEL!!!");
Rebuild Linux:
./build-linux
Rerun:
./run
And after boot we see:
<6>[    0.000000] I'VE HACKED THE LINUX KERNEL!!!
Start QEMU and wait for GDB:
./run --gdb-wait
On another shell, connect GDB to QEMU and run up to a symbol that shows up at boot:
./run-gdb start_kernel
Outcome: we are GDB step debugging the Linux Kernel:
Breakpoint 1, start_kernel () at /root/lkmc/submodules/linux/init/main.c:837
837     {
loading vmlinux
(gdb) n
841             set_task_stack_end_magic(&init_task);
(gdb) l
836     asmlinkage __visible void __init __no_sanitize_address start_kernel(void)
837     {
838             char *command_line;
839             char *after_dashes;
840
841             set_task_stack_end_magic(&init_task);
842             smp_setup_processor_id();
843             debug_objects_early_init();
844
845             cgroup_init_early();
(gdb) p &init_task
$1 = (struct task_struct *) 0xffffffff82012840 <init_task>
(gdb) bt
#0  start_kernel () at /root/lkmc/submodules/linux/init/main.c:841
#1  0xffffffff8215145c in x86_64_start_reservations (real_mode_data=<optimized out>) at /root/lkmc/submodules/linux/arch/x86/kernel/head64.c:490
#2  0xffffffff821514e3 in x86_64_start_kernel (real_mode_data=0x138d0 <bts_ctx+2256> <error: Cannot access memory at address 0x138d0>) at /root/lkmc/submodules/linux/arch/x86/kernel/head64.c:471
#3  0xffffffff810000e6 in secondary_startup_64 () at /root/lkmc/submodules/linux/arch/x86/kernel/head_64.S:243
#4  0x0000000000000000 in ?? ()
(gdb) up
#1  0xffffffff8215145c in x86_64_start_reservations (real_mode_data=<optimized out>) at /root/lkmc/submodules/linux/arch/x86/kernel/head64.c:490
490             start_kernel();
(gdb) l
485                     break;
486             default:
487                     break;
488             }
489
490             start_kernel();
491     }
E.g., if you want aarch64 instead of the default x86_64:
./build -aA
./run -aA
That's it.

Lots of in-tree examples

Words: 148 Articles: 3

Kernel modules

Words: 46
kernel_modules/hello.c
#include <linux/module.h>
#include <linux/kernel.h>

static int myinit(void)
{
	pr_info("hello init\n");
	/* 0 for success, any negative value means failure,
	 * E* consts if you want to specify failure cause.
	 * https://www.linux.com/learn/kernel-newbie-corner-loadable-kernel-modules-coming-and-going */
	return 0;
}

static void myexit(void)
{
	pr_info("hello exit\n");
}

module_init(myinit)
module_exit(myexit)
MODULE_LICENSE("GPL");

Assembly

Words: 24
Assertions! The best way to learn assembly.
userland/arch/x86_64/add.S
#include <lkmc.h>

LKMC_PROLOGUE
    /* Register immediate. */
    mov $1, %rax
    add $2, %rax
    LKMC_ASSERT_EQ(%rax, $3)
LKMC_EPILOGUE

Bare metal!

Words: 78
Powered by crosstool-NG:
baremetal/arch/aarch64/semihost_exit.S
.global main
main:
    /* 0x20026 == ADP_Stopped_ApplicationExit */
    mov x1, 0x26
    movk x1, 2, lsl 16
    str x1, [sp, 0]

    /* Exit status code. Host QEMU process exits with that status. */
    mov x0, 0
    str x0, [sp, 8]

    /* x1 contains the address of parameter block.
     * Any memory address could be used.
     */
    mov x1, sp

    /* SYS_EXIT */
    mov w0, 0x18

    /* Do the semihosting call on A64. */
    hlt 0xf000

OurBigBook.com

Words: 306 Articles: 11
What I'm doing for 1 year now!
Figure 21.
Logo of the OurBigBook Project
.
Figure 22.
Everything is open source
. Source.
Video 5.
Intro to the OurBigBook Project
. Source.
Section "1000 Monero donation"
https://web.archive.org/web/20240306094726if_/https://www.getmonero.org/press-kit/symbols/monero-symbol-on-white-1280.png
Figure 23.
Screenshot of Ciro Santilli's Monero wallet with 1000 Monero in it just after the donation
.
Figure 24.
Still of the reaction video after finding out about the big donation around about midnight
. Source.
Figure 25.
It's a role given to me by the Internet people
.
The ultimate goal: create an university:
  • without entry exams
  • without course requirements
  • where all material is free and available online: lecture notes, problem sheets, past exam papers
  • where you only pay to take certification exams for the courses that you care about
The technical goal:
Get university students to write what they learn. All university material should be amazing and free!
The how:
Create the ultimate personal knowledge base software with multi-user mind-melding features.

What you get

Words: 27 Articles: 2
Figure 26.
User home page on OurBigBook.com
. Live URL: ourbigbook.com/cirosantilli
Figure 27.
Dynamic article tree with infinitely deep table of contents
.
Descendant pages can also show up as toplevel e.g.: ourbigbook.com/cirosantilli/chordate-subclade
Figure 28.
The topics feature allows you to find the best version of a subject written by other users user
. Live demo: derivative.

Edit and publish

Words: 57 Articles: 3
https://raw.githubusercontent.com/ourbigbook/ourbigbook-media/master/feature/x/hilbert-space-arrow.png
Figure 29. . You can also edit articles on the Web editor without installing anything locally.
Figure 30.
You can publish local lightweight markup files to either OurBigBook Web or as a static website
. For example, both of the following pages:are generated from the exact same source code at: github.com/cirosantilli/cirosantilli.github.io.
Figure 31. .
Figure 32. .
Section "Alternatives"
https://upload.wikimedia.org/wikipedia/en/8/80/Wikipedia-logo-v2.svg
Wikipedia:
  • notability guidelines too stringent
  • Encyclopedic content requirements too stringent, we need tutorials
  • contributors get no clear indication of their contribution
  • your changes can be reverted at any time losing you hours of work
Figure 33. Source.
Stack Exchange: can't write a book/have table of contents, only Q&A
Figure 34. Source.
Other personal knowledge bases (Obsidian, static site generators, etc.), blogs, PDFs:
  • no way to merge brains of multiple users
  • some of them are not focused on publishing, only personal/internal company usage
Article: Section "Ciro's Bitcoin Inscription Museum"
Figure 35.
Pedobear memes?
Source.
Figure 36. Source.
Figure 37. Source.
Figure 38.
Ordinal #0
.
Figure 39.
Bitcoin ordinal ruleset inscription frequency with time
. Source.

Fan tributes

Words: 195
 -------------------------------------
|  Force of Will               3 U U  |
|  ---------------------------------  |
| |                  ////////////   | |
| |                ////() ()\////\  | |
| |               ///_\ (--) \///\  | |
| |        )      ////  \_____///\\ | |
| |       ) \      /   /   /    /   | |
| |    ) /   \     |   |  /   _/    | |
| |   ) \  (  (   /   / /   / \     | |
| |  / ) ( )  / (    )/(    )  \    | |
| |  \(_)/(_)/  /UUUU \  \\\/   |   | |
| .---------------------------------. |
| Interrupt                           |
| ,---------------------------------, |
| | You may pay 1 life and remove a | |
| | blue card in your hand from the | |
| | game instead of paying Force of | |
| | Will's casting cost.  Effects   | |
| | that prevent or redirect damage | |
| | cannot be used to counter this  | |
| | loss of life.                   | |
| | Counter target spell.           | |
| `---------------------------------` |
|                                     l
| Illus.  Terese Nelsen               |
 -------------------------------------

Social media

Words: 6
Figure 40.
WeAreStarStuff.jpg
. AtomSea and EMBII (December 2013)

Art

Words: 2
Figure 41.
YellowRobot.jpg
. 2017

Memes

Words: 10
Figure 42.
Water Deer
. 2016 from badtaxidermy.com Visible at: web.archive.org/web/20200527070011/http://www.badtaxidermy.com/?page=3. Uploaded with: cryptograffiti.info.
Figure 43.
Chinese wedding (2016)
Free GrrCon ticket (2018):
@@@@@@@@@@@@@@@@@@@@@@@@YOUR@FREE@GRRCON@TICKET@CODE@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,          *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@%                          @@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@                                   .@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@          *@@@@@@@@@@@@@@@@@@@,           @@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@         @@@@(                   %@@@@          @@@@@@@@@@@@@@@
@@@@@@@@@@@@@@       @@@@                             @@@&        @@@@@@@@@@@@@
@@@@@@@@@@@@       @@@        @@@@@@@@@@@@@,@.           @@@        @@@@@@@@@@@
@@@@@@@@@@      %@@       .&@@@@@@&%@@@@@&&&@@@@@#          @@/      /@@@@@@@@@
@@@@@@@@@      @@       @@@&@@O@@@@@@@@@@@@@@@@(@@@@&         @@       @@@@@@@@
@@@@@@@@     @@.      .@@@,%&@@P@@@@@(,*&*@@@@@@@@#(#.@        (@@      @@@@@@@
@@@@@@*     @@       @@(@%@@@@@&R@@@@&@@@@@@@&@@@@@@/ @@@        @@      @@@@@@
@@@@@#     @@       @@@@@@@@,,@%@E@%@@@@@@@@@@@%@@@@@.@@@@        @@      @@@@@
@@@@@     @@        @.@@@@@,@@@(@,T@@@@@@@@@@@@@@@@@@@@@@@@        @@      @@@@
@@@@     @@        @&@@@@@@/@#@(@&@U@@@@@@@@(@@@@@@., #@@@@@        @@      @@@
@@@*    @@         @@@@&@@&@    #@@@R@.@@@@@.@@@@@@@%@@(@@@@@        @@     @@@
@@@     @@         /@@*@@        @@@/N/@,@@@@@@@@@    @@@@@@,        @@      @@
@@@    @@          @@@@@          @@.@I@@,@@@@@@@@    @@@@&@@         @@     @@
@@/    @@           @@@,           (#@/S@@@@@@.,@     **@@&,@         @@     @@
@@     @@           %((           @#@@@@M@@@@@&@    #./%&@@*          @@     %@
@@     @@           #&&@          @@@@&@@Y@@@@@     &@,@@@.(          @@     %@
@@,    @@           @@@@@@        *(@@%@@@F&@.      @@&%@@            @@     @@
@@@    @@           @#@%@/@         @@@*@@@R(      @@@&@              @@     @@
@@@     @@         @@@@@@@@@%@@@%%@@@@@@@%%/I@  @@@@, @              @@      @@
@@@.    @@         @@@@@@@*@&@@@@# @(@@@@@@@@E@@@@@@@&               @@     @@@
@@@@     @@         @@@@&@@(@@@@@@.@# @@@ @@@@N@@@@,@(              @@      @@@
@@@@@     @@            @@@*@@&@@*(@  @@@&@@&@@D@@@@&              @@      @@@@
@@@@@.     @@                  @/@,@@@@@@@@@@@@@@%                @@      @@@@@
@@@@@@      @@                 @@@@@@@@@@@@@,@@@@                @@      %@@@@@
@@@@@@@,     @@/             @&@@(@@@@ @@@@@@@@@               &@@      @@@@@@@
@@@@@@@@@      @@          #%@(,&,@@@@ @(&  @/,@              @@       @@@@@@@@
@@@@@@@@@@      /@@        @@&@@@@@,*  @@&  @@@@@@         .@@.       @@@@@@@@@
@@@@@@@@@@@@       @@@        @(@@@@@@ @@@  .@(@@,       @@@        @@@@@@@@@@@
@@@@@@@@@@@@@@       &@@@                             @@@#        @@@@@@@@@@@@@
@@@@@@@@@@@@@@@@         @@@@@                   @@@@@          @@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@#          .@@@@@@@@@@@@@@@@@@@            @@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@         @  ,        .  @           @@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@     @ @   @#   @  *, @     @@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&              @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Removing the @ signs:
                        YOUR FREE GRRCON TICKET CODE
                                  ,          *
                          %
                                                          .
                              *                   ,
                              (                   %
                                                          &
                                            , .
                %         .&      &%     &&&     #            /      /
                            &  O                (    &
                .      .   ,%&  P     (,*&*        #(#.         (
      *                ( %     &R    &       &      /
      #                      ,, % E %           %     .
                      .     ,   ( ,T
                    &      / # ( & U        (      ., #
    *                   &  &     #   R .     .       %  (
                    /  *             /N/ ,                   ,
                                    . I  ,                &
  /                    ,           (# /S      .,      **  &,
                    %((            #    M     &     #./%&  *                 %
                    #&&               &  Y          & ,   .(                 %
  ,                               *(  %   F& .        &%
                      # % /             *   R(         &
                            %   %%       %%/I       ,
    .                      * &    #  (        E       &
                        &  (      . #         N    , (
                            *  &  *(      &  &  D    &
      .                          / ,              %
                                            ,                            %
        ,       /              &  (                             &
                            #% (,&,      (&   /,
                /            &     ,*    &                 .  .
                                (            . (  ,
                      &                                   #

                  #          .
                                  ,        .
                                      #      *,
                                &
Figure 44. Source.
Figure 45.
Xi Jinping, ruler of China
.
Figure 46.
Xi Jinping, ruler of China, wearing leather sadomasochist outfit
.
https://raw.githubusercontent.com/cirosantilli/china-dictatorship-media/master/GitHub_collateral_freedom.jpg
github.com/cirosantilli/china-dictatorship/issues
Figure 47. Source.
Figure 48. Source.
web.archive.org/web/20210917212322/https://stackoverflow.com/questions/6121094/how-do-i-run-a-program-with-commandline-arguments-using-gdb-within-a-bash-script/6121299
https://raw.githubusercontent.com/cirosantilli/china-dictatorship-media/master/Stack_Overflow_keyword_attack_by_Ciro_Santilli.png

Package managers

Words: 6 Articles: 1
Up March 2023 web.archive.org/web/20230306090740/https://pypi.org/project/china-dictatorship/
https://raw.githubusercontent.com/cirosantilli/china-dictatorship-media/master/pypi.org_project_china-dictatorship.png
Down November 2023 web.archive.org/web/20231110041847/https://pypi.org/project/china-dictatorship/
https://raw.githubusercontent.com/cirosantilli/china-dictatorship-media/master/pypi.org_project_china-dictatorship_down.png
github.com/cirosantilli/all-github-commit-emails
More info: Section "All GitHub Commit Emails"
https://raw.githubusercontent.com/cirosantilli/media/master/GitHub_Archive_Google_bigquery_PushEvent_email_highlight.png
https://raw.githubusercontent.com/cirosantilli/media/master/All_GitHub_commit_emails_repo_screenshot_before_takedown_archive_is.png
See also Ciro Santilli's naughty projects:

Ancestors (3)

  1. Talk by Ciro Santilli
  2. Ciro Santilli
  3. Home