Reputation: 25
I have a very big WinForms application in the company I'm at and I want to extract all the images that are contained in it. I already wrote a program in python to extract basic images that are of type Image
and Icon
, but I struggle to turn an ImageStream
base64 string into its images.
Here is a .resx
file snipped with an actual base64 encoded string I want to convert:
...
<data name="imageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADO
CwAAAk1TRnQBSQFMAgEBBgEAAagBAgGoAQIBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wMAAuwSAAH/AfQC/ycA
AfkCAQHsBQAB+QHsCQAB7AHqAgAB6gHsJgAB+QMBAewDAAH5AgEB7AcAAfQBFAHqAgAB6gEUAfQlAAH5
BAEB7AEAAfkEAQHsBgAB7wEUAeoCAAHqARQB7yYAAfkEAQHsBQEB7AUAAfQCFAHqAgAB6gIUAfQmAAH5
CAEB7AYAAe8CFAHqAgAB6gIUAe8nAAH5BgEB7AYAAfQDFAHqAgAB6gEUARMBFAH0JwAFAQHsBwAB8gES
AhQB6gIAAeoCFAESAfInAAH5BAEB7AoAAQ4EAAIOKAAB+QUBAewJAAH3BgAB9ycAAfkDAQHsAwEB7AsA
AkMpAAH5AwEB7AEAAfkDAQHsCgACQykAAfkCAQHsAwAB+QMBAewJAAJDKgAB+QEBBQAB+QMBCQACQzIA
AfkBAQH5iAABMAI3ATABAzoAATABNwL7ATcBMAEDCAACMy4AATABNwT7ATcBMAEDBgADMy0AATABNwb7
ATcBMAEDBQABMwL6ATMQAAJTGQABMAE3AQAB+wEAAfsDAAH7ATcBMAEDAwABMwP6AjMOAARTCQALBgMA
ATABNwH7AQAB+wEAAvsBAAH7AQMB+wE3ATABAwEAAjME+gEzDQACUwKhAlMJAAn8AwABMAE3AvsBAAED
AQAF+wEDAfsBNwEwAQABMwb6ATMLAAJTBKECUwoAAv4BBgH+AQYFAAE3AfsBAwH7AgAD+wEDAgAD+wE3
AQAD+gKeAvoCMwkAAlMGoQJTCQAC/gEGAf4BBgUAAaAC+wEDAgABAwEAAQMDAAP7AV4BAAGeAfoBngIA
AZ4C+gEzCQACUwahAlMJAAL+AQYB/gEGBQABwwGgAfsCAwIAAQMC+wEDA/sBXgHDAgABngQAAZ4C+gEz
CQACUwShAlMKAAL+AQYB/gEGBgABwwGgAgMCAAIDBPsBXgHDCQABngH6AjMJAAJTAqECUwsAAv4BBgH+
AQYHAAHDAaAC+wEDAgABAwL7AV4BwwsAAZ4B+gIzCQAEUwwAAv4BBgH+AQYIAAHDAaAC+wIAAvsBXgHD
DQABngH6AjMJAAJTDQAC/gEGAf4BBgkAAcMBoAT7AV4Bww8AAZ4B+gIzFwAC/gEGAf4BBgoAAcMBoAL7
AV4BwxEAAZ4B+gEzJwABwwGgAV4BwxMAAZ4B+hEAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEB
BgABARYAA/8BAAHPAf8B/AE/BAABhwHPAfkBnwQAAYMBhwHxAY8EAAGBAQMB8QGPBAABwAEDAeEBhwQA
AeABBwHhAYcEAAHwAQ8BwQGDBAAB+AEfAcEBgwQAAfgBHwGAAQEEAAHwAR8BgAEBBAAB4AEPAYABAQQA
AcEBBwGAAQEEAAHDAYMBgAEBBAAB5wHDAYABAQQAAf8B4wGAAQEEAAT/BAAC/wH8AR8E/wHqAasB+AEP
AfMD/wHqAasB8AEHAeMD/wHiASMB4AEDAeEB/wH+AX8B4gEjAcABAQHAAf8B/AE/AeABAwGAAQABgAH/
AfgBHwHwAQcCAAGAAX8B8AEPAfgBHwIAAYABPwHgAQcB9AEfAgABjAE/AeABBwH0AR8CAAHeAR8B8AEP
AewBHwGAAQEB/wEPAfgBHwHsAR8BwAEDAf8BhwH8AT8B9AEfAeABBwH/AcMB/gF/AfQBHwHwAQ8B/wHh
Av8B+AEfAfgBHwH/AfEE/wH8AT8B/wH5Av8L
</value>
</data>
...
Similar to Image
and Icon
I know that all the required data should be somehow encoded into the base64 value, I just don't understand how.
I tried:
ImageStream
So, given I have a string with the base64 encoded value s
, how would I go about decoding this into all its contained images and output them as files? As an addition, how would it be possible to get each image's name (or any other metadata for that matter)?
Image with data about the ImageStream imageList
, all images have exact same metadata besides name:
Upvotes: 0
Views: 60