typhoon Posted December 5, 2007 Posted December 5, 2007 Is there an AutoIt implementation of the CRC32 used in zip files? Or a general-purpose CRC32 algorithm that can be seeded with the magic number?
ptrex Posted December 5, 2007 Posted December 5, 2007 (edited) @typhoon Something like this maybe ? expandcollapse popup#include-once ; CRC32 Encryption Function in AutoIt ; by the DtTvB ; Converted from Visual Basic code ; from http://www.di-mgt.com.au/src/basCRC32.txt global $crcArray[256]; $crcArray[0] = 0x0; $crcArray[1] = 0x77073096; $crcArray[2] = 0xEE0E612C; $crcArray[3] = 0x990951BA; $crcArray[4] = 0x76DC419; $crcArray[5] = 0x706AF48F; $crcArray[6] = 0xE963A535; $crcArray[7] = 0x9E6495A3; $crcArray[8] = 0xEDB8832; $crcArray[9] = 0x79DCB8A4; $crcArray[10] = 0xE0D5E91E; $crcArray[11] = 0x97D2D988; $crcArray[12] = 0x9B64C2B; $crcArray[13] = 0x7EB17CBD; $crcArray[14] = 0xE7B82D07; $crcArray[15] = 0x90BF1D91; $crcArray[16] = 0x1DB71064; $crcArray[17] = 0x6AB020F2; $crcArray[18] = 0xF3B97148; $crcArray[19] = 0x84BE41DE; $crcArray[20] = 0x1ADAD47D; $crcArray[21] = 0x6DDDE4EB; $crcArray[22] = 0xF4D4B551; $crcArray[23] = 0x83D385C7; $crcArray[24] = 0x136C9856; $crcArray[25] = 0x646BA8C0; $crcArray[26] = 0xFD62F97A; $crcArray[27] = 0x8A65C9EC; $crcArray[28] = 0x14015C4F; $crcArray[29] = 0x63066CD9; $crcArray[30] = 0xFA0F3D63; $crcArray[31] = 0x8D080DF5; $crcArray[32] = 0x3B6E20C8; $crcArray[33] = 0x4C69105E; $crcArray[34] = 0xD56041E4; $crcArray[35] = 0xA2677172; $crcArray[36] = 0x3C03E4D1; $crcArray[37] = 0x4B04D447; $crcArray[38] = 0xD20D85FD; $crcArray[39] = 0xA50AB56B; $crcArray[40] = 0x35B5A8FA; $crcArray[41] = 0x42B2986C; $crcArray[42] = 0xDBBBC9D6; $crcArray[43] = 0xACBCF940; $crcArray[44] = 0x32D86CE3; $crcArray[45] = 0x45DF5C75; $crcArray[46] = 0xDCD60DCF; $crcArray[47] = 0xABD13D59; $crcArray[48] = 0x26D930AC; $crcArray[49] = 0x51DE003A; $crcArray[50] = 0xC8D75180; $crcArray[51] = 0xBFD06116; $crcArray[52] = 0x21B4F4B5; $crcArray[53] = 0x56B3C423; $crcArray[54] = 0xCFBA9599; $crcArray[55] = 0xB8BDA50F; $crcArray[56] = 0x2802B89E; $crcArray[57] = 0x5F058808; $crcArray[58] = 0xC60CD9B2; $crcArray[59] = 0xB10BE924; $crcArray[60] = 0x2F6F7C87; $crcArray[61] = 0x58684C11; $crcArray[62] = 0xC1611DAB; $crcArray[63] = 0xB6662D3D; $crcArray[64] = 0x76DC4190; $crcArray[65] = 0x1DB7106; $crcArray[66] = 0x98D220BC; $crcArray[67] = 0xEFD5102A; $crcArray[68] = 0x71B18589; $crcArray[69] = 0x6B6B51F; $crcArray[70] = 0x9FBFE4A5; $crcArray[71] = 0xE8B8D433; $crcArray[72] = 0x7807C9A2; $crcArray[73] = 0xF00F934; $crcArray[74] = 0x9609A88E; $crcArray[75] = 0xE10E9818; $crcArray[76] = 0x7F6A0DBB; $crcArray[77] = 0x86D3D2D; $crcArray[78] = 0x91646C97; $crcArray[79] = 0xE6635C01; $crcArray[80] = 0x6B6B51F4; $crcArray[81] = 0x1C6C6162; $crcArray[82] = 0x856530D8; $crcArray[83] = 0xF262004E; $crcArray[84] = 0x6C0695ED; $crcArray[85] = 0x1B01A57B; $crcArray[86] = 0x8208F4C1; $crcArray[87] = 0xF50FC457; $crcArray[88] = 0x65B0D9C6; $crcArray[89] = 0x12B7E950; $crcArray[90] = 0x8BBEB8EA; $crcArray[91] = 0xFCB9887C; $crcArray[92] = 0x62DD1DDF; $crcArray[93] = 0x15DA2D49; $crcArray[94] = 0x8CD37CF3; $crcArray[95] = 0xFBD44C65; $crcArray[96] = 0x4DB26158; $crcArray[97] = 0x3AB551CE; $crcArray[98] = 0xA3BC0074; $crcArray[99] = 0xD4BB30E2; $crcArray[100] = 0x4ADFA541; $crcArray[101] = 0x3DD895D7; $crcArray[102] = 0xA4D1C46D; $crcArray[103] = 0xD3D6F4FB; $crcArray[104] = 0x4369E96A; $crcArray[105] = 0x346ED9FC; $crcArray[106] = 0xAD678846; $crcArray[107] = 0xDA60B8D0; $crcArray[108] = 0x44042D73; $crcArray[109] = 0x33031DE5; $crcArray[110] = 0xAA0A4C5F; $crcArray[111] = 0xDD0D7CC9; $crcArray[112] = 0x5005713C; $crcArray[113] = 0x270241AA; $crcArray[114] = 0xBE0B1010; $crcArray[115] = 0xC90C2086; $crcArray[116] = 0x5768B525; $crcArray[117] = 0x206F85B3; $crcArray[118] = 0xB966D409; $crcArray[119] = 0xCE61E49F; $crcArray[120] = 0x5EDEF90E; $crcArray[121] = 0x29D9C998; $crcArray[122] = 0xB0D09822; $crcArray[123] = 0xC7D7A8B4; $crcArray[124] = 0x59B33D17; $crcArray[125] = 0x2EB40D81; $crcArray[126] = 0xB7BD5C3B; $crcArray[127] = 0xC0BA6CAD; $crcArray[128] = 0xEDB88320; $crcArray[129] = 0x9ABFB3B6; $crcArray[130] = 0x3B6E20C; $crcArray[131] = 0x74B1D29A; $crcArray[132] = 0xEAD54739; $crcArray[133] = 0x9DD277AF; $crcArray[134] = 0x4DB2615; $crcArray[135] = 0x73DC1683; $crcArray[136] = 0xE3630B12; $crcArray[137] = 0x94643B84; $crcArray[138] = 0xD6D6A3E; $crcArray[139] = 0x7A6A5AA8; $crcArray[140] = 0xE40ECF0B; $crcArray[141] = 0x9309FF9D; $crcArray[142] = 0xA00AE27; $crcArray[143] = 0x7D079EB1; $crcArray[144] = 0xF00F9344; $crcArray[145] = 0x8708A3D2; $crcArray[146] = 0x1E01F268; $crcArray[147] = 0x6906C2FE; $crcArray[148] = 0xF762575D; $crcArray[149] = 0x806567CB; $crcArray[150] = 0x196C3671; $crcArray[151] = 0x6E6B06E7; $crcArray[152] = 0xFED41B76; $crcArray[153] = 0x89D32BE0; $crcArray[154] = 0x10DA7A5A; $crcArray[155] = 0x67DD4ACC; $crcArray[156] = 0xF9B9DF6F; $crcArray[157] = 0x8EBEEFF9; $crcArray[158] = 0x17B7BE43; $crcArray[159] = 0x60B08ED5; $crcArray[160] = 0xD6D6A3E8; $crcArray[161] = 0xA1D1937E; $crcArray[162] = 0x38D8C2C4; $crcArray[163] = 0x4FDFF252; $crcArray[164] = 0xD1BB67F1; $crcArray[165] = 0xA6BC5767; $crcArray[166] = 0x3FB506DD; $crcArray[167] = 0x48B2364B; $crcArray[168] = 0xD80D2BDA; $crcArray[169] = 0xAF0A1B4C; $crcArray[170] = 0x36034AF6; $crcArray[171] = 0x41047A60; $crcArray[172] = 0xDF60EFC3; $crcArray[173] = 0xA867DF55; $crcArray[174] = 0x316E8EEF; $crcArray[175] = 0x4669BE79; $crcArray[176] = 0xCB61B38C; $crcArray[177] = 0xBC66831A; $crcArray[178] = 0x256FD2A0; $crcArray[179] = 0x5268E236; $crcArray[180] = 0xCC0C7795; $crcArray[181] = 0xBB0B4703; $crcArray[182] = 0x220216B9; $crcArray[183] = 0x5505262F; $crcArray[184] = 0xC5BA3BBE; $crcArray[185] = 0xB2BD0B28; $crcArray[186] = 0x2BB45A92; $crcArray[187] = 0x5CB36A04; $crcArray[188] = 0xC2D7FFA7; $crcArray[189] = 0xB5D0CF31; $crcArray[190] = 0x2CD99E8B; $crcArray[191] = 0x5BDEAE1D; $crcArray[192] = 0x9B64C2B0; $crcArray[193] = 0xEC63F226; $crcArray[194] = 0x756AA39C; $crcArray[195] = 0x26D930A; $crcArray[196] = 0x9C0906A9; $crcArray[197] = 0xEB0E363F; $crcArray[198] = 0x72076785; $crcArray[199] = 0x5005713; $crcArray[200] = 0x95BF4A82; $crcArray[201] = 0xE2B87A14; $crcArray[202] = 0x7BB12BAE; $crcArray[203] = 0xCB61B38; $crcArray[204] = 0x92D28E9B; $crcArray[205] = 0xE5D5BE0D; $crcArray[206] = 0x7CDCEFB7; $crcArray[207] = 0xBDBDF21; $crcArray[208] = 0x86D3D2D4; $crcArray[209] = 0xF1D4E242; $crcArray[210] = 0x68DDB3F8; $crcArray[211] = 0x1FDA836E; $crcArray[212] = 0x81BE16CD; $crcArray[213] = 0xF6B9265B; $crcArray[214] = 0x6FB077E1; $crcArray[215] = 0x18B74777; $crcArray[216] = 0x88085AE6; $crcArray[217] = 0xFF0F6A70; $crcArray[218] = 0x66063BCA; $crcArray[219] = 0x11010B5C; $crcArray[220] = 0x8F659EFF; $crcArray[221] = 0xF862AE69; $crcArray[222] = 0x616BFFD3; $crcArray[223] = 0x166CCF45; $crcArray[224] = 0xA00AE278; $crcArray[225] = 0xD70DD2EE; $crcArray[226] = 0x4E048354; $crcArray[227] = 0x3903B3C2; $crcArray[228] = 0xA7672661; $crcArray[229] = 0xD06016F7; $crcArray[230] = 0x4969474D; $crcArray[231] = 0x3E6E77DB; $crcArray[232] = 0xAED16A4A; $crcArray[233] = 0xD9D65ADC; $crcArray[234] = 0x40DF0B66; $crcArray[235] = 0x37D83BF0; $crcArray[236] = 0xA9BCAE53; $crcArray[237] = 0xDEBB9EC5; $crcArray[238] = 0x47B2CF7F; $crcArray[239] = 0x30B5FFE9; $crcArray[240] = 0xBDBDF21C; $crcArray[241] = 0xCABAC28A; $crcArray[242] = 0x53B39330; $crcArray[243] = 0x24B4A3A6; $crcArray[244] = 0xBAD03605; $crcArray[245] = 0xCDD70693; $crcArray[246] = 0x54DE5729; $crcArray[247] = 0x23D967BF; $crcArray[248] = 0xB3667A2E; $crcArray[249] = 0xC4614AB8; $crcArray[250] = 0x5D681B02; $crcArray[251] = 0x2A6F2B94; $crcArray[252] = 0xB40BBE37; $crcArray[253] = 0xC30C8EA1; $crcArray[254] = 0x5A05DF1B; $crcArray[255] = 0x2D02EF8D; func sr8($x); local $n; $n = floor(bitAnd($x, 0x7fffffff) / 256); if (not(bitAnd($x, 0x80000000) = 0)) then; $n = bitOr($n, 0x800000); endIf; return $n; endFunc; func _convCRC32($data); local $crc, $i, $t, $c, $a, $l; $crc = 0xffffffff; $l = stringLen($data); for $i = 1 to $l; $c = asc(stringMid($data, $i, 1)); $t = bitXor(bitAnd($crc, 0xff), $c); $a = sr8($crc); $crc = bitXor($a, $crcArray[$t]); next; return bitXor($crc, 0xffffffff); endFunc; reagards, ptrex Edited December 5, 2007 by ptrex Contributions :Firewall Log Analyzer for XP - Creating COM objects without a need of DLL's - UPnP support in AU3Crystal Reports Viewer - PDFCreator in AutoIT - Duplicate File FinderSQLite3 Database functionality - USB Monitoring - Reading Excel using SQLRun Au3 as a Windows Service - File Monitor - Embedded Flash PlayerDynamic Functions - Control Panel Applets - Digital Signing Code - Excel Grid In AutoIT - Constants for Special Folders in WindowsRead data from Any Windows Edit Control - SOAP and Web Services in AutoIT - Barcode Printing Using PS - AU3 on LightTD WebserverMS LogParser SQL Engine in AutoIT - ImageMagick Image Processing - Converter @ Dec - Hex - Bin -Email Address Encoder - MSI Editor - SNMP - MIB ProtocolFinancial Functions UDF - Set ACL Permissions - Syntax HighLighter for AU3ADOR.RecordSet approach - Real OCR - HTTP Disk - PDF Reader Personal Worldclock - MS Indexing Engine - Printing ControlsGuiListView - Navigation (break the 4000 Limit barrier) - Registration Free COM DLL Distribution - Update - WinRM SMART Analysis - COM Object Browser - Excel PivotTable Object - VLC Media Player - Windows LogOnOff Gui -Extract Data from Outlook to Word & Excel - Analyze Event ID 4226 - DotNet Compiler Wrapper - Powershell_COM - New
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now