Dear Maintainer,
I tried to collect some more information and compared this
situation on real hardware armv5tel with an armv7 and
it looks like in keccak_finalize the following instruction
stores different data to memory depending on the arm hardware:
0x005c4ac0 <keccak_finalize+192>: f0 20 c4 e1 strd r2, [r4]
In the failing case this is stored:
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x6f 0x6e 0x20 0x63 0x00 0x00 0x00 0x00
And in the good case this:
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x2e 0x6f 0x6e 0x69 0x6f 0x6e 0x20 0x63
While on both the registers r2 and r3 contain:
r2 0x696e6f2e 1768845102
r3 0x63206e6f 1663069807
In the attached files are some more details leading to the above result.
Kind regards,
Bernhard
(gdb) bt
#0 0x7f719ac4 in xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:21
#1 keccak_finalize (s=0xbeffef5c) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:189
#2 0x7f71a410 in hash (out=0xbefff1a8 "", outlen=32, in=<optimized out>,
inlen=48, bits=256, delim=6 '\006') at ../src/ext/keccak-tiny/keccak-tiny-unrolled.c:353
#3 0x7f71a640 in sha3_256 (out=out@entry=0xbefff1a8 "", outlen=outlen@entry=32,
in=in@entry=0xbefff15c ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V",
inlen=inlen@entry=48)
at ../src/ext/keccak-tiny/keccak-tiny-unrolled.c:389
#4 0x7f6fb5e8 in crypto_digest256 (digest=digest@entry=0xbefff1a8 "", m=m@entry=0xbefff15c
".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V",
len=len@entry=48, algorithm=algorithm@entry=DIGEST_SHA3_256) at
../src/lib/crypt_ops/crypto_digest.c:153
#5 0x7f651948 in build_hs_checksum (key=key@entry=0x7f837df4, version=version@entry=3
'\003', checksum_out=checksum_out@entry=0xbefff1a8 "") at
../src/feature/hs/hs_common.c:748
#6 0x7f6530b0 in hs_build_address (key=key@entry=0x7f837df4, version=<optimized out>,
addr_out=addr_out@entry=0x7f837da0 "") at ../src/feature/hs/hs_common.c:1001
...
# Buster armel chroot 2020-12-13 on another Buster armel
# uname -a
Linux qnap119 4.19.0-12-marvell #1 Debian 4.19.152-1 (2020-10-18) armv5tel
GNU/Linux
# cat /proc/cpuinfo
processor : 0
model name : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS : 400.00
Features : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant : 0x2
CPU part : 0x131
CPU revision : 1
Hardware : Marvell Kirkwood (Flattened Device Tree)
Revision : 0000
# chroot/bin/busybox mount -o rbind /dev chroot/dev
# chroot/bin/busybox mount -o rbind /proc chroot/proc
# chroot/bin/busybox mount -o rbind /sys chroot/sys
# cd debian-10-buster-armel-chroot
# env -i TERM=xterm LANG=de_DE.UTF-8 /usr/sbin/chroot chroot /bin/su -
# apt install openssl tor
# dpkg -l tor
...
ii tor 0.3.5.12-1 armel anonymizing overlay network for TCP
# exit
# unshare -n /bin/bash
# env -i TERM=xterm LANG=de_DE.UTF-8 /usr/sbin/chroot chroot /bin/su -l benutzer
$ mkdir hs
$ chmod go-rwx -R hs
$ echo
'PT0gZWQyNTUxOXYxLXNlY3JldDogdHlwZTAgPT0AAACg6zoxlQ2hy7C6fUoTgIa0GLMk/YdVs2ic6jUDCzztZeLWcfqwCQ5/KoPk9v99cuWKO5mNpVrDtbOc27UUyC7e'
| base64 -d > hs/hs_ed25519_secret_key
$ echo '6bff2f57fcd69049091dcfa42b08fb84919d60dac919cbb16e3df1d960bb7843
./hs/hs_ed25519_secret_key' | sha256sum -c
./hs/hs_ed25519_secret_key: OK
$ cat <<EOF > torrc
HiddenServiceDir /home/benutzer/hs
HiddenServicePort 80 127.0.0.1:8080
EOF
$ /usr/sbin/tor -f torrc Log 'info stdout'
...
^C
$ cat hs/hostname
upxkcswnvepfls7vcy5vuixy54hlugfjnzhvl5ygfbjtm7znkyac43yd.onion
# apt build-dep tor
# apt install gdb tor-dbgsym
mkdir /home/benutzer/source/tor/orig -p
cd /home/benutzer/source/tor/orig
apt source tor
cd
$ rm hs/hostname
$ gdb -q --args /usr/sbin/tor -f torrc Log 'info stdout'
(gdb) set width 0
(gdb) set pagination off
(gdb) directory /home/benutzer/source/tor/orig/tor-0.3.5.12/src
(gdb) b build_hs_checksum
(gdb) run
(gdb) print sizeof(*key)
$3 = 32
(gdb) x/32xb key
0x6e2de4: 0xa3 0xee 0xa1 0x4a 0xcd 0xa9 0x1e 0x55
0x6e2dec: 0xcb 0xf5 0x16 0x3b 0x5a 0x22 0xf8 0xef
0x6e2df4: 0x0e 0xba 0x18 0xa9 0x6e 0x4f 0x55 0xf7
0x6e2dfc: 0x06 0x28 0x53 0x36 0x7f 0x2d 0x56 0x00
(gdb) next
(gdb) next
(gdb) next
748 crypto_digest256((char *) checksum_out, data, sizeof(data),
(gdb) print sizeof(data)
$4 = 48
(gdb) x/48xb data
0xbefff17c: 0x2e 0x6f 0x6e 0x69 0x6f 0x6e 0x20 0x63
0xbefff184: 0x68 0x65 0x63 0x6b 0x73 0x75 0x6d 0xa3
0xbefff18c: 0xee 0xa1 0x4a 0xcd 0xa9 0x1e 0x55 0xcb
0xbefff194: 0xf5 0x16 0x3b 0x5a 0x22 0xf8 0xef 0x0e
0xbefff19c: 0xba 0x18 0xa9 0x6e 0x4f 0x55 0xf7 0x06
0xbefff1a4: 0x28 0x53 0x36 0x7f 0x2d 0x56 0x00 0x03
(gdb) next
hs_build_address (key=key@entry=0x6e2de4, version=<optimized out>,
addr_out=addr_out@entry=0x6e2d90 "") at ../src/feature/hs/hs_common.c:1003
1003 build_hs_address(key, checksum, version, address);
(gdb) print sizeof(checksum)
$5 = 32
(gdb) x/32xb checksum
0xbefff1c8: 0x2e 0x6f 0x6e 0x69 0x64 0xd5 0xbf 0x89
0xbefff1d0: 0xa5 0xd1 0xdb 0x43 0x3b 0x94 0x10 0xdd
0xbefff1d8: 0xe8 0x01 0xe4 0x53 0xa1 0xd6 0x81 0xec
0xbefff1e0: 0xd1 0x2b 0xe5 0xfa 0x70 0xc0 0x47 0xac
$ gdb -q --args /usr/sbin/tor -f /home/benutzer/torrc Log 'info stdout'
...
(gdb) next
21 return _le64toh(r);
(gdb) x/200xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef64: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef6c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef74: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef7c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef84: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef8c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef94: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef9c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefa4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefac: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefb4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefbc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefc4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefcc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefd4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefdc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefe4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefec: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffeff4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffeffc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff004: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff00c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff014: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff01c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) x/200xb &((keccak_state *) 0xbeffef5c)->block
0xbefff029: 0x2e 0x6f 0x6e 0x69 0x6f 0x6e 0x20 0x63
0xbefff031: 0x68 0x65 0x63 0x6b 0x73 0x75 0x6d 0xa3
0xbefff039: 0xee 0xa1 0x4a 0xcd 0xa9 0x1e 0x55 0xcb
0xbefff041: 0xf5 0x16 0x3b 0x5a 0x22 0xf8 0xef 0x0e
0xbefff049: 0xba 0x18 0xa9 0x6e 0x4f 0x55 0xf7 0x06
0xbefff051: 0x28 0x53 0x36 0x7f 0x2d 0x56 0x00 0x03
0xbefff059: 0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff061: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff069: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff071: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff079: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff081: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff089: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff091: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff099: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0a1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0a9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80
0xbefff0b1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0b9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0c1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0c9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0d1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0d9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0e1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0e9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) x/4xb &((keccak_state *) 0xbeffef5c)->rate
0xbefff024: 0x88 0x00 0x00 0x00
(gdb) print r
No symbol "r" in current context.
(gdb) step
106 a[i/8] ^= loadu64le(src + i);
(gdb) x/200xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x6f 0x6e 0x20 0x63 0x00 0x00 0x00 0x00
0xbeffef64: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef6c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef74: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef7c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef84: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef8c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef94: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef9c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefa4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefac: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefb4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefbc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefc4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefcc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefd4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefdc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefe4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefec: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffeff4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffeffc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff004: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff00c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff014: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff01c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) x/200xb &((keccak_state *) 0xbeffef5c)->block
0xbefff029: 0x2e 0x6f 0x6e 0x69 0x6f 0x6e 0x20 0x63
0xbefff031: 0x68 0x65 0x63 0x6b 0x73 0x75 0x6d 0xa3
0xbefff039: 0xee 0xa1 0x4a 0xcd 0xa9 0x1e 0x55 0xcb
0xbefff041: 0xf5 0x16 0x3b 0x5a 0x22 0xf8 0xef 0x0e
0xbefff049: 0xba 0x18 0xa9 0x6e 0x4f 0x55 0xf7 0x06
0xbefff051: 0x28 0x53 0x36 0x7f 0x2d 0x56 0x00 0x03
0xbefff059: 0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff061: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff069: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff071: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff079: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff081: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff089: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff091: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff099: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0a1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0a9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80
0xbefff0b1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0b9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0c1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0c9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0d1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0d9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0e1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0e9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) x/4xb &((keccak_state *) 0xbeffef5c)->rate
0xbefff024: 0x88 0x00 0x00 0x00
(gdb) bt
#0 xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:106
#1 keccak_finalize (s=0xbeffef5c) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:189
#2 0x005c5410 in hash (out=0xbefff1a8 "", outlen=32, in=<optimized out>,
inlen=48, bits=256, delim=6 '\006') at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:353
#3 0x005c5640 in sha3_256 (out=out@entry=0xbefff1a8 "",
outlen=outlen@entry=32,
in=in@entry=0xbefff15c ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V",
inlen=inlen@entry=48)
at ../src/ext/keccak-tiny/keccak-tiny-unrolled.c:389
#4 0x005a65e8 in crypto_digest256 (digest=digest@entry=0xbefff1a8 "",
m=m@entry=0xbefff15c ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V",
len=len@entry=48, algorithm=algorithm@entry=DIGEST_SHA3_256) at
../src/lib/crypt_ops/crypto_digest.c:153
#5 0x004fc948 in build_hs_checksum (key=key@entry=0x6e2df4,
version=version@entry=3 '\003', checksum_out=checksum_out@entry=0xbefff1a8 "")
at ../src/feature/hs/hs_common.c:748
#6 0x004fe0b0 in hs_build_address (key=key@entry=0x6e2df4, version=<optimized
out>, addr_out=addr_out@entry=0x6e2da0 "") at ../src/feature/hs/hs_common.c:1001
#7 0x0050aa24 in load_service_keys (service=0x6e2da0) at
../src/feature/hs/hs_service.c:1080
#8 hs_service_load_all_keys () at ../src/feature/hs/hs_service.c:4041
#9 0x00580890 in options_act (old_options=0x0) at
../src/app/config/config.c:2095
#10 set_options (new_val=new_val@entry=0x6e1330, msg=msg@entry=0xbefff364) at
../src/app/config/config.c:921
#11 0x00582528 in options_init_from_string
(cf_defaults=cf_defaults@entry=0x6e1308 "", cf=cf@entry=0x6e06c0
"HiddenServiceDir /home/benutzer/hs\nHiddenServicePort 80 127.0.0.1:8080\n",
command=command@entry=0, command_arg=command_arg@entry=0x0, msg=0xbefff364,
msg@entry=0xbefff35c) at ../src/app/config/config.c:5535
#12 0x00582a7c in options_init_from_torrc (argc=argc@entry=-1817120709,
argv=argv@entry=0x6227f4) at ../src/app/config/config.c:5299
#13 0x00441748 in tor_init (argc=-1817120709, argc@entry=5, argv=0x6227f4,
argv@entry=0x6ce3b0) at ../src/app/main/main.c:641
#14 0x00442484 in tor_run_main (tor_cfg=tor_cfg@entry=0x6ce170) at
../src/app/main/main.c:1455
#15 0x004405f8 in tor_main (argc=5, argv=0xbefff7a4) at
../src/feature/api/tor_api.c:164
#16 0x004400a8 in main (argc=<optimized out>, argv=<optimized out>) at
../src/app/main/tor_main.c:32
$ gdb -q --args /usr/sbin/tor -f /home/benutzer/torrc Log 'info stdout'
...
##############
$ adb push debian-10-buster-armel-chroot-2020-12-13_11-58-28.tar.gz /sdcard
$ adb shell
$ su
# uname -a
Linux localhost 3.4.113-g2fff5b1955c0 #1 SMP PREEMPT Sun Mar 8 06:23:52 CST
2020 armv7l
# cat /proc/cpuinfo
Processor : ARMv7 Processor rev 0 (v7l)
processor : 0
BogoMIPS : 13.50
processor : 1
BogoMIPS : 13.50
processor : 2
BogoMIPS : 13.50
processor : 3
BogoMIPS : 13.50
Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva
idivt
CPU implementer : 0x51
CPU architecture: 7
CPU variant : 0x1
CPU part : 0x06f
CPU revision : 0
# cd /data/media/0
# tar -zxf debian-10-buster-armel-chroot-2020-12-13_11-58-28.tar.gz
# cd debian-10-buster-armel-chroot
# chroot/bin/busybox mount -o rbind /dev chroot/dev
# chroot/bin/busybox mount -o rbind /proc chroot/proc
# chroot/bin/busybox mount -o rbind /sys chroot/sys
# env -i TERM=xterm LANG=de_DE.UTF-8 /system/bin/chroot chroot /bin/su -
# groupadd -g 3001 aid_net_bt_admin
# groupadd -g 3002 aid_net_bt
# groupadd -g 3003 aid_inet
# groupadd -g 3004 aid_net_raw
# groupadd -g 3005 aid_net_admin
# groupadd -g 3006 aid_net_bw_stats
# groupadd -g 3007 aid_net_bw_acct
# groupadd -g 3008 aid_net_bt_stack
# usermod -G 3003,3004 -a root
# usermod -G 3003 -a benutzer
# usermod -g 3003 -G 3003,3004 -a _apt
# exit
# env -i TERM=xterm LANG=de_DE.UTF-8 /system/bin/chroot chroot /bin/su -
# apt install openssl tor
# dpkg -l tor
...
ii tor 0.3.5.12-1 armel anonymizing overlay network for TCP
# exit
# env -i TERM=xterm LANG=de_DE.UTF-8 /system/bin/chroot chroot /bin/su -l
benutzer
$ mkdir hs
$ chmod go-rwx -R hs
$ echo
'PT0gZWQyNTUxOXYxLXNlY3JldDogdHlwZTAgPT0AAACg6zoxlQ2hy7C6fUoTgIa0GLMk/YdVs2ic6jUDCzztZeLWcfqwCQ5/KoPk9v99cuWKO5mNpVrDtbOc27UUyC7e'
| base64 -d > hs/hs_ed25519_secret_key
$ echo '6bff2f57fcd69049091dcfa42b08fb84919d60dac919cbb16e3df1d960bb7843
./hs/hs_ed25519_secret_key' | sha256sum -c
./hs/hs_ed25519_secret_key: OK
$ cat <<EOF > torrc
HiddenServiceDir /home/benutzer/hs
HiddenServicePort 80 127.0.0.1:8080
EOF
(disable WLAN)
$ /usr/sbin/tor -f torrc Log 'info stdout'
...
^C
$ cat hs/hostname
upxkcswnvepfls7vcy5vuixy54hlugfjnzhvl5ygfbjtm7znkyahcvad.onion
...
(gdb) print sizeof(*key)
$5 = 32
(gdb) x/32xb key
0x7f837de4: 0xa3 0xee 0xa1 0x4a 0xcd 0xa9 0x1e 0x55
0x7f837dec: 0xcb 0xf5 0x16 0x3b 0x5a 0x22 0xf8 0xef
0x7f837df4: 0x0e 0xba 0x18 0xa9 0x6e 0x4f 0x55 0xf7
0x7f837dfc: 0x06 0x28 0x53 0x36 0x7f 0x2d 0x56 0x00
(gdb) next
(gdb) next
(gdb) next
748 crypto_digest256((char *) checksum_out, data, sizeof(data),
(gdb) print sizeof(data)
$6 = 48
(gdb) x/48xb data
0xbefff17c: 0x2e 0x6f 0x6e 0x69 0x6f 0x6e 0x20 0x63
0xbefff184: 0x68 0x65 0x63 0x6b 0x73 0x75 0x6d 0xa3
0xbefff18c: 0xee 0xa1 0x4a 0xcd 0xa9 0x1e 0x55 0xcb
0xbefff194: 0xf5 0x16 0x3b 0x5a 0x22 0xf8 0xef 0x0e
0xbefff19c: 0xba 0x18 0xa9 0x6e 0x4f 0x55 0xf7 0x06
0xbefff1a4: 0x28 0x53 0x36 0x7f 0x2d 0x56 0x00 0x03
(gdb) next
hs_build_address (key=key@entry=0x7f837de4, version=<optimized out>,
addr_out=addr_out@entry=0x7f837d90 "") at ../src/feature/hs/hs_common.c:1003
1003 build_hs_address(key, checksum, version, address);
(gdb) print sizeof(checksum)
$7 = 32
(gdb) x/32xb checksum
0xbefff1c8: 0x71 0x54 0xeb 0xc4 0x22 0x16 0x74 0x01
0xbefff1d0: 0x67 0xfc 0x35 0xba 0x4f 0xa8 0x69 0x25
0xbefff1d8: 0x31 0x68 0xa7 0x80 0x27 0x68 0x2c 0xb9
0xbefff1e0: 0x3d 0x46 0x46 0x0d 0xc4 0xbb 0xf2 0xfb
$ gdb -q --args /usr/sbin/tor -f /home/benutzer/torrc Log 'info stdout'
...
(gdb) next
21 return _le64toh(r);
(gdb) x/200xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef64: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef6c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef74: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef7c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef84: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef8c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef94: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef9c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefa4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefac: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefb4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefbc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefc4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefcc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefd4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefdc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefe4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefec: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffeff4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffeffc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff004: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff00c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff014: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff01c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) x/200xb &((keccak_state *) 0xbeffef5c)->block
0xbefff029: 0x2e 0x6f 0x6e 0x69 0x6f 0x6e 0x20 0x63
0xbefff031: 0x68 0x65 0x63 0x6b 0x73 0x75 0x6d 0xa3
0xbefff039: 0xee 0xa1 0x4a 0xcd 0xa9 0x1e 0x55 0xcb
0xbefff041: 0xf5 0x16 0x3b 0x5a 0x22 0xf8 0xef 0x0e
0xbefff049: 0xba 0x18 0xa9 0x6e 0x4f 0x55 0xf7 0x06
0xbefff051: 0x28 0x53 0x36 0x7f 0x2d 0x56 0x00 0x03
0xbefff059: 0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff061: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff069: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff071: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff079: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff081: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff089: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff091: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff099: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0a1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0a9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80
0xbefff0b1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0b9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0c1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0c9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0d1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0d9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0e1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0e9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) x/4xb &((keccak_state *) 0xbeffef5c)->rate
0xbefff024: 0x88 0x00 0x00 0x00
(gdb) print r
No symbol "r" in current context.
(gdb) step
106 a[i/8] ^= loadu64le(src + i);
(gdb) x/200xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x2e 0x6f 0x6e 0x69 0x6f 0x6e 0x20 0x63
0xbeffef64: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef6c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef74: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef7c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef84: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef8c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef94: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef9c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefa4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefac: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefb4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefbc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefc4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefcc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefd4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefdc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefe4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefec: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffeff4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffeffc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff004: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff00c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff014: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff01c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) x/200xb &((keccak_state *) 0xbeffef5c)->block
0xbefff029: 0x2e 0x6f 0x6e 0x69 0x6f 0x6e 0x20 0x63
0xbefff031: 0x68 0x65 0x63 0x6b 0x73 0x75 0x6d 0xa3
0xbefff039: 0xee 0xa1 0x4a 0xcd 0xa9 0x1e 0x55 0xcb
0xbefff041: 0xf5 0x16 0x3b 0x5a 0x22 0xf8 0xef 0x0e
0xbefff049: 0xba 0x18 0xa9 0x6e 0x4f 0x55 0xf7 0x06
0xbefff051: 0x28 0x53 0x36 0x7f 0x2d 0x56 0x00 0x03
0xbefff059: 0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff061: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff069: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff071: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff079: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff081: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff089: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff091: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff099: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0a1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0a9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80
0xbefff0b1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0b9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0c1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0c9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0d1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0d9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0e1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0e9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) x/4xb &((keccak_state *) 0xbeffef5c)->rate
0xbefff024: 0x88 0x00 0x00 0x00
(gdb) bt
#0 xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:106
#1 keccak_finalize (s=0xbeffef5c) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:189
#2 0x7f71a410 in hash (out=0xbefff1a8 "", outlen=32, in=<optimized out>,
inlen=48, bits=256, delim=6 '\006') at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:353
#3 0x7f71a640 in sha3_256 (out=out@entry=0xbefff1a8 "",
outlen=outlen@entry=32,
in=in@entry=0xbefff15c ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V",
inlen=inlen@entry=48)
at ../src/ext/keccak-tiny/keccak-tiny-unrolled.c:389
#4 0x7f6fb5e8 in crypto_digest256 (digest=digest@entry=0xbefff1a8 "",
m=m@entry=0xbefff15c ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V",
len=len@entry=48, algorithm=algorithm@entry=DIGEST_SHA3_256) at
../src/lib/crypt_ops/crypto_digest.c:153
#5 0x7f651948 in build_hs_checksum (key=key@entry=0x7f837df4,
version=version@entry=3 '\003', checksum_out=checksum_out@entry=0xbefff1a8 "")
at ../src/feature/hs/hs_common.c:748
#6 0x7f6530b0 in hs_build_address (key=key@entry=0x7f837df4,
version=<optimized out>, addr_out=addr_out@entry=0x7f837da0 "") at
../src/feature/hs/hs_common.c:1001
#7 0x7f65fa24 in load_service_keys (service=0x7f837da0) at
../src/feature/hs/hs_service.c:1080
#8 hs_service_load_all_keys () at ../src/feature/hs/hs_service.c:4041
#9 0x7f6d5890 in options_act (old_options=0x0) at
../src/app/config/config.c:2095
#10 set_options (new_val=new_val@entry=0x7f836330, msg=msg@entry=0xbefff364) at
../src/app/config/config.c:921
#11 0x7f6d7528 in options_init_from_string
(cf_defaults=cf_defaults@entry=0x7f836308 "", cf=cf@entry=0x7f8356c0
"HiddenServiceDir /home/benutzer/hs\nHiddenServicePort 80 127.0.0.1:8080\n",
command=command@entry=0, command_arg=command_arg@entry=0x0, msg=0xbefff364,
msg@entry=0xbefff35c) at ../src/app/config/config.c:5535
#12 0x7f6d7a7c in options_init_from_torrc (argc=argc@entry=-1817120709,
argv=argv@entry=0x7f7777f4) at ../src/app/config/config.c:5299
#13 0x7f596748 in tor_init (argc=-1817120709, argc@entry=5, argv=0x7f7777f4,
argv@entry=0x7f8233b0) at ../src/app/main/main.c:641
#14 0x7f597484 in tor_run_main (tor_cfg=tor_cfg@entry=0x7f823170) at
../src/app/main/main.c:1455
#15 0x7f5955f8 in tor_main (argc=5, argv=0xbefff7a4) at
../src/feature/api/tor_api.c:164
#16 0x7f5950a8 in main (argc=<optimized out>, argv=<optimized out>) at
../src/app/main/tor_main.c:32
gdb -q --args /usr/sbin/tor -f /home/benutzer/torrc Log 'info stdout'
Reading symbols from /usr/sbin/tor...Reading symbols from
/usr/lib/debug/.build-id/7f/11f9da02966e2e69c8fecb39c728b9f1d730e3.debug...done.
done.
(gdb) b xorin8
Breakpoint 1 at 0x1c4a84: xorin8. (3 locations)
(gdb) run
Starting program: /usr/sbin/tor -f /home/benutzer/torrc Log info\ stdout
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabi/libthread_db.so.1".
Dec 13 15:46:09.673 [notice] Tor 0.3.5.12 running on Linux with Libevent
2.1.8-stable, OpenSSL 1.1.1d, Zlib 1.2.11, Liblzma 5.2.4, and Libzstd 1.3.8.
Dec 13 15:46:09.674 [notice] Tor can't help you if you use it wrong! Learn how
to be safe at https://www.torproject.org/download/download#warning
Dec 13 15:46:09.675 [notice] Read configuration file "/home/benutzer/torrc".
Dec 13 15:46:09.697 [notice] Opening Socks listener on 127.0.0.1:9050
Dec 13 15:46:09.698 [notice] Opened Socks listener on 127.0.0.1:9050
Dec 13 15:46:09.000 [warn] Your log may contain sensitive information - you're
logging more than "notice". Don't log unless it serves an important reason.
Overwrite the log afterwards.
Dec 13 15:46:09.000 [info] options_act_reversible(): Recomputed OOS thresholds:
ConnLimit 1000, ConnLimit_ 992, ConnLimit_high_thresh 943, ConnLimit_low_thresh
744
Dec 13 15:46:09.000 [info] tor_lockfile_lock(): Locking
"/home/benutzer/.tor/lock"
Dec 13 15:46:09.000 [info] config_generic_service():
HiddenServiceDir="/home/benutzer/hs". Configuring...
Dec 13 15:46:09.000 [info] config_generic_service(): HiddenServicePort=80
127.0.0.1:8080 for "/home/benutzer/hs"
Dec 13 15:46:09.000 [info] or_state_load(): Loaded state from
"/home/benutzer/.tor/state"
Dec 13 15:46:09.000 [info] circuit_build_times_parse_state(): Adding 0 timeouts.
Dec 13 15:46:09.000 [info] circuit_build_times_parse_state(): Loaded 0/0 values
from 0 lines in circuit time histogram
Dec 13 15:46:09.000 [info] read_file_to_str(): Could not open
"/home/benutzer/.tor/router-stability": No such file or directory
Dec 13 15:46:09.000 [info] hs_service_load_all_keys(): Loading v3 onion service
keys from "/home/benutzer/hs"
Breakpoint 1, xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:189
189 xorin8(s->a, s->block, s->rate);
(gdb) up
#1 keccak_finalize (s=0xbeffef5c) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:189
189 xorin8(s->a, s->block, s->rate);
(gdb) down
#0 xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:189
189 xorin8(s->a, s->block, s->rate);
(gdb) step
106 a[i/8] ^= loadu64le(src + i);
(gdb) print a
$1 = <optimized out>
(gdb) print loadu64le
No symbol "loadu64le" in current context.
(gdb) display/i $pc
1: x/i $pc
=> 0x5c4a90 <keccak_finalize+144>: add r1, r4, #213 ; 0xd5
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x005c4a94 in memcpy (__len=8, __src=0xbefff029, __dest=0xbeffef28) at
/usr/include/arm-linux-gnueabi/bits/string_fortified.h:34
34 return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
1: x/i $pc
=> 0x5c4a94 <keccak_finalize+148>: mov r2, #8
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x005c4a98 34 return __builtin___memcpy_chk (__dest, __src, __len,
__bos0 (__dest));
1: x/i $pc
=> 0x5c4a98 <keccak_finalize+152>: mov r0, r10
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x005c4a9c 34 return __builtin___memcpy_chk (__dest, __src, __len,
__bos0 (__dest));
1: x/i $pc
=> 0x5c4a9c <keccak_finalize+156>: bl 0x43fa48 <memcpy@plt>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x0043fa48 in memcpy@plt ()
1: x/i $pc
=> 0x43fa48 <memcpy@plt>: add r12, pc, #2097152 ; 0x200000
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x0043fa4c in memcpy@plt ()
1: x/i $pc
=> 0x43fa4c <memcpy@plt+4>: add r12, r12, #124, 20 ; 0x7c000
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x0043fa50 in memcpy@plt ()
1: x/i $pc
=> 0x43fa50 <memcpy@plt+8>: ldr pc, [r12, #712]! ; 0x2c8
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
memcpy () at ../sysdeps/arm/memcpy.S:63
63 ../sysdeps/arm/memcpy.S: Datei oder Verzeichnis nicht gefunden.
1: x/i $pc
=> 0xb6923ae0 <memcpy>: push {r0, r4, lr}
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
70 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ae4 <memcpy+4>: subs r2, r2, #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
71 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ae8 <memcpy+8>: blt 0xb6923b9c <memcpy+188>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
72 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923aec <memcpy+12>: ands r12, r0, #3
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
73 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923af0 <memcpy+16>: pld [r1]
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
74 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923af4 <memcpy+20>: bne 0xb6923bbc <memcpy+220>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
75 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923af8 <memcpy+24>: ands r12, r1, #3
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
76 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923afc <memcpy+28>: bne 0xb6923bec <memcpy+268>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
229 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bec <memcpy+268>: bic r1, r1, #3
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
230 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bf0 <memcpy+272>: cmp r12, #2
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
231 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bf4 <memcpy+276>: ldr lr, [r1], #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
232 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bf8 <memcpy+280>: beq 0xb6923cb0 <memcpy+464>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
233 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bfc <memcpy+284>: bgt 0xb6923d60 <memcpy+640>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c00 <memcpy+288>: subs r2, r2, #28
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c04 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c04 <memcpy+292>: blt 0xb6923c88 <memcpy+424>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c88 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c88 <memcpy+424>: ands r12, r2, #28
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c8c 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c8c <memcpy+428>: beq 0xb6923ca8 <memcpy+456>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c90 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c90 <memcpy+432>: lsr r3, lr, #8
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c94 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c94 <memcpy+436>: ldr lr, [r1], #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c98 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c98 <memcpy+440>: subs r12, r12, #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c9c 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c9c <memcpy+444>: orr r3, r3, lr, lsl #24
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923ca0 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ca0 <memcpy+448>: str r3, [r0], #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923ca4 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ca4 <memcpy+452>: bgt 0xb6923c90 <memcpy+432>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c90 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c90 <memcpy+432>: lsr r3, lr, #8
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c94 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c94 <memcpy+436>: ldr lr, [r1], #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c98 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c98 <memcpy+440>: subs r12, r12, #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c9c 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c9c <memcpy+444>: orr r3, r3, lr, lsl #24
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923ca0 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ca0 <memcpy+448>: str r3, [r0], #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923ca4 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ca4 <memcpy+452>: bgt 0xb6923c90 <memcpy+432>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923ca8 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ca8 <memcpy+456>: sub r1, r1, #3
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923cac 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923cac <memcpy+460>: b 0xb6923b9c <memcpy+188>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
195 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923b9c <memcpy+188>: lsls r2, r2, #31
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
196 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ba0 <memcpy+192>: ldrbne r3, [r1], #1
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
197 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ba4 <memcpy+196>: ldrbcs r4, [r1], #1
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
198 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ba8 <memcpy+200>: ldrbcs r12, [r1]
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
199 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bac <memcpy+204>: strbne r3, [r0], #1
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
200 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bb0 <memcpy+208>: strbcs r4, [r0], #1
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
201 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bb4 <memcpy+212>: strbcs r12, [r0]
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
211 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bb8 <memcpy+216>: pop {r0, r4, pc}
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:21
21 return _le64toh(r);
1: x/i $pc
=> 0x5c4aa0 <keccak_finalize+160>: ldr r2, [r4, #8]!
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x005c4aa4 in loadu64le (x=0xbefff029 ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V")
at ../src/ext/keccak-tiny/keccak-tiny-unrolled.c:21
21 return _le64toh(r);
1: x/i $pc
=> 0x5c4aa4 <keccak_finalize+164>: ldr r12, [sp]
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x005c4aa8 in xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:21
21 return _le64toh(r);
1: x/i $pc
=> 0x5c4aa8 <keccak_finalize+168>: ldr r3, [r4, #4]
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x005c4aac in loadu64le (x=0xbefff029 ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V")
at ../src/ext/keccak-tiny/keccak-tiny-unrolled.c:21
21 return _le64toh(r);
1: x/i $pc
=> 0x5c4aac <keccak_finalize+172>: ldr r0, [sp, #4]
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x005c4ab0 in xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:21
21 return _le64toh(r);
1: x/i $pc
=> 0x5c4ab0 <keccak_finalize+176>: add r1, r7, r4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x005c4ab4 21 return _le64toh(r);
1: x/i $pc
=> 0x5c4ab4 <keccak_finalize+180>: eor r2, r2, r12
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x005c4ab8 21 return _le64toh(r);
1: x/i $pc
=> 0x5c4ab8 <keccak_finalize+184>: eor r3, r3, r0
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x005c4abc 21 return _le64toh(r);
1: x/i $pc
=> 0x5c4abc <keccak_finalize+188>: cmp r6, r1
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x005c4ac0 21 return _le64toh(r);
1: x/i $pc
=> 0x5c4ac0 <keccak_finalize+192>: strd r2, [r4]
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x005c4ac4 21 return _le64toh(r);
1: x/i $pc
=> 0x5c4ac4 <keccak_finalize+196>: bhi 0x5c4a90 <keccak_finalize+144>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x6f 0x6e 0x20 0x63 0x00 0x00 0x00 0x00
(gdb) display/x $r2
2: /x $r2 = 0x696e6f2e
(gdb) display/x $r4
3: /x $r4 = 0xbeffef5c
(gdb) info reg
r0 0x63206e6f 1663069807
r1 0x8 8
r2 0x696e6f2e 1768845102
r3 0x63206e6f 1663069807
r4 0xbeffef5c 3204443996
r5 0xbeffef5c 3204443996
r6 0x88 136
r7 0x410010ac 1090523308
r8 0xb6ffe968 3070224744
r9 0xbefff029 3204444201
r10 0xbeffef28 3204443944
r11 0x6 6
r12 0x696e6f2e 1768845102
sp 0xbeffef28 0xbeffef28
lr 0x63656863 1667590243
pc 0x5c4ac4 0x5c4ac4 <keccak_finalize+196>
cpsr 0x20000010 536870928
(gdb) bt
#0 0x005c4ac4 in xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:21
#1 keccak_finalize (s=0xbeffef5c) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:189
#2 0x005c5410 in hash (out=0xbefff1a8 "", outlen=32, in=<optimized out>,
inlen=48, bits=256, delim=6 '\006') at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:353
#3 0x005c5640 in sha3_256 (out=out@entry=0xbefff1a8 "",
outlen=outlen@entry=32,
in=in@entry=0xbefff15c ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V",
inlen=inlen@entry=48)
at ../src/ext/keccak-tiny/keccak-tiny-unrolled.c:389
#4 0x005a65e8 in crypto_digest256 (digest=digest@entry=0xbefff1a8 "",
m=m@entry=0xbefff15c ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V",
len=len@entry=48, algorithm=algorithm@entry=DIGEST_SHA3_256) at
../src/lib/crypt_ops/crypto_digest.c:153
#5 0x004fc948 in build_hs_checksum (key=key@entry=0x6e2df4,
version=version@entry=3 '\003', checksum_out=checksum_out@entry=0xbefff1a8 "")
at ../src/feature/hs/hs_common.c:748
#6 0x004fe0b0 in hs_build_address (key=key@entry=0x6e2df4, version=<optimized
out>, addr_out=addr_out@entry=0x6e2da0 "") at ../src/feature/hs/hs_common.c:1001
#7 0x0050aa24 in load_service_keys (service=0x6e2da0) at
../src/feature/hs/hs_service.c:1080
#8 hs_service_load_all_keys () at ../src/feature/hs/hs_service.c:4041
#9 0x00580890 in options_act (old_options=0x0) at
../src/app/config/config.c:2095
#10 set_options (new_val=new_val@entry=0x6e1330, msg=msg@entry=0xbefff364) at
../src/app/config/config.c:921
#11 0x00582528 in options_init_from_string
(cf_defaults=cf_defaults@entry=0x6e1308 "", cf=cf@entry=0x6e06c0
"HiddenServiceDir /home/benutzer/hs\nHiddenServicePort 80 127.0.0.1:8080\n",
command=command@entry=0, command_arg=command_arg@entry=0x0, msg=0xbefff364,
msg@entry=0xbefff35c) at ../src/app/config/config.c:5535
#12 0x00582a7c in options_init_from_torrc (argc=argc@entry=-1817120709,
argv=argv@entry=0x6227f4) at ../src/app/config/config.c:5299
#13 0x00441748 in tor_init (argc=-1817120709, argc@entry=5, argv=0x6227f4,
argv@entry=0x6ce3b0) at ../src/app/main/main.c:641
#14 0x00442484 in tor_run_main (tor_cfg=tor_cfg@entry=0x6ce170) at
../src/app/main/main.c:1455
#15 0x004405f8 in tor_main (argc=5, argv=0xbefff7a4) at
../src/feature/api/tor_api.c:164
#16 0x004400a8 in main (argc=<optimized out>, argv=<optimized out>) at
../src/app/main/tor_main.c:32
(gdb) disassemble /r keccak_finalize+160,keccak_finalize+200
Dump of assembler code from 0x5c4aa0 to 0x5c4ac8:
0x005c4aa0 <keccak_finalize+160>: 08 20 b4 e5 ldr r2, [r4, #8]!
0x005c4aa4 <keccak_finalize+164>: 00 c0 9d e5 ldr r12, [sp]
0x005c4aa8 <keccak_finalize+168>: 04 30 94 e5 ldr r3, [r4, #4]
0x005c4aac <keccak_finalize+172>: 04 00 9d e5 ldr r0, [sp, #4]
0x005c4ab0 <keccak_finalize+176>: 04 10 87 e0 add r1, r7, r4
0x005c4ab4 <keccak_finalize+180>: 0c 20 22 e0 eor r2, r2, r12
0x005c4ab8 <keccak_finalize+184>: 00 30 23 e0 eor r3, r3, r0
0x005c4abc <keccak_finalize+188>: 01 00 56 e1 cmp r6, r1
0x005c4ac0 <keccak_finalize+192>: f0 20 c4 e1 strd r2, [r4]
=> 0x005c4ac4 <keccak_finalize+196>: f1 ff ff 8a bhi 0x5c4a90
<keccak_finalize+144>
End of assembler dump.
(gdb)
# Buster armel chroot 2020-12-13 on lineageos kernel
$ adb push debian-10-buster-armel-chroot-2020-12-13_11-58-28.tar.gz /sdcard
$ adb shell
$ su
# uname -a
Linux localhost 3.4.113-g2fff5b1955c0 #1 SMP PREEMPT Sun Mar 8 06:23:52 CST
2020 armv7l
# cat /proc/cpuinfo
Processor : ARMv7 Processor rev 0 (v7l)
processor : 0
BogoMIPS : 13.50
processor : 1
BogoMIPS : 13.50
processor : 2
BogoMIPS : 13.50
processor : 3
BogoMIPS : 13.50
Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva
idivt
CPU implementer : 0x51
CPU architecture: 7
CPU variant : 0x1
CPU part : 0x06f
CPU revision : 0
# cd /data/media/0
# tar -zxf debian-10-buster-armel-chroot-2020-12-13_11-58-28.tar.gz
# cd debian-10-buster-armel-chroot
# chroot/bin/busybox mount -o rbind /dev chroot/dev
# chroot/bin/busybox mount -o rbind /proc chroot/proc
# chroot/bin/busybox mount -o rbind /sys chroot/sys
# env -i TERM=xterm LANG=de_DE.UTF-8 /system/bin/chroot chroot /bin/su -
# groupadd -g 3001 aid_net_bt_admin
# groupadd -g 3002 aid_net_bt
# groupadd -g 3003 aid_inet
# groupadd -g 3004 aid_net_raw
# groupadd -g 3005 aid_net_admin
# groupadd -g 3006 aid_net_bw_stats
# groupadd -g 3007 aid_net_bw_acct
# groupadd -g 3008 aid_net_bt_stack
# usermod -G 3003,3004 -a root
# usermod -G 3003 -a benutzer
# usermod -g 3003 -G 3003,3004 -a _apt
# exit
# env -i TERM=xterm LANG=de_DE.UTF-8 /system/bin/chroot chroot /bin/su -
# apt install openssl tor
# dpkg -l tor
...
ii tor 0.3.5.12-1 armel anonymizing overlay network for TCP
# exit
# env -i TERM=xterm LANG=de_DE.UTF-8 /system/bin/chroot chroot /bin/su -l
benutzer
$ mkdir hs
$ chmod go-rwx -R hs
$ echo
'PT0gZWQyNTUxOXYxLXNlY3JldDogdHlwZTAgPT0AAACg6zoxlQ2hy7C6fUoTgIa0GLMk/YdVs2ic6jUDCzztZeLWcfqwCQ5/KoPk9v99cuWKO5mNpVrDtbOc27UUyC7e'
| base64 -d > hs/hs_ed25519_secret_key
$ echo '6bff2f57fcd69049091dcfa42b08fb84919d60dac919cbb16e3df1d960bb7843
./hs/hs_ed25519_secret_key' | sha256sum -c
./hs/hs_ed25519_secret_key: OK
$ cat <<EOF > torrc
HiddenServiceDir /home/benutzer/hs
HiddenServicePort 80 127.0.0.1:8080
EOF
(disable WLAN)
$ /usr/sbin/tor -f torrc Log 'info stdout'
...
^C
$ cat hs/hostname
upxkcswnvepfls7vcy5vuixy54hlugfjnzhvl5ygfbjtm7znkyahcvad.onion
...
(gdb) print sizeof(*key)
$5 = 32
(gdb) x/32xb key
0x7f837de4: 0xa3 0xee 0xa1 0x4a 0xcd 0xa9 0x1e 0x55
0x7f837dec: 0xcb 0xf5 0x16 0x3b 0x5a 0x22 0xf8 0xef
0x7f837df4: 0x0e 0xba 0x18 0xa9 0x6e 0x4f 0x55 0xf7
0x7f837dfc: 0x06 0x28 0x53 0x36 0x7f 0x2d 0x56 0x00
(gdb) next
(gdb) next
(gdb) next
748 crypto_digest256((char *) checksum_out, data, sizeof(data),
(gdb) print sizeof(data)
$6 = 48
(gdb) x/48xb data
0xbefff17c: 0x2e 0x6f 0x6e 0x69 0x6f 0x6e 0x20 0x63
0xbefff184: 0x68 0x65 0x63 0x6b 0x73 0x75 0x6d 0xa3
0xbefff18c: 0xee 0xa1 0x4a 0xcd 0xa9 0x1e 0x55 0xcb
0xbefff194: 0xf5 0x16 0x3b 0x5a 0x22 0xf8 0xef 0x0e
0xbefff19c: 0xba 0x18 0xa9 0x6e 0x4f 0x55 0xf7 0x06
0xbefff1a4: 0x28 0x53 0x36 0x7f 0x2d 0x56 0x00 0x03
(gdb) next
hs_build_address (key=key@entry=0x7f837de4, version=<optimized out>,
addr_out=addr_out@entry=0x7f837d90 "") at ../src/feature/hs/hs_common.c:1003
1003 build_hs_address(key, checksum, version, address);
(gdb) print sizeof(checksum)
$7 = 32
(gdb) x/32xb checksum
0xbefff1c8: 0x71 0x54 0xeb 0xc4 0x22 0x16 0x74 0x01
0xbefff1d0: 0x67 0xfc 0x35 0xba 0x4f 0xa8 0x69 0x25
0xbefff1d8: 0x31 0x68 0xa7 0x80 0x27 0x68 0x2c 0xb9
0xbefff1e0: 0x3d 0x46 0x46 0x0d 0xc4 0xbb 0xf2 0xfb
$ gdb -q --args /usr/sbin/tor -f /home/benutzer/torrc Log 'info stdout'
...
(gdb) next
21 return _le64toh(r);
(gdb) x/200xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef64: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef6c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef74: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef7c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef84: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef8c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef94: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef9c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefa4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefac: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefb4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefbc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefc4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefcc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefd4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefdc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefe4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefec: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffeff4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffeffc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff004: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff00c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff014: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff01c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) x/200xb &((keccak_state *) 0xbeffef5c)->block
0xbefff029: 0x2e 0x6f 0x6e 0x69 0x6f 0x6e 0x20 0x63
0xbefff031: 0x68 0x65 0x63 0x6b 0x73 0x75 0x6d 0xa3
0xbefff039: 0xee 0xa1 0x4a 0xcd 0xa9 0x1e 0x55 0xcb
0xbefff041: 0xf5 0x16 0x3b 0x5a 0x22 0xf8 0xef 0x0e
0xbefff049: 0xba 0x18 0xa9 0x6e 0x4f 0x55 0xf7 0x06
0xbefff051: 0x28 0x53 0x36 0x7f 0x2d 0x56 0x00 0x03
0xbefff059: 0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff061: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff069: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff071: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff079: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff081: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff089: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff091: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff099: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0a1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0a9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80
0xbefff0b1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0b9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0c1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0c9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0d1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0d9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0e1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0e9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) x/4xb &((keccak_state *) 0xbeffef5c)->rate
0xbefff024: 0x88 0x00 0x00 0x00
(gdb) print r
No symbol "r" in current context.
(gdb) step
106 a[i/8] ^= loadu64le(src + i);
(gdb) x/200xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x2e 0x6f 0x6e 0x69 0x6f 0x6e 0x20 0x63
0xbeffef64: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef6c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef74: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef7c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef84: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef8c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef94: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffef9c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefa4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefac: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefb4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefbc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefc4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefcc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefd4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefdc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefe4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffefec: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffeff4: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbeffeffc: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff004: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff00c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff014: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff01c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) x/200xb &((keccak_state *) 0xbeffef5c)->block
0xbefff029: 0x2e 0x6f 0x6e 0x69 0x6f 0x6e 0x20 0x63
0xbefff031: 0x68 0x65 0x63 0x6b 0x73 0x75 0x6d 0xa3
0xbefff039: 0xee 0xa1 0x4a 0xcd 0xa9 0x1e 0x55 0xcb
0xbefff041: 0xf5 0x16 0x3b 0x5a 0x22 0xf8 0xef 0x0e
0xbefff049: 0xba 0x18 0xa9 0x6e 0x4f 0x55 0xf7 0x06
0xbefff051: 0x28 0x53 0x36 0x7f 0x2d 0x56 0x00 0x03
0xbefff059: 0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff061: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff069: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff071: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff079: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff081: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff089: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff091: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff099: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0a1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0a9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80
0xbefff0b1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0b9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0c1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0c9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0d1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0d9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0e1: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0xbefff0e9: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) x/4xb &((keccak_state *) 0xbeffef5c)->rate
0xbefff024: 0x88 0x00 0x00 0x00
(gdb) bt
#0 xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:106
#1 keccak_finalize (s=0xbeffef5c) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:189
#2 0x7f71a410 in hash (out=0xbefff1a8 "", outlen=32, in=<optimized out>,
inlen=48, bits=256, delim=6 '\006') at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:353
#3 0x7f71a640 in sha3_256 (out=out@entry=0xbefff1a8 "",
outlen=outlen@entry=32,
in=in@entry=0xbefff15c ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V",
inlen=inlen@entry=48)
at ../src/ext/keccak-tiny/keccak-tiny-unrolled.c:389
#4 0x7f6fb5e8 in crypto_digest256 (digest=digest@entry=0xbefff1a8 "",
m=m@entry=0xbefff15c ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V",
len=len@entry=48, algorithm=algorithm@entry=DIGEST_SHA3_256) at
../src/lib/crypt_ops/crypto_digest.c:153
#5 0x7f651948 in build_hs_checksum (key=key@entry=0x7f837df4,
version=version@entry=3 '\003', checksum_out=checksum_out@entry=0xbefff1a8 "")
at ../src/feature/hs/hs_common.c:748
#6 0x7f6530b0 in hs_build_address (key=key@entry=0x7f837df4,
version=<optimized out>, addr_out=addr_out@entry=0x7f837da0 "") at
../src/feature/hs/hs_common.c:1001
#7 0x7f65fa24 in load_service_keys (service=0x7f837da0) at
../src/feature/hs/hs_service.c:1080
#8 hs_service_load_all_keys () at ../src/feature/hs/hs_service.c:4041
#9 0x7f6d5890 in options_act (old_options=0x0) at
../src/app/config/config.c:2095
#10 set_options (new_val=new_val@entry=0x7f836330, msg=msg@entry=0xbefff364) at
../src/app/config/config.c:921
#11 0x7f6d7528 in options_init_from_string
(cf_defaults=cf_defaults@entry=0x7f836308 "", cf=cf@entry=0x7f8356c0
"HiddenServiceDir /home/benutzer/hs\nHiddenServicePort 80 127.0.0.1:8080\n",
command=command@entry=0, command_arg=command_arg@entry=0x0, msg=0xbefff364,
msg@entry=0xbefff35c) at ../src/app/config/config.c:5535
#12 0x7f6d7a7c in options_init_from_torrc (argc=argc@entry=-1817120709,
argv=argv@entry=0x7f7777f4) at ../src/app/config/config.c:5299
#13 0x7f596748 in tor_init (argc=-1817120709, argc@entry=5, argv=0x7f7777f4,
argv@entry=0x7f8233b0) at ../src/app/main/main.c:641
#14 0x7f597484 in tor_run_main (tor_cfg=tor_cfg@entry=0x7f823170) at
../src/app/main/main.c:1455
#15 0x7f5955f8 in tor_main (argc=5, argv=0xbefff7a4) at
../src/feature/api/tor_api.c:164
#16 0x7f5950a8 in main (argc=<optimized out>, argv=<optimized out>) at
../src/app/main/tor_main.c:32
$ gdb -q --args /usr/sbin/tor -f /home/benutzer/torrc Log 'info stdout'
Reading symbols from /usr/sbin/tor...Reading symbols from
/usr/lib/debug/.build-id/7f/11f9da02966e2e69c8fecb39c728b9f1d730e3.debug...done.
done.
(gdb) b xorin8
Breakpoint 1 at 0x1c4a84: xorin8. (3 locations)
(gdb) run
Starting program: /usr/sbin/tor -f /home/benutzer/torrc Log info\ stdout
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabi/libthread_db.so.1".
Dec 13 15:46:10.959 [notice] Tor 0.3.5.12 running on Linux with Libevent
2.1.8-stable, OpenSSL 1.1.1d, Zlib 1.2.11, Liblzma 5.2.4, and Libzstd 1.3.8.
Dec 13 15:46:10.960 [notice] Tor can't help you if you use it wrong! Learn how
to be safe at https://www.torproject.org/download/download#warning
Dec 13 15:46:10.961 [notice] Read configuration file "/home/benutzer/torrc".
Dec 13 15:46:10.973 [notice] I think we have 4 CPUS, but only 2 of them are
available. Telling Tor to only use 2. You can override this with the NumCPUs
option
Dec 13 15:46:10.974 [notice] Opening Socks listener on 127.0.0.1:9050
Dec 13 15:46:10.975 [notice] Opened Socks listener on 127.0.0.1:9050
Dec 13 15:46:10.000 [warn] Your log may contain sensitive information - you're
logging more than "notice". Don't log unless it serves an important reason.
Overwrite the log afterwards.
Dec 13 15:46:10.000 [info] options_act_reversible(): Recomputed OOS thresholds:
ConnLimit 1000, ConnLimit_ 32736, ConnLimit_high_thresh 32672,
ConnLimit_low_thresh 24552
Dec 13 15:46:10.000 [info] tor_lockfile_lock(): Locking
"/home/benutzer/.tor/lock"
Dec 13 15:46:10.000 [info] config_generic_service():
HiddenServiceDir="/home/benutzer/hs". Configuring...
Dec 13 15:46:10.000 [info] config_generic_service(): HiddenServicePort=80
127.0.0.1:8080 for "/home/benutzer/hs"
Dec 13 15:46:10.000 [info] or_state_load(): Loaded state from
"/home/benutzer/.tor/state"
Dec 13 15:46:10.000 [info] circuit_build_times_parse_state(): Adding 0 timeouts.
Dec 13 15:46:10.000 [info] circuit_build_times_parse_state(): Loaded 0/0 values
from 0 lines in circuit time histogram
Dec 13 15:46:10.000 [info] read_file_to_str(): Could not open
"/home/benutzer/.tor/router-stability": No such file or directory
Dec 13 15:46:10.000 [info] hs_service_load_all_keys(): Loading v3 onion service
keys from "/home/benutzer/hs"
Breakpoint 1, xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:189
189 xorin8(s->a, s->block, s->rate);
(gdb) up
#1 keccak_finalize (s=0xbeffef5c) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:189
189 xorin8(s->a, s->block, s->rate);
(gdb) down
#0 xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:189
189 xorin8(s->a, s->block, s->rate);
(gdb) step
106 a[i/8] ^= loadu64le(src + i);
(gdb) print a
$1 = <optimized out>
(gdb) print loadu64le
No symbol "loadu64le" in current context.
(gdb) display/i $pc
1: x/i $pc
=> 0x7f719a90 <keccak_finalize+144>: add r1, r4, #213 ; 0xd5
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x7f719a94 in memcpy (__len=8, __src=0xbefff029, __dest=0xbeffef28) at
/usr/include/arm-linux-gnueabi/bits/string_fortified.h:34
34 return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
1: x/i $pc
=> 0x7f719a94 <keccak_finalize+148>: mov r2, #8
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
/8xb &((keccak_state *) 0xbeffef5c)->a
0x7f719a98 34 return __builtin___memcpy_chk (__dest, __src, __len,
__bos0 (__dest));
1: x/i $pc
=> 0x7f719a98 <keccak_finalize+152>: mov r0, r10
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
/8xb &((keccak_state *) 0xbeffef5c)->a
0x7f719a9c 34 return __builtin___memcpy_chk (__dest, __src, __len,
__bos0 (__dest));
1: x/i $pc
=> 0x7f719a9c <keccak_finalize+156>: bl 0x7f594a48 <memcpy@plt>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
x/8xb &((keccak_state *) 0xbeffef5c)->a
0x7f594a48 in memcpy@plt ()
1: x/i $pc
=> 0x7f594a48 <memcpy@plt>: add r12, pc, #2097152 ; 0x200000
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x7f594a4c in memcpy@plt ()
1: x/i $pc
=> 0x7f594a4c <memcpy@plt+4>: add r12, r12, #124, 20 ; 0x7c000
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x7f594a50 in memcpy@plt ()
1: x/i $pc
=> 0x7f594a50 <memcpy@plt+8>: ldr pc, [r12, #712]! ; 0x2c8
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
memcpy () at ../sysdeps/arm/memcpy.S:63
63 ../sysdeps/arm/memcpy.S: Datei oder Verzeichnis nicht gefunden.
1: x/i $pc
=> 0xb6923ae0 <memcpy>: push {r0, r4, lr}
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
70 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ae4 <memcpy+4>: subs r2, r2, #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
/8xb &((keccak_state *) 0xbeffef5c)->a
71 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ae8 <memcpy+8>: blt 0xb6923b9c <memcpy+188>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
72 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923aec <memcpy+12>: ands r12, r0, #3
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
&((keccak_state *) 0xbeffef5c)->a
73 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923af0 <memcpy+16>: pld [r1]
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
b &((keccak_state *) 0xbeffef5c)->a
74 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923af4 <memcpy+20>: bne 0xb6923bbc <memcpy+220>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
&((keccak_state *) 0xbeffef5c)->a
75 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923af8 <memcpy+24>: ands r12, r1, #3
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
xb &((keccak_state *) 0xbeffef5c)->a
76 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923afc <memcpy+28>: bne 0xb6923bec <memcpy+268>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
xb &((keccak_state *) 0xbeffef5c)->a
229 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bec <memcpy+268>: bic r1, r1, #3
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
230 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bf0 <memcpy+272>: cmp r12, #2
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
&((keccak_state *) 0xbeffef5c)->a
231 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bf4 <memcpy+276>: ldr lr, [r1], #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
keccak_state *) 0xbeffef5c)->a
232 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bf8 <memcpy+280>: beq 0xb6923cb0 <memcpy+464>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
&((keccak_state *) 0xbeffef5c)->a
233 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bfc <memcpy+284>: bgt 0xb6923d60 <memcpy+640>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
8xb &((keccak_state *) 0xbeffef5c)->a
313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c00 <memcpy+288>: subs r2, r2, #28
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c04 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c04 <memcpy+292>: blt 0xb6923c88 <memcpy+424>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c88 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c88 <memcpy+424>: ands r12, r2, #28
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
/8xb &((keccak_state *) 0xbeffef5c)->a
0xb6923c8c 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c8c <memcpy+428>: beq 0xb6923ca8 <memcpy+456>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
8xb &((keccak_state *) 0xbeffef5c)->a
0xb6923c90 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c90 <memcpy+432>: lsr r3, lr, #8
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
8xb &((keccak_state *) 0xbeffef5c)->a
0xb6923c94 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c94 <memcpy+436>: ldr lr, [r1], #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c98 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c98 <memcpy+440>: subs r12, r12, #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
8xb &((keccak_state *) 0xbeffef5c)->a
0xb6923c9c 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c9c <memcpy+444>: orr r3, r3, lr, lsl #24
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923ca0 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ca0 <memcpy+448>: str r3, [r0], #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
&((keccak_state *) 0xbeffef5c)->a
0xb6923ca4 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ca4 <memcpy+452>: bgt 0xb6923c90 <memcpy+432>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c90 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c90 <memcpy+432>: lsr r3, lr, #8
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c94 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c94 <memcpy+436>: ldr lr, [r1], #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c98 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c98 <memcpy+440>: subs r12, r12, #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923c9c 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923c9c <memcpy+444>: orr r3, r3, lr, lsl #24
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923ca0 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ca0 <memcpy+448>: str r3, [r0], #4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923ca4 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ca4 <memcpy+452>: bgt 0xb6923c90 <memcpy+432>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923ca8 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ca8 <memcpy+456>: sub r1, r1, #3
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0xb6923cac 313 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923cac <memcpy+460>: b 0xb6923b9c <memcpy+188>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
195 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923b9c <memcpy+188>: lsls r2, r2, #31
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
/8xb &((keccak_state *) 0xbeffef5c)->a
196 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ba0 <memcpy+192>: ldrbne r3, [r1], #1
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
8xb &((keccak_state *) 0xbeffef5c)->a
197 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ba4 <memcpy+196>: ldrbcs r4, [r1], #1
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
198 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923ba8 <memcpy+200>: ldrbcs r12, [r1]
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
8xb &((keccak_state *) 0xbeffef5c)->a
199 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bac <memcpy+204>: strbne r3, [r0], #1
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
200 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bb0 <memcpy+208>: strbcs r4, [r0], #1
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
/8xb &((keccak_state *) 0xbeffef5c)->a
201 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bb4 <memcpy+212>: strbcs r12, [r0]
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
211 in ../sysdeps/arm/memcpy.S
1: x/i $pc
=> 0xb6923bb8 <memcpy+216>: pop {r0, r4, pc}
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:21
21 return _le64toh(r);
1: x/i $pc
=> 0x7f719aa0 <keccak_finalize+160>: ldr r2, [r4, #8]!
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
&((keccak_state *) 0xbeffef5c)->a
0x7f719aa4 in loadu64le (x=0xbefff029 ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V")
at ../src/ext/keccak-tiny/keccak-tiny-unrolled.c:21
21 return _le64toh(r);
1: x/i $pc
=> 0x7f719aa4 <keccak_finalize+164>: ldr r12, [sp]
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x7f719aa8 in xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:21
21 return _le64toh(r);
1: x/i $pc
=> 0x7f719aa8 <keccak_finalize+168>: ldr r3, [r4, #4]
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x7f719aac in loadu64le (x=0xbefff029 ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V")
at ../src/ext/keccak-tiny/keccak-tiny-unrolled.c:21
21 return _le64toh(r);
1: x/i $pc
=> 0x7f719aac <keccak_finalize+172>: ldr r0, [sp, #4]
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
&((keccak_state *) 0xbeffef5c)->a
0x7f719ab0 in xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:21
21 return _le64toh(r);
1: x/i $pc
=> 0x7f719ab0 <keccak_finalize+176>: add r1, r7, r4
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x7f719ab4 21 return _le64toh(r);
1: x/i $pc
=> 0x7f719ab4 <keccak_finalize+180>: eor r2, r2, r12
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x7f719ab8 21 return _le64toh(r);
1: x/i $pc
=> 0x7f719ab8 <keccak_finalize+184>: eor r3, r3, r0
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
0x7f719abc 21 return _le64toh(r);
1: x/i $pc
=> 0x7f719abc <keccak_finalize+188>: cmp r6, r1
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
(keccak_state *) 0xbeffef5c)->a
0x7f719ac0 21 return _le64toh(r);
1: x/i $pc
=> 0x7f719ac0 <keccak_finalize+192>: strd r2, [r4]
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
(gdb) stepi
/8xb &((keccak_state *) 0xbeffef5c)->a
0x7f719ac4 21 return _le64toh(r);
1: x/i $pc
=> 0x7f719ac4 <keccak_finalize+196>: bhi 0x7f719a90 <keccak_finalize+144>
(gdb) x/8xb &((keccak_state *) 0xbeffef5c)->a
0xbeffef5c: 0x2e 0x6f 0x6e 0x69 0x6f 0x6e 0x20 0x63
(gdb) display/x $r2
2: /x $r2 = 0x696e6f2e
(gdb) display/x $r4
3: /x $r4 = 0xbeffef5c
(gdb) info reg
r0 0x63206e6f 1663069807
r1 0x8 8
r2 0x696e6f2e 1768845102
r3 0x63206e6f 1663069807
r4 0xbeffef5c 3204443996
r5 0xbeffef5c 3204443996
r6 0x88 136
r7 0x410010ac 1090523308
r8 0xb6ffe968 3070224744
r9 0xbefff029 3204444201
r10 0xbeffef28 3204443944
r11 0x6 6
r12 0x696e6f2e 1768845102
sp 0xbeffef28 0xbeffef28
lr 0x63656863 1667590243
pc 0x7f719ac4 0x7f719ac4 <keccak_finalize+196>
cpsr 0x20000010 536870928
fpscr 0x0 0
(gdb) bt
#0 0x7f719ac4 in xorin8 (len=136, src=<optimized out>, dst=<optimized out>) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:21
#1 keccak_finalize (s=0xbeffef5c) at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:189
#2 0x7f71a410 in hash (out=0xbefff1a8 "", outlen=32, in=<optimized out>,
inlen=48, bits=256, delim=6 '\006') at
../src/ext/keccak-tiny/keccak-tiny-unrolled.c:353
#3 0x7f71a640 in sha3_256 (out=out@entry=0xbefff1a8 "",
outlen=outlen@entry=32,
in=in@entry=0xbefff15c ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V",
inlen=inlen@entry=48)
at ../src/ext/keccak-tiny/keccak-tiny-unrolled.c:389
#4 0x7f6fb5e8 in crypto_digest256 (digest=digest@entry=0xbefff1a8 "",
m=m@entry=0xbefff15c ".onion
checksum\243\356\241Jͩ\036U\313\365\026;Z\"\370\357\016\272\030\251nOU\367\006(S6\177-V",
len=len@entry=48, algorithm=algorithm@entry=DIGEST_SHA3_256) at
../src/lib/crypt_ops/crypto_digest.c:153
#5 0x7f651948 in build_hs_checksum (key=key@entry=0x7f837df4,
version=version@entry=3 '\003', checksum_out=checksum_out@entry=0xbefff1a8 "")
at ../src/feature/hs/hs_common.c:748
#6 0x7f6530b0 in hs_build_address (key=key@entry=0x7f837df4,
version=<optimized out>, addr_out=addr_out@entry=0x7f837da0 "") at
../src/feature/hs/hs_common.c:1001
#7 0x7f65fa24 in load_service_keys (service=0x7f837da0) at
../src/feature/hs/hs_service.c:1080
#8 hs_service_load_all_keys () at ../src/feature/hs/hs_service.c:4041
#9 0x7f6d5890 in options_act (old_options=0x0) at
../src/app/config/config.c:2095
#10 set_options (new_val=new_val@entry=0x7f836330, msg=msg@entry=0xbefff364) at
../src/app/config/config.c:921
#11 0x7f6d7528 in options_init_from_string
(cf_defaults=cf_defaults@entry=0x7f836308 "", cf=cf@entry=0x7f8356c0
"HiddenServiceDir /home/benutzer/hs\nHiddenServicePort 80 127.0.0.1:8080\n",
command=command@entry=0, command_arg=command_arg@entry=0x0, msg=0xbefff364,
msg@entry=0xbefff35c) at ../src/app/config/config.c:5535
#12 0x7f6d7a7c in options_init_from_torrc (argc=argc@entry=-1817120709,
argv=argv@entry=0x7f7777f4) at ../src/app/config/config.c:5299
#13 0x7f596748 in tor_init (argc=-1817120709, argc@entry=5, argv=0x7f7777f4,
argv@entry=0x7f8233b0) at ../src/app/main/main.c:641
#14 0x7f597484 in tor_run_main (tor_cfg=tor_cfg@entry=0x7f823170) at
../src/app/main/main.c:1455
#15 0x7f5955f8 in tor_main (argc=5, argv=0xbefff7a4) at
../src/feature/api/tor_api.c:164
#16 0x7f5950a8 in main (argc=<optimized out>, argv=<optimized out>) at
../src/app/main/tor_main.c:32
(gdb) disassemble /r keccak_finalize+160,keccak_finalize+200
Dump of assembler code from 0x7f719aa0 to 0x7f719ac8:
0x7f719aa0 <keccak_finalize+160>: 08 20 b4 e5 ldr r2, [r4, #8]!
0x7f719aa4 <keccak_finalize+164>: 00 c0 9d e5 ldr r12, [sp]
0x7f719aa8 <keccak_finalize+168>: 04 30 94 e5 ldr r3, [r4, #4]
0x7f719aac <keccak_finalize+172>: 04 00 9d e5 ldr r0, [sp, #4]
0x7f719ab0 <keccak_finalize+176>: 04 10 87 e0 add r1, r7, r4
0x7f719ab4 <keccak_finalize+180>: 0c 20 22 e0 eor r2, r2, r12
0x7f719ab8 <keccak_finalize+184>: 00 30 23 e0 eor r3, r3, r0
0x7f719abc <keccak_finalize+188>: 01 00 56 e1 cmp r6, r1
0x7f719ac0 <keccak_finalize+192>: f0 20 c4 e1 strd r2, [r4]
=> 0x7f719ac4 <keccak_finalize+196>: f1 ff ff 8a bhi 0x7f719a90
<keccak_finalize+144>
End of assembler dump.
(gdb)