
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Node.js driver for Raspberry Pi to control KlikAanKlikUit (KaKu) devices using a 433Mhz transmitter.
The required hardware setup for this module is documented here (we're only using the transmitter module). It consists of a simple, cheap 433Mhz transmitter (like this one) hooked up to the RaspPi's GPIO pins.
DISCLAIMER: this module is not in any way endorsed by, or related to, COCO International B.V. or Trust International B.V.
The core of the code is based on original work from Randy Simons.
Big thanks to Job Wind for implementing the new style code.
First, make sure that you have a compiler and toolchain installed on your RaspPi.
Then, install the module:
$ npm i kaku-rpi
This will install the module, and its requirement (rpio
). On limited hardware (like a Model A), installation may take a few minutes.
Note: the driver can address both old-style and new-style devices. How to talk to a device is determined by the ADDRESS
argument for each command: if it's numerical, it's considered to address a new-style device. Otherwise, it's considered to address an old-style device.
const KlikAanKlikUit = require('kaku-rpi');
// Instanciate driver.
let kaku = KlikAanKlikUit([PIN, PERIODUSEC, REPEATS, PULSEWIDTH]);
// Switch a device on or off:
kaku.transmit(ADDRESS, DEVICE, STATE)
// Shortcuts:
kaku.on(ADDRESS, DEVICE)
kaku.off(ADDRESS, DEVICE)
// New-style only:
kaku.dim(ADDRESS, DEVICE, LEVEL) // dim a device
kaku.group(ADDRESS, STATE) // turn a group on or off
kaku.groupOn(ADDRESS) // turn a group on
kaku.groupOff(ADDRESS) // turn a group off
Arguments:
PIN
: the GPIO pin that the transmitter is hooked up to. This is the physical pin number, not the GPIO (mapped) number. By default this module assumes that the transmitter is connected to pin 11 (which is BCM GPIO pin number 17, but again, we're using the physical pin number, so 11).PERIODUSEC
: number of microseconds to sleep between high/low transitions (default: 375 for old-style, 260 for new-style).REPEATS
: number of times to repeat commands (default: 7 for both styles).PULSEWIDTH
: pulse width (default: 5, only used by new-style driver for now).ADDRESS/DEVICE
: KaKu works with addresses (A
, B
, C
, … for old-style devices, and a number for new-style devices) and devices (1
, 2
, 3
, …). An device is configured to listen on a particular ADDRESS/DEVICE pair.STATE
: whether to switch the device on (1/true
) or off (0/false
).LEVEL
: set dim level (0 = min, 15 = max).NB: PERIODUSEC
, REPEATS
and PULSEWIDTH
are different for old- and new-style. The respective drivers use sensible defaults, but if you set them they get used for both drivers, which basically makes the instance usable for only one type (old or new, but not both). In that case, if you want to control both types of devices, create an instance for each type.
New-style devices are self-learning: you put them in learning mode, send an ON command from your remote, and the device will learn its address and device number.
To find out which address your remote is sending, you'll need a 433Mhz receiver, hardware to connect it to, and software to read the code. I've used this Arduino sketch (and the library that contains it) to find out the code my remote is sending.
Alternatively, you can also put your device in learning mode and send an ON command with this library, using any address code you like. Most devices can be paired with multiple remotes, so you can use both your regular remote and the Raspberry Pi simultaneously.
FAQs
Node KlikAanKlikUit (KaKu) driver for Raspberry Pi
The npm package kaku-rpi receives a total of 1 weekly downloads. As such, kaku-rpi popularity was classified as not popular.
We found that kaku-rpi demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.