Te puedo dar un poco de ayuda de pasada en python:
import os
def cortar(nomOriginal, nomNuevo, tamArchivo, tamCortar):
with open(nomOriginal, 'r+b') as file1:
f1 = file1.read (tamArchivo-tamCortar)
file1.close()
with open(nomNuevo, 'w+b') as file2:
file2.write(f1)
file2.close()
print("Cortado Hecho y guardado en: " + nomNuevo)
direc = input('Ingrese Directorio: ')
dirList = os.listdir(direc)
for fname in dirList:
if(fname.upper().endswith('.JPG')):
if(os.path.isfile(direc + fname)== True):
if(os.path.exists(direc + fname + '.bak')== False):
print ('Nombre de archivo: '+ fname)
leno = os.path.getsize(direc + fname)
print ("inciando cortado en: " + direc + fname)
os.rename(direc + fname,direc + fname + '.bak')
cortar(direc + fname + '.bak', direc + fname, leno, 1000)
else:
print ('Archivo: ' + direc + fname + ' ya fue cortado')
El code es solo un inicio faltan muchas cosas, pero sirve para lo que buscas al iniciar pide el directorio donde buscara los archivos con la extension especificada, en el ejemplo puse *.jpg para que se pueda ver el cambio que realiza, en:
cortar(direc + fname + '.bak', direc + fname, leno, 1000)
el numero 1000 representa cuantos bytes del final de archivo quitara y escribira en un nuevo archivo con el nombre original, antes verifica si se trata de un archivo y si existe o no un archivo *.bak con su nombre, de ser asi no lo procesa porque lo toma como un archivo ya "cortado". Pruebalo en unas imagenes JPG que tengan un tamaño superior al numero que especifiques en "cortar" y veras los cambios al ejecutarlo, luego puedes utilizarlo para los *.bin que mencionas, tb seria que leas acerca de python un buen manual y asi completas lo que falta, las excepciones, depuracion de errores y demas, ademas de crear un buscador de archivos para que no tengas que especificar la ruta, eso lo haces con pocas lineas.
Necesitas python 3 para correrlo.