archmage
December 15th, 2002, 10:00
hello all
i am reversing an installshield 6.0 compiled installer, i have read many tutorials, but i am having a bit of difficulty, it seems that the protection for the serial is in the script itself -- but i really dont understand what is going on, can anyone clarify me what this code does?
/* 00004DD0: 0006 */ n0007 = 0x00015601; //a standard value?
/* 00004DDC: 0006 */ n0008 = 0x00000040;
/* 00004DE8: 0006 */ n0009 = 0x00000051;
/* 00004DF4: 0006 */ n000A = 0x0000007D;
/* 00004E00: 0029 */ StrSub(s0009, s0006, 0x00000000, 0x00000003);
/* 00004E14: 002C */ StrToNum(n0004, s0009);
/* 00004E1E: 0029 */ StrSub(s0009, s0006, 0x00000004, 0x00000001);
/* 00004E32: 0006 */ s000A = s0009;
/* 00004E3C: 0029 */ StrSub(s0009, s0006, 0x00000006, 0x00000001);
/* 00004E50: 0007 */ s000A = s000A + s0009;
/* 00004E5D: 0029 */ StrSub(s0009, s0006, 0x00000008, 0x00000001);
/* 00004E71: 0007 */ s000A = s000A + s0009;
/* 00004E7E: 0029 */ StrSub(s0009, s0006, 0x0000000A, 0x00000001);
/* 00004E92: 0007 */ s000A = s000A + s0009;
/* 00004E9F: 0029 */ StrSub(s0009, s0006, 0x0000000C, 0x00000001);
/* 00004EB3: 0007 */ s000A = s000A + s0009;
/* 00004EC0: 002C */ StrToNum(n0005, s000A);
/* 00004ECA: 0029 */ StrSub(s0009, s0006, 0x00000005, 0x00000001);
/* 00004EDE: 0006 */ s000A = s0009;
/* 00004EE8: 0029 */ StrSub(s0009, s0006, 0x00000007, 0x00000001);
/* 00004EFC: 0007 */ s000A = s000A + s0009;
/* 00004F09: 0029 */ StrSub(s0009, s0006, 0x00000009, 0x00000001);
/* 00004F1D: 0007 */ s000A = s000A + s0009;
/* 00004F2A: 0029 */ StrSub(s0009, s0006, 0x0000000B, 0x00000001);
/* 00004F3E: 0007 */ s000A = s000A + s0009;
/* 00004F4B: 0029 */ StrSub(s0009, s0006, 0x0000000D, 0x00000001);
/* 00004F5F: 0007 */ s000A = s000A + s0009;
/* 00004F6C: 002C */ StrToNum(n0006, s000A);
/* 00004F76: 0010 */ n000B = n0008 * n0004;
/* 00004F83: 0010 */ n000C = n0009 * n0005;
/* 00004F90: 0007 */ n000B = n000B + n000C;
/* 00004F9D: 0007 */ n000B = n000B + n000A;
/* 00004FAA: 0008 */ n000B = n000B % n0007;
/* 00004FB7: 000F */ n000B = n0006 - n000B;
/* 00004FC4: 000F */ n0000 = n000B - 0x00002710;
/* 00004FD3: 000D */ n000B = n0000 == 0x00000000;
/* 00004FE2: 0004 */ if(! n000B) goto label_0008; // normal if also, this is the bad boy jump
/* 00004FEE: 0005 */ goto label_0009; //good cracker!
thank you!
i am reversing an installshield 6.0 compiled installer, i have read many tutorials, but i am having a bit of difficulty, it seems that the protection for the serial is in the script itself -- but i really dont understand what is going on, can anyone clarify me what this code does?
/* 00004DD0: 0006 */ n0007 = 0x00015601; //a standard value?
/* 00004DDC: 0006 */ n0008 = 0x00000040;
/* 00004DE8: 0006 */ n0009 = 0x00000051;
/* 00004DF4: 0006 */ n000A = 0x0000007D;
/* 00004E00: 0029 */ StrSub(s0009, s0006, 0x00000000, 0x00000003);
/* 00004E14: 002C */ StrToNum(n0004, s0009);
/* 00004E1E: 0029 */ StrSub(s0009, s0006, 0x00000004, 0x00000001);
/* 00004E32: 0006 */ s000A = s0009;
/* 00004E3C: 0029 */ StrSub(s0009, s0006, 0x00000006, 0x00000001);
/* 00004E50: 0007 */ s000A = s000A + s0009;
/* 00004E5D: 0029 */ StrSub(s0009, s0006, 0x00000008, 0x00000001);
/* 00004E71: 0007 */ s000A = s000A + s0009;
/* 00004E7E: 0029 */ StrSub(s0009, s0006, 0x0000000A, 0x00000001);
/* 00004E92: 0007 */ s000A = s000A + s0009;
/* 00004E9F: 0029 */ StrSub(s0009, s0006, 0x0000000C, 0x00000001);
/* 00004EB3: 0007 */ s000A = s000A + s0009;
/* 00004EC0: 002C */ StrToNum(n0005, s000A);
/* 00004ECA: 0029 */ StrSub(s0009, s0006, 0x00000005, 0x00000001);
/* 00004EDE: 0006 */ s000A = s0009;
/* 00004EE8: 0029 */ StrSub(s0009, s0006, 0x00000007, 0x00000001);
/* 00004EFC: 0007 */ s000A = s000A + s0009;
/* 00004F09: 0029 */ StrSub(s0009, s0006, 0x00000009, 0x00000001);
/* 00004F1D: 0007 */ s000A = s000A + s0009;
/* 00004F2A: 0029 */ StrSub(s0009, s0006, 0x0000000B, 0x00000001);
/* 00004F3E: 0007 */ s000A = s000A + s0009;
/* 00004F4B: 0029 */ StrSub(s0009, s0006, 0x0000000D, 0x00000001);
/* 00004F5F: 0007 */ s000A = s000A + s0009;
/* 00004F6C: 002C */ StrToNum(n0006, s000A);
/* 00004F76: 0010 */ n000B = n0008 * n0004;
/* 00004F83: 0010 */ n000C = n0009 * n0005;
/* 00004F90: 0007 */ n000B = n000B + n000C;
/* 00004F9D: 0007 */ n000B = n000B + n000A;
/* 00004FAA: 0008 */ n000B = n000B % n0007;
/* 00004FB7: 000F */ n000B = n0006 - n000B;
/* 00004FC4: 000F */ n0000 = n000B - 0x00002710;
/* 00004FD3: 000D */ n000B = n0000 == 0x00000000;
/* 00004FE2: 0004 */ if(! n000B) goto label_0008; // normal if also, this is the bad boy jump
/* 00004FEE: 0005 */ goto label_0009; //good cracker!
thank you!