Didier Stevens

Wednesday 12 February 2025

Update: cs-decrypt-metadata.py VersionĀ 0.0.5

Filed under: My Software,Update — Didier Stevens @ 0:00

This is a bugfix version.

cs-decrypt-metadata_V0_0_5.zip (http)
MD5: 3C37C994709AAE7F56FEC8C8A35F6A61
SHA256: A47616A8C7A484A70D011EA4B8189097CF6FD61358DAEA883760C208BEDE2075

Tuesday 11 February 2025

Update: Python Templates Version 0.0.12

Filed under: My Software,Update — Didier Stevens @ 0:03

This is an update for process-file-text.py:

I added \t support for option withfilename and added option hasheader.

Option –hasheader makes that the first line of the first file is processed, and for all other files, the first line is ignored.

python-templates_V0_0_12.zip (http)
MD5: D36BDFA9F730E2A838B3DCDF796DAD91
SHA256: F7643248A901296AF4FE70D5E7F1F63BDED61B79618EAF445412FE4EE5FBBD24

Sunday 9 February 2025

Update: strings.py Version 0.0.11

Filed under: My Software,Update — Didier Stevens @ 8:50

This new version brings @ support for option search.

strings_V0_0_11.zip (http)
MD5: 2047669C7F4AB00F75553F396C812E2D
SHA256: 08DF9078B5EA41D50A3B06D2915B54246D02A932193D06C6130F9B9B8AD9F7A9

Wednesday 25 December 2024

Update: oledump.py Version 0.0.78

Filed under: My Software,Update — Didier Stevens @ 0:00

This is a bugfix version.

oledump_V0_0_78.zip (http)
MD5: EAE4457988371D88FED6F063BBBDADC7
SHA256: 01D314C505C1C5A0AFF8CE8A5910223FA8511E27F1B2DB6054864723B5677581

Tuesday 3 December 2024

Update: 1768.py Version 0.0.22

Filed under: My Software,Update — Didier Stevens @ 0:00

This is a bug fix version.

1768_v0_0_22.zip (http)
MD5: 6446F5C09BF70FAFBB3171734844B350
SHA256: 4716A4A72FB4C0265CAF541D5FF709615B9CB4129C20C98F1BBA535AA5D40717

Sunday 24 November 2024

Update: base64dump.py Version 0.0.27

Filed under: My Software,Update — Didier Stevens @ 21:13

When all items are selected with -s A and option -d from this new version on, items are decoded and dumped to stdout en separated by end-of-line character(s).

base64dump_V0_0_27.zip (http)
MD5: 6C3AE99A7FA0C525FF17B938A632AE53
SHA256: CDD84F574E25C93675BC0C14D954B59799B1FFEECC253A906B72A6DD669BDF4C

Friday 22 November 2024

Interfacing With A Cheap Geiger Counter

Filed under: Hardware,My Software — Didier Stevens @ 0:00

I got a cheap Geiger counter from Aliexpress:

This picture was taken on an airplane: you have more radiation (cosmic rays) at high altitude.

I figured out how to interface with this counter in Python to log real time data:

#!/usr/bin/env python

from __future__ import print_function

__description__ = "Program for geiger meter"
__author__ = 'Didier Stevens'
__version__ = '0.0.1'
__date__ = '2024/05/11'

"""

Source code put in the public domain by Didier Stevens, no Copyright
https://DidierStevens.com
Use at your own risk

History:
  2024/05/11: start

Todo:
"""

import optparse
import serial
import time

def FormatTime(epoch=None):
    if epoch == None:
        epoch = time.time()
    return '%04d%02d%02d-%02d%02d%02d' % time.localtime(epoch)[0:6]

def FindCOMPorts():
    ports = []
    for number in range(1, 10):
        try:
            comport = 'COM%d' % number
            with serial.Serial(comport) as oSerial:
                ports.append(comport)
        except serial.serialutil.SerialException as e:
            if 'PermissionError' in e.args[0]:
                ports.append(comport)
    return ports

def LogToCSV(comport):
    ser = serial.Serial(comport, 115200, timeout=0, write_timeout=0)
    ser.write(b'\xAA\x05\x0E\x01\xBE\x55\x00')
    alldata = b''
    fOut = open('geiger.csv', 'a')
    while True:
        data = ser.read(1000)
        if data != b'':
            alldata += data
            lines = alldata.split(b'\xaaU\x0e')
            alldata = lines[-1]
            lines = lines[:-1]
            for line in lines:
                if line != b'':
                    out = FormatTime() + ';' + line.decode('latin')
                    print(out)
                    fOut.write(out + '\n')
            if alldata.endswith(b'U') and not alldata.endswith(b'\xaaU'):
                out = FormatTime() + ';' + alldata.decode('latin')
                print(out)
                fOut.write(out + '\n')
                alldata = b''
            time.sleep(0.40)

def Main():
    oParser = optparse.OptionParser(usage='usage: %prog [options]\n' + __description__ , version='%prog ' + __version__)
    oParser.add_option('-l', '--listports', action='store_true', default=False, help='List ports')
    (options, args) = oParser.parse_args()

    comports = FindCOMPorts()
    if options.listports:
        print('Available ports:')
        for comport in comports:
            print(' %s' % comport)
        return

    if len(args) == 1:
        LogToCSV(args[0])
    elif len(comports) == 1:
        print('Using %s' % comports[0])
        LogToCSV(comports[0])
    else:
        print('Provide the COM port as argument')
        print('Available ports:')
        for comport in comports:
            print(' %s' % comport)

if __name__ == '__main__':
    Main()

Wednesday 20 November 2024

Update: base64dump.py Version 0.0.26

Filed under: My Software,Update — Didier Stevens @ 20:04

This is a bugfix version.

base64dump_V0_0_26.zip (http)
MD5: CD4370499288015C7EE13B59CB062129
SHA256: 3EEB76875ECCA782293D4486286F8155D1BB04DF23E3D3433E36C6373389B81D

Saturday 2 November 2024

Update: strings.py Version 0.0.10

Filed under: My Software,Update — Didier Stevens @ 8:28

This small update brings support for ZIP 2.0 via the pyzipper module.

strings_V0_0_10.zip (http)
MD5: F98C9D646A83322BC9226673D79FFE2D
SHA256: 7C062616C95DE5DDF0792A8CE9CA0CCA14FF43A8786DCED043193B729361BB59

Update: xmldump.py Version 0.0.9

Filed under: My Software,Update — Didier Stevens @ 7:45

This is a post for version updates 0.0.8 and 0.0.9.

Added command officeprotection and option -j for pretty.

xmldump_V0_0_9.zip (http)
MD5: 6EC24845F61FE3F9AC111BFEC69B53C7
SHA256: B1F3F6B153367AEF83C42B8002E7EA8A650B7E7092D97ACA288F2B62A93D4B9D
« Previous PageNext Page »

Blog at WordPress.com.