Hola,
Se podría hacer en batch, usando findstr /N + More + Type + blablabla... para varios resultados (Multi-attachments) pero es algo engorroso, He preferido hacerlo en Ruby, Que es más limpio para hacer un split (Odio Batch para esa tarea),Y te lo he compilado de paso el script.
El code sigue las siguientes condiciones (Si esto no es como lo he tenido en cuenta, Especifícalo para corregirlo):
- El principio del code en base64 empieza SIEMPRE después de la cadena "X-Attachment-Id: ......."
- El final del code en base64 en cada archivo, acaba con una linea que empieza con 2 caracteres de guión "--"
Ejemplos:
Si las condiciones son correctas, Pues aquí tienes:
NOTA: He tenido problemas con el compilador así que no he podido compilarlo, Descarga el intérprete de Ruby si quieres usar los codes xD o que te los compile alguien.
PD: Si lo compilas, Podrías usar un script así en Batch:
output:
4DFF76A1-00000001.eml:
Saludos.
Se podría hacer en batch, usando findstr /N + More + Type + blablabla... para varios resultados (Multi-attachments) pero es algo engorroso, He preferido hacerlo en Ruby, Que es más limpio para hacer un split (Odio Batch para esa tarea),
El code sigue las siguientes condiciones (Si esto no es como lo he tenido en cuenta, Especifícalo para corregirlo):
- El principio del code en base64 empieza SIEMPRE después de la cadena "X-Attachment-Id: ......."
- El final del code en base64 en cada archivo, acaba con una linea que empieza con 2 caracteres de guión "--"
Ejemplos:
Código [Seleccionar]
...
Y3R1cmEgZGVsIHByb3llY3RvLg==
--00235453035026fdba04c5b9a886--
Código [Seleccionar]
...
b3MgdOljbmljb3Mu
--20cf300fb103858dca04c5b9abcf
Código [Seleccionar]
...
bWJyYWRhcyBtZWpvcmFzLg==
--20cf300fb103858dca04c5b9abcf--
Si las condiciones son correctas, Pues aquí tienes:
Código (ruby) [Seleccionar]
# -*- coding: UTF-8 -*-
# Este script reemplaza el contenido de cada archivo .eml
exit if Object.const_defined?(:Ocra)
# Dir.chdir(ARGV[0])
for file in Dir.glob('*.eml') do
splitted = ''
puts "\n" + "[+] " + file
File.open(file).each_line do |line|
if line.include?('Attachment-Id')
puts "Attachment:" + line.split(':').last.to_s
splitted = splitted, "\n", File.read(file).split(line.to_s).last.split('--').first.split(' ')
end # split
end # line
File.open(file, 'w') {|f| f.puts(splitted) }
end # for *.eml
Código (ruby) [Seleccionar]
# -*- coding: UTF-8 -*-
# Este script crea un nuevo archivo por cada archivo .eml
exit if Object.const_defined?(:Ocra)
# Dir.chdir(ARGV[0])
for file in Dir.glob('*.eml') do
puts "\n" + "[+] " + file
File.open(file).each_line do |line|
if line.include?('Attachment-Id')
puts "Attachment:" + line.split(':').last.to_s
splitted = File.read(file).split(line.to_s).last.split('--').first.split(' ')
File.open(file + "_New", 'a+') do |newfile|
newfile.puts splitted, "\n"
end # newfile
end # split
end # line
end # for *.eml
NOTA: He tenido problemas con el compilador así que no he podido compilarlo, Descarga el intérprete de Ruby si quieres usar los codes xD o que te los compile alguien.
PD: Si lo compilas, Podrías usar un script así en Batch:
Código (dos) [Seleccionar]
@Echo OFF
type "*.eml" > "%SYSTEMDRIVE%\TODO.txt"
Ren "%SYSTEMDRIVE%\TODO.txt" "*.eml"
Rem splitter.exe es el nombre que me invento para el script de Ruby compilado xD
Splitter.exe "%SYSTEMDRIVE%\"
b64dec.exe "%SYSTEMDRIVE%\TODO.eml" "%SYSTEMDRIVE%\TODO_Decodificado.txt"
pause
exit
output:
4DFF76A1-00000001.eml:
Código [Seleccionar]
RWwgcHJveWVjdG8gRGViaWFuIGZ1ZSBmdW5kYWRvIGVuIGVsIGHxbyAxOTkzIHBvciBJYW4gTXVy
ZG9jaywgZGVzcHXpcyBkZSBoYWJlciBlc3R1ZGlhZG8gZW4gbGEgVW5pdmVyc2lkYWQgZGUgUHVy
ZHVlLiBNdXJkb2NrIGVzY3JpYmnzIGVsIE1hbmlmaWVzdG8gZGUgRGViaWFuIHF1ZSB1dGlsaXrz
IGNvbW8gYmFzZSBwYXJhIGxhIGNyZWFjafNuIGRlIGxhIGRpc3RyaWJ1Y2nzbiBHTlUvTGludXgg
ZGViaWFuLiBEZW50cm8gZGUgZXN0ZSB0ZXh0byBsb3MgcHVudG9zIGRlc3RhY2FibGVzIHNvbjog
dGVuZXIgZGUgbGEgZGlzdHJpYnVjafNuIGRlIG1hbmVyYSBhYmllcnRhLCBjb2hlcmVudGUgYWwg
ZXNw7XJpdHUgZGUgTGludXggKG76Y2xlbykgeSBkZSBHTlUuDQoNCkVsIG5vbWJyZSBkZWwgcHJv
eWVjdG8gc2UgYmFzYSBlbiBsYSBjb21iaW5hY2nzbiBkZWwgbm9tYnJlIGRlIHN1IGVudG9uY2Vz
IG5vdmlhIChhY3R1YWwgZXggZXNwb3NhKSBEZWJvcmFoIGNvbiBzdSBwcm9waW8gbm9tYnJlIElh
biwgZm9ybWFuZG8gZWwgcG9ydG1hbnRlYXUgRGViaWFuLCBwcm9udW5jaWFkbyBjb21vIGxhcyBz
7WxhYmFzIGNvcnJlc3BvbmRpZW50ZXMgZGUgZXN0b3Mgbm9tYnJlcywgZW4gaW5nbOlzIGVzdGFk
b3VuaWRlbnNlOiAvZD9iJ2k/aj9uLy4NCg0KRWwgcHJveWVjdG8gY3JlY2nzIGxlbnRhbWVudGUg
YWwgcHJpbmNpcGlvIHkgbGFuevMgc3VzIHByaW1lcmFzIHZlcnNpb25lcyAwLjl4IGVuIDE5OTQg
eSAxOTk1LiBMYXMgcHJpbWVyYXMgcG9ydGFiaWxpZGFkZXMgYSBvdHJhcyBhcnF1aXRlY3R1cmFz
IGZ1ZXJvbiBhIGNvbWllbnpvcyBkZSAxOTk1LCBzaWVuZG8gbGEgcHJpbWVyYSB2ZXJzafNuIDEu
eCBkZSBEZWJpYW4gbGFuemFkYSBlbiAxOTk2Lg0KDQpFbiAxOTk2LCBCcnVjZSBQZXJlbnMgc3Vi
c3RpdHV58yBhIElhbiBNdXJkb2NrIGNvbW8gZWwgbO1kZXIgZGUgcHJveWVjdG8uIFBvciBzdWdl
cmVuY2lhIGRlbCBkZXNhcnJvbGxhZG9yIEVhbiBTY2h1ZXNzbGVyLCBkaXJpZ2nzIGVsIHByb2Nl
c28gZGUgYWN0dWFsaXphY2nzbiBkZWwgQ29udHJhdG8gU29jaWFsIGRlIERlYmlhbiB5IGRlIGxh
cyBwYXV0YXMgZGVsIHNvZnR3YXJlIGRlIGRlYmlhbiBsaWJyZW1lbnRlLCBkZWZpbmllbmRvIGxv
cyBwdW50b3MgZnVuZGFtZW50YWxlcyBwYXJhIGVsIGRlc2Fycm9sbG8gZGUgbGEgZGlzdHJpYnVj
afNuLiBUYW1iaeluIGluaWNp8yBsYSBjcmVhY2nzbiBkZSBsYSBsaWNlbmNpYSBkZSBzb2Z0d2Fy
ZSBsZWdhbCBkZSBsYSBvcmdhbml6YWNp824uDQoNCkJydWNlIFBlcmVucyBzZSByZXRpcvMgZW4g
MTk5OCwgYW50ZXMgZGVsIGxhbnphbWllbnRvIGRlIGxhIHByaW1lcnJhIHZlcnNp824gZGUgRGVi
aWFuIGJhc2FkYSBlbiBnbGliYywgbGEgMi4wLiBFbCBwcm95ZWN0byBwcm9jZWRp8yBhIGVsZWdp
ciBhIG51ZXZvcyBs7WRlcmVzIHkgYSBoYWNlciBkb3MgcmV2aXNpb25lcyBkZSBsYSB2ZXJzafNu
IDIueCwgY2FkYSB1bm8gaW5jbHV5ZW5kbyBt4XMgdmVyc2lvbmVzIHBhcmEgb3RyYXMgYXJxdWl0
ZWN0dXJhcyB5IG3hcyBwYXF1ZXRlcy4gQ29udmVuaWVudGUgZnVlIGxhbnphZGEgZHVyYW50ZSBl
c3RlIHBlcu1vZG8geSBsYSBwcmltZXJhIHBvcnRhYmlsaWRhZCBhIHVuIG76Y2xlbyBubyBiYXNh
ZG8gZW4gZWwgbvpjbGVvIExpbnV4LCBuYWNpZW5kbyBhc+0gZGViaWFuIEdOVS9IdXJkLCB1dGls
aXphbmRvIGVsIG76Y2xlbyBkZSBIdXJkIHByb3ZlbmllbnRlIGRlbCBwcm95ZWN0byBHTlUuIExh
cyBwcmltZXJhcyBkaXN0cmlidWNpb25lcyBHTlUvTGludXggYmFzYWRhcyBlbiBEZWJpYW4gKENv
cmVsIExpbnV4IHkgbGEgU3Rvcm1peCdzIExpbnV4IGRlIFN0b3JtaXgpLCBmdWVyb24gY29tZW56
YWRhcyBlbiAxOTk5LiBBdW5xdWUgZXN0dXZpZXJvbiBkZXNhcnJvbGxhZGFzIG5vIHBvciBtdWNo
byB0aWVtcG8sIGVzdGFzIGRpc3RyaWJ1Y2lvbmVzIGZ1ZXJvbiBsYXMgcHJpbWVyYXMgZGUgbXVj
aGFzIHF1ZSBzZSBiYXNhcu1hbiBlbiBEZWJpYW4uDQoNCkEgZmluYWxlcyBkZSAyMDAwLCBlbCBw
cm95ZWN0byByZWFsaXrzIGVsIG1heW9yIGNhbWJpbyBhIGxhIGVzdHJ1Y3R1cmEgZGUgbG9zIGFy
Y2hpdm9zIHkgbGEgb3JnYW5pemFjafNuIGRlIGxhcyB2ZXJzaW9uZXMsIHJlb3JnYW5pemFuZG8g
cHJvY2Vzb3MgZGUgbGliZXJhY2nzbiBkZSBwYXF1ZXRlcyBkZWwgc29mdHdhcmUgY29uIGVsIG51
ZXZvICJwYWNrYWdlIHBvb2xzIiAoZGVsIGluZ2zpcyBkZXDzc2l0byBkZSBwYXF1ZXRlcyksIHkg
Y3JlYW5kbyB1biByYW1hIGRlIHBydWViYSwgcmVsYXRpdmFtZW50ZSBlc3RhYmxlIHBhcmEgZWwg
bGFuemFtaWVudG8gc2lndWllbnRlLiBFbiAyMDAxLCBsb3MgZGVzYXJyb2xsYWRvcmVzIGNvbWVu
emFyb24gYSByZXVuaXJzZSBlbiB1bmEgY29uZmVyZW5jaWEgYW51YWwgbGxhbWFkYSBEZWJjb25m
IGNvbiBkaXNjdXNpb25lcyB5IHRhbGxlcmVzIHBhcmEgZGVzYXJyb2xsYWRvcmVzIHkgdXN1YXJp
b3MgdOljbmljb3Mu
TGEgcHJpbWVyYSB2ZXJzafNuIG9maWNpYWwgZGUgU2xhY2t3YXJlLCBsYSAxLjAwLCBmdWUgcHVi
bGljYWRhIGVsIDE2IGRlIGp1bGlvIGRlIDE5OTMgcG9yIFBhdHJpY2sgVm9sa2VyZGluZywgZnVu
ZGFkb3IgeSBs7WRlciBkZSBkZXNhcnJvbGxvLiBFc3RhYmEgYmFzYWRhIGVuIGxhIGRpc3RyaWJ1
Y2nzbiBTTFMgTGludXggeSBzZSBkaXN0cmlide1hIGVuIGRpc2NvcyBmbGV4aWJsZXMgZGUgM70g
ZSBpbeFnZW5lcyBxdWUgZXN0YWJhbiBkaXNwb25pYmxlcyBlbiBzZXJ2aWRvcmVzIEZUUCBhbvNu
aW1vcy4gU2xhY2t3YXJlIGVzIGxhIGRpc3RyaWJ1Y2nzbiBt4XMgYW50aWd1YSBlbnRyZSBsYXMg
cXVlIHNpZ3VlbiBhY3RpdmFtZW50ZSBtYW50ZW5pZGFzLg0KDQpBc+0gUGF0cmljayBKLiBWb2xr
ZXJkaW5nIGRlY+1hIGVuIGVsIG5ld3Nncm91cHMgY29tcC5vcy5saW51eDo3DQoNCiAgICAiLi4u
IEVzdGEgdmVyc2nzbiBlc3ThIGJhc2FkYSBlbiBncmFuIHBhcnRlIHNvYnJlIGVsIHNpc3RlbWEg
U0xTLCBwZXJvIGhhIHNpZG8gbWVqb3JhZG8geSBtb2RpZmljYWRvIHN1c3RhbmNpYWxtZW50ZS4g
RXhpc3RlbiBkb3Mgc2VyaWVzIHByaW5jaXBhbGVzIGRlIGRpc2NvcywgbGEgQSAoMTMgZGlzY29z
KSB5IGxhIFggKDExIGRpc2NvcykgLi4uIg0KICAgIFBhdHJpY2sgSi4gVm9sa2VyZGluZw0KDQpF
bCBub21icmUgU2xhY2t3YXJlIGRlcml2YSBkZWwgdOlybWlubyBzbGFjaywgdGFsIHkgY29tbyBs
byBkZWZpbmUgbGEgSWdsZXNpYSBkZSBsb3MgU3ViR2VuaW9zW2NpdGEgcmVxdWVyaWRhXS4NCg0K
RW4gbGFzIHByaW1lcmFzIHZlcnNpb25lcyBkZSBTbGFja3dhcmUsIGxhIGRpc3RyaWJ1Y2nzbiB0
ZW7tYSB0cmVzIGN1ZW50YXMgZGUgdXN1YXJpbywgInNhdGFuIiwgImdvbnpvIiB5ICJzbmFrZSIu
IMlzdGFzIGVyYW4gaW5jbHVpZGFzIHPzbG8gY29tbyBlamVtcGxvcywgcGVybyBmdWVyb24gZWxp
bWluYWRhcyBwb3N0ZXJpb3JtZW50ZSBkZWJpZG8gYSBxdWUgc2lnbmlmaWNhYmFuIHVuIHBvdGVu
Y2lhbCByaWVzZ28gY29tcHV0YWNpb25hbC4NCg0KRW4gMTk5OSwgZWwgbvptZXJvIGRlIHZlcnNp
824gZGUgU2xhY2t3YXJlIHNlIGluY3JlbWVudPMgZGUgNCBhIDcsIHBhcmEgZGVtb3N0cmFyIHF1
ZSBTbGFja3dhcmUgZXN0YWJhIGFjdHVhbGl6YWRvIGFsIGlndWFsIHF1ZSBvdHJhcyBkaXN0cmli
dWNpb25lcyBkZSBMaW51eCwgbXVjaGFzIGRlIGxhcyBjdWFsZXMgdGVu7WFuIGNvbW8gbvptZXJv
IGRlIHB1YmxpY2FjafNuIGVuIGVzZSBtb21lbnRvIGVsIDYuDQoNCkVuIDIwMDQsIFBhdHJpY2sg
Vm9sa2VyZGluZyBlbmZlcm3zIHNlcmlhbWVudGUgeSBlbCBmdXR1cm8gZGVzYXJyb2xsbyBkZSBT
bGFja3dhcmUgc2Ugdm9sdmnzIGluY2llcnRvLiBBZm9ydHVuYWRhbWVudGUsIHNlIHJlY3VwZXLz
LCB5IGVsIGRlc2Fycm9sbG8gZGUgU2xhY2t3YXJlIGhhIGNvbnRpbnVhZG8uDQoNCkVuIDIwMDUs
IGVsIGVzY3JpdG9yaW8gR05PTUUgZnVlIGVsaW1pbmFkbyBkZSBsYSBkaXN0cmlidWNp824sIGxv
IHF1ZSBjcmXzIHVuYSBncmFuIHBvbOltaWNhIHN1cGVyYWRhIGVuIHBhcnRlIHBvciBlbCBoZWNo
byBkZSBxdWUgc2lndWUgaGFiaWVuZG8gcHJveWVjdG9zIGRlZGljYWRvcyBhIG9mcmVjZXIgZGlj
aG8gZXNjcml0b3JpbyBhIGxvcyB1c3VhcmlvcyBkZSBTbGFja3dhcmUsIGNvbW8gRnJlZXJvY2sg
R05PTUUgbyBkcm9wbGluZSBHTk9NRS4NCg0KRW4gMjAwNywgaW5jbHV5ZSBsYSBzZXJpZSAyLjYu
eCBkZWwgbvpjbGVvIExpbnV4IGNvbW8gZXN0YWJsZS4NCg0KRW4gZWwgdHJhbnNjdXJzbyBkZSBs
YSBoaXN0b3JpYSBkZSBTbGFja3dhcmUsIGhhbiBuYWNpZG8gb3RyYXMgZGlzdHJpYnVjaW9uZXMg
eSBMaXZlQ0QgYmFzYWRhcyBlbiBlbGxhLiBBbGd1bmFzIGRlIGxhcyBt4XMgcG9wdWxhcmVzIGlu
Y2x1eWVuIENvbGxlZ2UgTGludXgsIFNMQVgsIFZlY3RvciBMaW51eCB5IFplbndhbGsuDQoNCkVs
IDEzIGRlIGFnb3N0byBkZSAyMDA4IFNsYWNrd2FyZSBpbmNsde1hIGEgS0RFIDQgZW4gbGEgcmFt
YSBkZSBwcnVlYmFzIChTbGFja3dhcmUgLWN1cnJlbnQpIGVuIGVsIGRpcmVjdG9yaW8gL3Rlc3Rp
bmcuDQoNCkVsIDE5IGRlIG1heW8gZGUgMjAwOSBWb2xrZXJkaW5nIGFudW5jafMgZWwgY29taWVu
em8gZGVsIHNvcG9ydGUgb2ZpY2lhbCBwYXJhIGxhIGFycXVpdGVjdHVyYSBkZSA2NCBiaXRzLCBs
YSBjdWFsIHNlIGluaWNp8yBlbiBsYSByYW1hIGVuIGRlc2Fycm9sbG8gKGN1cnJlbnQpLjMNCg0K
RWwgOSBkZSBqdWxpbyBkZSAyMDA5IFZvbGtlcmRpbmcgYW51bmNpYSBlbiBlbCBzaXRpbyBvZmlj
aWFsIGRlIFNsYWNrd2FyZSBlbCBzb3BvcnRlIHBhcmEgYXJxdWl0ZWN0dXJhcyBBUk0sIHVuIHBv
cnQgb2ZpY2lhbCBkZW5vbWluYWRvIEFSTWVkc2xhY2ssNSB0YW50byBwYXJhIGxhIHZlcnNp824g
MTIuMiBjb21vIHBhcmEgbGEgcXVlIGVzdOEgZW4gZGVzYXJyb2xsbyAoY3VycmVudCkuDQoNCkVs
IDI2IGRlIGFnb3N0byBkZSAyMDA5IGVsIHByb3llY3RvIFNhbGNrd2FyZSBsYW568yBsYSB2ZXJz
afNuIDEzLjAsIHF1ZSBkZXN0YWPzIGRvcyBpbXBvcnRhbnRlcyBhbnVuY2lvcywgZWwgcHJpbWVy
byBlcyBlbCByZWVtcGxhem8gZGUgS0RFIDMgcG9yIEtERSA0LCB5IGVsIHNlZ3VuZG8gZnVlIGVs
IGxhbnphbWllbnRvIGRlIGxhIHByaW1lcmEgdmVyc2nzbiBvZmljaWFsIGRlIFNsYWNrd2FyZSBw
YXJhIGxhIGFycXVpdGVjdHVyYSBkZSA2NCBiaXRzLCBsYSBjdWFsIGhhc3RhIGVzZSBtb21lbnRv
IG90cm9zIHByb3llY3RvcywgY29tbyBTbGFtZDY0LCBkZXNhcnJvbGxhYmFuIHBvcnRzIG5vIG9m
aWNpYWxlcyBkZSBTbGFja3dhcmUgcGFyYSBlc2EgYXJxdWl0ZWN0dXJhLg0KDQpFbCAyNCBkZSBt
YXlvIGRlIDIwMTAgc2UgbGFuevMgbGEgdmVyc2nzbiAxMy4xLCBxdWUgdGVu7WEgY29tbyBwcmlu
Y2lwYWxlcyBtZWpvcmFzIGxhIHZlcnNp824gU0MgZGUgS0RFIDQuNC4zLCBlbCBrZXJuZWwgTGlu
dXggMi42LjMzLjQsIGJpYmxpb3RlY2FzIHkgYXBsaWNhY2lvbmVzIGFjdHVhbGl6YWRhcyB0YWxl
cyBjb21vIEZpcmVmb3ggeSBUaHVuZGVyYmlyZC4NCg0KRWwgMjcgZGUgYWJyaWwgZGUgMjAxMSBz
ZSBsYW568yBsYSB2ZXJzafNuIDEzLjM3LGVsIGtlcm5lbCBMaW51eCAyLjYuMzcuNiAsS2VybmVs
IExpbnV4IDIuNi4zNS4xMiB5IDIuNi4zOS1yYzQgZW4gdGVzdGluZyAsIG1lam9yYXMgZW4gZWwg
c2lzdGVtYSBYIChpbmNsdXllIG5vdXZlYXUgcGFyYSBsYXMgdGFyamV0YXMgZ3LhZmljYXMgbnZp
ZGlhKSAsbmF2ZWdhZG9yIHdlYiBmaXJlZm94IDQgLCBLREUgU0MgNC41LjUgeSBsYXMgYWNvc3R1
bWJyYWRhcyBtZWpvcmFzLg==
Saludos.