mame82 / UnifyingVulnsDisclosureRepo

Formerly private repository for discussion, knowledge- and code-sharing around new Unifying vulns, as announced on Twitter
154 stars 27 forks source link

mjackit on 32bit #6

Open ZeroChaos- opened 5 years ago

ZeroChaos- commented 5 years ago

Trying to build mjackit for x86 results in sadness:

 * mjackit-20190606.tar.gz BLAKE2B SHA512 size ;-) ...                                                                                                                                 [ ok ]
 * github.com-google-gousb-a50ac95.tar.gz BLAKE2B SHA512 size ;-) ...                                                                                                                  [ ok ]
 * github.com-manifoldco-promptui-v0.3.2.tar.gz BLAKE2B SHA512 size ;-) ...                                                                                                            [ ok ]
>>> Unpacking source...
 * Vendoring github.com/google/gousb github.com-google-gousb-a50ac95.tar.gz
 * Vendoring github.com/manifoldco/promptui github.com-manifoldco-promptui-v0.3.2.tar.gz
>>> Source unpacked in /var/tmp/portage/net-wireless/mjackit-20190606-r1/work
>>> Preparing source in /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606 ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606 ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606 ...
WORK=/var/tmp/portage/net-wireless/mjackit-20190606-r1/temp/go-build136478910
github.com/mame82/mjackit/helper
mkdir -p $WORK/b042/
cat >$WORK/b042/importcfg << 'EOF' # internal
# import config
packagefile errors=/usr/lib/go/pkg/linux_386/errors.a
packagefile fmt=/usr/lib/go/pkg/linux_386/fmt.a
EOF
cd /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606/src/github.com/mame82/mjackit/helper
/usr/lib/go/pkg/tool/linux_386/compile -o $WORK/b042/_pkg_.a -trimpath $WORK/b042 -p github.com/mame82/mjackit/helper -complete -buildid i4ad1oG7zkafW_PyG-A_/i4ad1oG7zkafW_PyG-A_ -goversion go1.12.5 -D "" -importcfg $WORK/b042/importcfg -pack -c=2 ./helper.go
github.com/mame82/mjackit/vendor/github.com/google/gousb
mkdir -p $WORK/b048/
cd /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606/src/github.com/mame82/mjackit/vendor/github.com/google/gousb
pkg-config --cflags -- libusb-1.0
pkg-config --libs -- libusb-1.0
CGO_LDFLAGS='"-g" "-O2" "-lusb-1.0"' /usr/lib/go/pkg/tool/linux_386/cgo -objdir $WORK/b048/ -importpath github.com/mame82/mjackit/vendor/github.com/google/gousb -- -I/usr/include/libusb-1.0 -I $WORK/b048/ -g -O2 ./constants.go ./error.go ./libusb.go
/usr/lib/go/pkg/tool/linux_386/buildid -w $WORK/b042/_pkg_.a # internal
cp $WORK/b042/_pkg_.a /var/tmp/portage/net-wireless/mjackit-20190606-r1/temp/go-cache/62/62e16c381250dac48912879cdba575ad3b0b820cb077086d0dea5551f33802bc-d # internal
github.com/mame82/mjackit/hid
mkdir -p $WORK/b053/
cat >$WORK/b053/importcfg << 'EOF' # internal
# import config
packagefile context=/usr/lib/go/pkg/linux_386/context.a
packagefile encoding/json=/usr/lib/go/pkg/linux_386/encoding/json.a
packagefile errors=/usr/lib/go/pkg/linux_386/errors.a
packagefile fmt=/usr/lib/go/pkg/linux_386/fmt.a
packagefile io=/usr/lib/go/pkg/linux_386/io.a
packagefile io/ioutil=/usr/lib/go/pkg/linux_386/io/ioutil.a
packagefile log=/usr/lib/go/pkg/linux_386/log.a
packagefile math/rand=/usr/lib/go/pkg/linux_386/math/rand.a
packagefile os=/usr/lib/go/pkg/linux_386/os.a
packagefile path/filepath=/usr/lib/go/pkg/linux_386/path/filepath.a
packagefile regexp=/usr/lib/go/pkg/linux_386/regexp.a
packagefile strings=/usr/lib/go/pkg/linux_386/strings.a
packagefile sync=/usr/lib/go/pkg/linux_386/sync.a
packagefile time=/usr/lib/go/pkg/linux_386/time.a
EOF
cd /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606/src/github.com/mame82/mjackit/hid
/usr/lib/go/pkg/tool/linux_386/compile -o $WORK/b053/_pkg_.a -trimpath $WORK/b053 -p github.com/mame82/mjackit/hid -complete -buildid q-4BimqOnc-7zT06Nrx0/q-4BimqOnc-7zT06Nrx0 -goversion go1.12.5 -D "" -importcfg $WORK/b053/importcfg -pack -c=2 ./keyboard.go ./keyboard_globals.go
/usr/lib/go/pkg/tool/linux_386/buildid -w $WORK/b053/_pkg_.a # internal
cp $WORK/b053/_pkg_.a /var/tmp/portage/net-wireless/mjackit-20190606-r1/temp/go-cache/a9/a9e288545689df690f65c24bd2db274f452d4ab22374fe790ec69b814525fbd6-d # internal
cd $WORK
i686-pc-linux-gnu-gcc -fno-caret-diagnostics -c -x c - || true
i686-pc-linux-gnu-gcc -Qunused-arguments -c -x c - || true
i686-pc-linux-gnu-gcc -fdebug-prefix-map=a=b -c -x c - || true
i686-pc-linux-gnu-gcc -gno-record-gcc-switches -c -x c - || true
cd $WORK/b048
TERM='dumb' i686-pc-linux-gnu-gcc -I /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606/src/github.com/mame82/mjackit/vendor/github.com/google/gousb -fPIC -m32 -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b048=/tmp/go-build -gno-record-gcc-switches -I/usr/include/libusb-1.0 -I ./ -g -O2 -o ./_x001.o -c _cgo_export.c
TERM='dumb' i686-pc-linux-gnu-gcc -I /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606/src/github.com/mame82/mjackit/vendor/github.com/google/gousb -fPIC -m32 -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b048=/tmp/go-build -gno-record-gcc-switches -I/usr/include/libusb-1.0 -I ./ -g -O2 -o ./_x002.o -c constants.cgo2.c
TERM='dumb' i686-pc-linux-gnu-gcc -I /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606/src/github.com/mame82/mjackit/vendor/github.com/google/gousb -fPIC -m32 -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b048=/tmp/go-build -gno-record-gcc-switches -I/usr/include/libusb-1.0 -I ./ -g -O2 -o ./_x003.o -c error.cgo2.c
TERM='dumb' i686-pc-linux-gnu-gcc -I /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606/src/github.com/mame82/mjackit/vendor/github.com/google/gousb -fPIC -m32 -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b048=/tmp/go-build -gno-record-gcc-switches -I/usr/include/libusb-1.0 -I ./ -g -O2 -o ./_x004.o -c libusb.cgo2.c
cd /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606/src/github.com/mame82/mjackit/vendor/github.com/google/gousb
TERM='dumb' i686-pc-linux-gnu-gcc -I . -fPIC -m32 -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b048=/tmp/go-build -gno-record-gcc-switches -I/usr/include/libusb-1.0 -I $WORK/b048/ -g -O2 -o $WORK/b048/_x005.o -c transfer.c
TERM='dumb' i686-pc-linux-gnu-gcc -I . -fPIC -m32 -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b048=/tmp/go-build -gno-record-gcc-switches -I/usr/include/libusb-1.0 -I $WORK/b048/ -g -O2 -o $WORK/b048/_x006.o -c usb.c
cd $WORK/b048
TERM='dumb' i686-pc-linux-gnu-gcc -I /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606/src/github.com/mame82/mjackit/vendor/github.com/google/gousb -fPIC -m32 -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b048=/tmp/go-build -gno-record-gcc-switches -I/usr/include/libusb-1.0 -I ./ -g -O2 -o ./_cgo_main.o -c _cgo_main.c
cd /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606/src/github.com/mame82/mjackit/vendor/github.com/google/gousb
TERM='dumb' i686-pc-linux-gnu-gcc -I . -fPIC -m32 -pthread -fmessage-length=0 -fdebug-prefix-map=$WORK/b048=/tmp/go-build -gno-record-gcc-switches -o $WORK/b048/_cgo_.o $WORK/b048/_cgo_main.o $WORK/b048/_x001.o $WORK/b048/_x002.o $WORK/b048/_x003.o $WORK/b048/_x004.o $WORK/b048/_x005.o $WORK/b048/_x006.o -g -O2 -lusb-1.0
TERM='dumb' /usr/lib/go/pkg/tool/linux_386/cgo -dynpackage gousb -dynimport $WORK/b048/_cgo_.o -dynout $WORK/b048/_cgo_import.go
cat >$WORK/b048/importcfg << 'EOF' # internal
# import config
packagefile context=/usr/lib/go/pkg/linux_386/context.a
packagefile errors=/usr/lib/go/pkg/linux_386/errors.a
packagefile fmt=/usr/lib/go/pkg/linux_386/fmt.a
packagefile io=/usr/lib/go/pkg/linux_386/io.a
packagefile io/ioutil=/usr/lib/go/pkg/linux_386/io/ioutil.a
packagefile log=/usr/lib/go/pkg/linux_386/log.a
packagefile os=/usr/lib/go/pkg/linux_386/os.a
packagefile reflect=/usr/lib/go/pkg/linux_386/reflect.a
packagefile runtime=/usr/lib/go/pkg/linux_386/runtime.a
packagefile sort=/usr/lib/go/pkg/linux_386/sort.a
packagefile strconv=/usr/lib/go/pkg/linux_386/strconv.a
packagefile strings=/usr/lib/go/pkg/linux_386/strings.a
packagefile sync=/usr/lib/go/pkg/linux_386/sync.a
packagefile time=/usr/lib/go/pkg/linux_386/time.a
packagefile runtime/cgo=/usr/lib/go/pkg/linux_386/runtime/cgo.a
packagefile syscall=/usr/lib/go/pkg/linux_386/syscall.a
EOF
/usr/lib/go/pkg/tool/linux_386/compile -o $WORK/b048/_pkg_.a -trimpath $WORK/b048 -p github.com/mame82/mjackit/vendor/github.com/google/gousb -buildid EJ-RK2es8yX-b7C53wkK/EJ-RK2es8yX-b7C53wkK -goversion go1.12.5 -D "" -importcfg $WORK/b048/importcfg -pack -c=2 ./config.go ./debug.go ./device.go ./endpoint.go ./endpoint_stream.go ./fakelibusb_devices.go ./interface.go ./misc.go ./transfer.go ./transfer_stream.go ./usb.go $WORK/b048/_cgo_gotypes.go $WORK/b048/constants.cgo1.go $WORK/b048/error.cgo1.go $WORK/b048/libusb.cgo1.go $WORK/b048/_cgo_import.go
/usr/lib/go/pkg/tool/linux_386/pack r $WORK/b048/_pkg_.a $WORK/b048/_x001.o $WORK/b048/_x002.o $WORK/b048/_x003.o $WORK/b048/_x004.o $WORK/b048/_x005.o $WORK/b048/_x006.o # internal
/usr/lib/go/pkg/tool/linux_386/buildid -w $WORK/b048/_pkg_.a # internal
cp $WORK/b048/_pkg_.a /var/tmp/portage/net-wireless/mjackit-20190606-r1/temp/go-cache/cb/cb486052f0b3dac1b5f98321ebb888b6bb7acb67288677864ed16a1af7087913-d # internal
github.com/mame82/mjackit/unifying
mkdir -p $WORK/b043/
cat >$WORK/b043/importcfg << 'EOF' # internal
# import config
importmap github.com/google/gousb=github.com/mame82/mjackit/vendor/github.com/google/gousb
packagefile context=/usr/lib/go/pkg/linux_386/context.a
packagefile crypto/aes=/usr/lib/go/pkg/linux_386/crypto/aes.a
packagefile encoding/binary=/usr/lib/go/pkg/linux_386/encoding/binary.a
packagefile encoding/json=/usr/lib/go/pkg/linux_386/encoding/json.a
packagefile errors=/usr/lib/go/pkg/linux_386/errors.a
packagefile fmt=/usr/lib/go/pkg/linux_386/fmt.a
packagefile github.com/mame82/mjackit/vendor/github.com/google/gousb=$WORK/b048/_pkg_.a
packagefile github.com/mame82/mjackit/helper=$WORK/b042/_pkg_.a
packagefile github.com/mame82/mjackit/hid=$WORK/b053/_pkg_.a
packagefile io/ioutil=/usr/lib/go/pkg/linux_386/io/ioutil.a
packagefile time=/usr/lib/go/pkg/linux_386/time.a
EOF
cd /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606/src/github.com/mame82/mjackit/unifying
/usr/lib/go/pkg/tool/linux_386/compile -o $WORK/b043/_pkg_.a -trimpath $WORK/b043 -p github.com/mame82/mjackit/unifying -complete -buildid SfYAJY3c0wg3jxn3tx0k/SfYAJY3c0wg3jxn3tx0k -goversion go1.12.5 -D "" -importcfg $WORK/b043/importcfg -pack -c=2 ./Fingerprint.go ./RF.go ./common.go ./logitacker.go ./nrf24.go
/usr/lib/go/pkg/tool/linux_386/buildid -w $WORK/b043/_pkg_.a # internal
cp $WORK/b043/_pkg_.a /var/tmp/portage/net-wireless/mjackit-20190606-r1/temp/go-cache/7d/7dd8320c046e568e8d3d3d36e9e0e70a95e6e75bdbb4359c0ec2e41785135c57-d # internal
github.com/mame82/mjackit
mkdir -p $WORK/b001/
cat >$WORK/b001/importcfg << 'EOF' # internal
# import config
packagefile bufio=/usr/lib/go/pkg/linux_386/bufio.a
packagefile context=/usr/lib/go/pkg/linux_386/context.a
packagefile crypto/rand=/usr/lib/go/pkg/linux_386/crypto/rand.a
packagefile encoding/binary=/usr/lib/go/pkg/linux_386/encoding/binary.a
packagefile errors=/usr/lib/go/pkg/linux_386/errors.a
packagefile flag=/usr/lib/go/pkg/linux_386/flag.a
packagefile fmt=/usr/lib/go/pkg/linux_386/fmt.a
packagefile github.com/mame82/mjackit/helper=$WORK/b042/_pkg_.a
packagefile github.com/mame82/mjackit/unifying=$WORK/b043/_pkg_.a
packagefile log=/usr/lib/go/pkg/linux_386/log.a
packagefile math/rand=/usr/lib/go/pkg/linux_386/math/rand.a
packagefile os=/usr/lib/go/pkg/linux_386/os.a
packagefile os/signal=/usr/lib/go/pkg/linux_386/os/signal.a
packagefile strings=/usr/lib/go/pkg/linux_386/strings.a
packagefile time=/usr/lib/go/pkg/linux_386/time.a
packagefile runtime=/usr/lib/go/pkg/linux_386/runtime.a
EOF
cd /var/tmp/portage/net-wireless/mjackit-20190606-r1/work/mjackit-20190606/src/github.com/mame82/mjackit
/usr/lib/go/pkg/tool/linux_386/compile -o $WORK/b001/_pkg_.a -trimpath $WORK/b001 -p main -complete -buildid FXPx9qxg-IHnqIOdxCFn/FXPx9qxg-IHnqIOdxCFn -goversion go1.12.5 -D "" -importcfg $WORK/b001/importcfg -pack -c=2 ./main.go
# github.com/mame82/mjackit
src/github.com/mame82/mjackit/main.go:645:11: constant 4294967295 overflows int
src/github.com/mame82/mjackit/main.go:900:30: constant 4294967296 overflows int
src/github.com/mame82/mjackit/main.go:901:37: constant 4294967296 overflows int
src/github.com/mame82/mjackit/main.go:902:27: constant 4278190080 overflows int
src/github.com/mame82/mjackit/main.go:906:30: constant 4278190080 overflows int
mame82 commented 5 years ago

Seems I have to change some int types to int64.

mjackit was a PoC tool, build and run on a 64bit system for all tests.

I haven't put much effort into the ability to cross-compile for 32bit, as I moved development to LOGITacker.