Welcome to Reverse Engineering Passion Team

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

d0ping

Team Cracker
  • Content count

    96
  • Joined

  • Last visited

  • Days Won

    54

d0ping last won the day on October 13

d0ping had the most liked content!

Community Reputation

268 Excellent

About d0ping

  • Rank
    TeaM RePT Reverser
  • Birthday

Recent Profile Visitors

1,726 profile views
  1. Hi, Did you test your "registered" version with some hardware? Personaly, i was not able to test it. After registration it tells me it's ok - registered: no watermarks on image, no resgistration button, mention 'registered' in about menu. But I was not able to produce some G-code: looks like this button is active for me only in trial version.
  2. Keygen is updated. Please test it and report back.
  3. Application: Bigasoft Total Video Converter App. language: English Home Page: http://www.bigasoft.com/ Packer: none Operating system: WinAll Release type: Keys/Keygen (ruby) Released at: 16/03/2017 Cracked by: d0ping / REPT Use any key provided here below: 2DBE-B5AF-72BF-3D4B-972B-064F-E15A-06F3 1EA2-37FE-2C38-70C0-167F-3DAB-1CAA-31D4 217A-850A-0DD1-70E3-FB37-951C-C062-677A FFB6-1A99-E28E-5F2E-2190-D26B-B82D-9A58 DCBB-9783-9EB4-A6E4-3257-8A78-9C60-C206 C361-1D5E-D15F-F001-515F-40EE-F66F-E1D9 01F9-4A91-9811-6F3B-3A82-9D18-24A3-FCDC 35AC-2901-0047-6743-EAC1-D71A-B854-D24C E2D0-0E24-45FF-FE7E-20AB-73FF-9EE3-F12C F1F9-6AB1-7D8F-AFF0-CD85-7D47-3C59-0AA7 977A-FEE7-4E2B-F2F2-05E3-6D94-20DB-1188 B859-EE3C-F1AF-F397-21EB-0DB9-BE27-B79E 6128-38D3-4E2B-5C8D-F5BA-2B80-6541-6C4A 1414-E00D-395D-C367-AA6C-7FD4-6E25-8C15 29C0-CF75-BA6E-5130-D80B-B592-67A5-29EE 755C-11C6-EAE8-9744-3712-0462-2074-6952 2ACC-C976-FD45-28D5-F48D-07AE-5254-BC65 6B81-E38B-3882-489B-225E-F950-6DCC-D5BD A56F-5CB2-48FD-6EF1-7E41-1358-120F-77BF 8028-23B8-C96B-565C-15C0-09B3-47C4-BFFA Keygen for it: require 'digest' def bigasoft_total_video_converteur_keygen dummy_1 = [ 0x31, 0x42, 0x01, 0x67, 0x03, 0x73, 0x05, 0x66, 0x07, 0x54, 0x09, 0x74, 0x0B, 0x6C, 0x0D, 0x56, 0x0F, 0x64, 0x11, 0x6F, 0x13, 0x43, 0x15, 0x6E, 0x17, 0x65, 0x19, 0x74, 0x1B, 0x72, 0x1D, 0x34, 0x1F, 0x69, 0x02, 0x61, 0x04, 0x6F, 0x06, 0x74, 0x08, 0x6F, 0x0A, 0x61, 0x0C, 0x20, 0x0E, 0x69, 0x10, 0x65, 0x12, 0x20, 0x14, 0x6F, 0x16, 0x76, 0x18, 0x72, 0x1A, 0x65, 0x1C, 0x20, 0x1E, 0x30, 0x30 ] k_1 = dummy_1.map(&:chr).join dummy_2 = [ 0x42, 0x69, 0x67, 0x61, 0x73, 0x6F, 0x66, 0x74, 0x54, 0x6F, 0x74, 0x61, 0x6C, 0x20, 0x56, 0x69, 0x64, 0x65, 0x6F, 0x20, 0x43, 0x6F, 0x6E, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x20, 0x34 ] k_2 = dummy_2.map(&:chr).join alphabet = ('0'..'9').to_a + ('A'..'F').to_a rnd_part = '' summ = 0 8.times do x_x = alphabet[rand(alphabet.size)] summ += x_x.ord rnd_part << x_x end rnd_part.insert(4, '-').insert(9, '-') md5_digest = Digest::MD5.hexdigest k_1 + rnd_part + k_2 md5_digest = md5_digest.chars.values_at(* md5_digest.chars.each_index.select{|i| i.even?}).join.upcase rnd_part_2 = '' 8.times do rnd_part_2 << alphabet[rand(alphabet.size)] end rnd_part_2[0] = alphabet[(summ + 0x13) % alphabet.size] rnd_part_2.insert(0, '-').insert(5, '-') rnd_part + md5_digest.scan(/..../).join('-') + rnd_part_2 end P.S.: developer of this software used the same registration scheme as in case of this target: http://team-rept.com/board2/index.php?/topic/4418-allavsoft-video-downloader-converter-v31356200/ Just simply compare the source code: the dummy constants (dummy_1 and dummy_2), generated before md5 hashing, are the only difference between these two targets. So I suppose that even shareware developers are a bad_bad rippers, indeed.
  4. some serials for it: E274-DF73-68E3-ADF1-9D3C-5F63-9C62-0E21 EBD0-C151-287B-6392-FE8F-809A-8B12-77DB 4884-9FDA-1096-C993-0ABA-E478-F56A-FA71 71BD-6738-4F1F-37B5-1FC8-7D81-90FC-4AC2 7FC8-CFFF-6C8C-CA5C-A774-0F33-027F-5062 3827-A007-906D-3869-D8D7-04A5-FEDD-8DAC BC1E-5AA4-7329-3841-6DCE-D937-9FF7-0E6F A3DB-B022-48E5-B152-1190-0D4C-3B6C-BA49 F4A3-5F73-A9C8-B632-CBD1-D6DA-62BF-912D 59EE-D533-BB18-DA74-6AE0-5A1A-A3AD-5923 350F-7F54-B278-1B50-173B-B9A5-768E-153B 01F7-DA25-F3FC-4903-35D9-1AA0-D08F-53D1 F280-A2EC-7F17-33DB-716A-2C8F-E4DE-DC8F B647-E0D8-6CED-2C14-556E-2446-724A-68F2 24D5-A23A-862E-B0ED-4EB9-319F-925B-6624 9C90-00B3-C13D-9243-547F-10AC-D32B-2097 1941-FAD4-24E5-E5C0-408A-D61F-1059-D292 76BC-55C8-AFC6-391E-F30D-D0A2-AB35-FCFF 13B9-9B0F-EA24-2957-BDB7-D1FD-3679-F0FB D4CC-C210-1D4A-869E-3EFD-E6CD-70E4-3139 and the keygen: def allavsoft_video_converteur_keygen dummy_1 = [ 0x31, 0x41, 0x01, 0x6C, 0x03, 0x76, 0x05, 0x6F, 0x07, 0x74, 0x09, 0x69, 0x0B, 0x65, 0x0D, 0x20, 0x0F, 0x6F, 0x11, 0x6E, 0x13, 0x6F, 0x15, 0x64, 0x17, 0x72, 0x19, 0x63, 0x1B, 0x6E, 0x1D, 0x65, 0x1F, 0x74, 0x21, 0x72, 0x23, 0x33, 0x25, 0x6C, 0x02, 0x61, 0x04, 0x73, 0x06, 0x66, 0x08, 0x76, 0x0A, 0x64, 0x0C, 0x6F, 0x0E, 0x64, 0x10, 0x77, 0x12, 0x6C, 0x14, 0x61, 0x16, 0x65, 0x18, 0x20, 0x1A, 0x6F, 0x1C, 0x76, 0x1E, 0x72, 0x20, 0x65, 0x22, 0x20, 0x24, 0x30, 0x30 ] k_1 = dummy_1.map(&:chr).join dummy_2 = [ 0x41, 0x6C, 0x6C, 0x61, 0x76, 0x73, 0x6F, 0x66, 0x74, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x20, 0x64, 0x6F, 0x77, 0x6E, 0x6C, 0x6F, 0x61, 0x64, 0x65, 0x72, 0x20, 0x63, 0x6F, 0x6E, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x20, 0x33 ] k_2 = dummy_2.map(&:chr).join alphabet = ('0'..'9').to_a + ('A'..'F').to_a rnd_part = '' summ = 0 8.times do x_x = alphabet[rand(alphabet.size)] summ += x_x.ord rnd_part << x_x end rnd_part.insert(4, '-').insert(9, '-') md5_digest = Digest::MD5.hexdigest k_1 + rnd_part + k_2 md5_digest = md5_digest.chars.values_at(* md5_digest.chars.each_index.select{|i| i.even?}).join.upcase rnd_part_2 = '' 8.times do rnd_part_2 << alphabet[rand(alphabet.size)] end rnd_part_2[0] = alphabet[(summ + 0x13) % alphabet.size] rnd_part_2.insert(0, '-').insert(5, '-') rnd_part + md5_digest.scan(/..../).join('-') + rnd_part_2 end
  5. Name: PicEngrave Pro 5 + Laser License: Keygen Homepage: http://www.picengrave.com/PicEngraver%20Pro%205%20+%20Laser.htm Protector: ConfuserEx v0.5.0 Cracker: d0ping/REPT PicEngrave_keygen.zip Almost 2 years after... Finally update. Name: PicEngrave Pro 6 + Laser License: Keygen Homepage: https://www.picengrave.com/PicEngrave_Pro_6_+_Laser.htm Protector: ConfuserEx v 1.0.0 Cracker: d0ping/REPT P.S. Needs some testing... PicEngrave_keygen_v_6.0.01.exe.zip
  6. Name: Wedding Album Maker Gold License: Keygen Homepage: http://www.wedding-album-maker.com/ Protector: No Cracker: d0ping/REPT wedding_album_maker_keygen_by_d0ping.zip
  7. Hi, guys. Concerning tutorial(s): in general, this target is not really interesting (registration scheme is quite short and obvious). So I don't really see any interest to write some. But all my last keygens were coded in .NET (c# lang.) and I didn't try to use any protectors. If you're interested, you can always use any .net decompiler to see the source. I'm always trying to help with understanding/tutorials by publishing the source code of keygens (in ruby). p.s.: if you want "a real pain in the ass" target, you should check this one: http://team-rept.com/board2/index.php?/topic/4041-k3ccdtools-35101081-ultimate-key/
  8. Name: ChemCraft License: Keygen Homepage: http://www.chemcraftprog.com/ Protector: Enigma Cracker: d0ping/REPT P.S.: tested on version 1.8 build 445. chemcraft_keygen_by_d0ping.zip
  9. Name: Evaer Video Recorder for Skype License: Keygen Homepage: http://www.evaer.com/ Protector: none Cracker: d0ping/REPT p.s.: was found a keygen for standard version from CZW Team, but it doesn't provide serial key for professional version. This one does. Plz, test it and report back. Keygen for Evaer Video Recorder for Skype.zip
  10. Name: QMSys' Products: QMSys GUM Enterprise is the ultimate software tool for precise and accurate analysis of the measurement uncertainty, using the two most powerful methods to calculate the measurement uncertainty - the GUM uncertainty framework and the Monte-Carlo method. QMSys GUM Professional offers fast and reliable analysis of measurement uncertainty for linear and non-linear models of the measurement process according to GUM Uncertainty Framework and validation of the results using the Monte Carlo method. QMSys GUM Standard offers the classical calculation of the measurement uncertainty for linear models of the measurement process according to GUM Uncertainty Framework. QMSys Threads, Tools, Gauges & Calibration Management is powerful and easy to use software tool for calculation of screw threads, cutting and forming taps, thread gauges, tolerances and fits for linear sizes, plain gauges and calibration management of all types of thread and plain gauges in accordance with international and national standards and guides. QMSYS Tolerances & Gauges is very useful engineering program for calculating tolerances, fits, gauges and setting ring and plug gauges according to international and national standards. QMSYS Tolerances & Fits is used to choose a standard fit and determine tolerances and deviations of machine parts. ) License: Keygen Homepage: http://qsyst.com/qualisyst_en.htm Protector: home-made obfuscation Cracker: d0ping/REPT qsys_multi_keygen.zip
  11. Name: Magic Hills' Products: Amazing Slider Amazing Carousel Amazing Audio Player ) License: Keygen Homepage: https://amazingslider.com/ Protector: PyInstaller (not obfuscated version) Cracker: d0ping/REPT Attached Filesamazing_kgn_3.5.zip
  12. I don't search for them, they find me themselves.
  13. Name: CCDStack v2 License: Keygen Homepage: http://www.ccdware.com/products/ccdstack/ Protector: none (.Net target) Cracker: d0ping/REPT ccdstack2_kgn.zip
  14. Name: WebCamScheinern License: Keygen Homepage: http://wcs.ruthner.at/index-en.php Protector: none (.Net target) Cracker: d0ping/REPT WebCamScheinern_kgn.zip
  15. Name: K3CCDTools License: Activation key Homepage: http://www.pk3.org/K3CCDTools/ Protector: tElock 0.9.8 Cracker: d0ping/REPT First public universal key for this target (till now it was not keygened). There exists only trial key from chinese team, increasing evaluation period from 35 to 255 days. Serial should work on any machine, no matter what was a request serial code. Serial: FE CC DE A8 4A A2 58 E3 FA A2 8B 04 73 9A 37 D5 17 15 F3 2E 07 7F DC B5 95 9F B2 19 B3 5E 2C C7 A8 FE 4A E1 60 61 26 A1 7A F2 05 FE 5A 1A 9D E5 C3 54 3C D0 CF 56 DF 49 28 7E 92 8B A2 13 25 CD 8F 07 3C 0C 77 92 10 A7 27 60 0C BE C0 05 F4 EC D0 A2 A4 02 16 FE 32 12 7C 12 50 1B 72 75 CD CA AD BD 8C FA D9 34 6D 49 53 E6 DB B7 86 93 11 B8 3A D9 27 65 3B 56 34 A3 FF 66 50 7D B6 1D C5 1F 76 B0 53 91 C2 CE E6 FC 0B 19 5D 72 73 9C DD 48 3E 3B BF 83 79 76 AE 1B D6 08 EA 91 85 19 6F 67 2A 63 93 9F 01 DF CF 6F E9 EE E8 D8 D1 5D E5 0C D7 59 6B 32 01 42 AF 3A 96 D5 2C EE 05 01 61 6A FD E0 E8 8E 02 DC A3 0B 48 11 15 AC 5A C4 B4 82 61 13 2E 08 50 F9 BD 63 9B C2 67 99 B0 06 16 90 B8 89 58 CA BB CC 48 88 44 EA 23 3F 17 22 B0 3A 99 3E 14 2F A1 11 1E E4 99 F0 6D BD 85 F2 F1 21 or this one: FE CC DE A8 4A A2 58 E3 FA A2 8B 04 73 9A 37 D5 17 15 F3 2E 07 7F DC B5 95 9F B2 19 B3 5E 2C C7 A8 FE 4A E1 60 61 26 A1 7A F2 05 FE 5A 1A 9D E5 C3 54 3C D0 CF 56 DF 49 28 7E 92 8B A2 13 25 CD 8F 07 3C 0C 77 92 10 A7 27 60 0C BE C0 05 F4 EC D0 A2 A4 02 16 FE 32 12 7C 12 50 1B 72 75 CD CA AD BD 8C FA D9 34 6D 49 53 E6 DB B7 86 93 11 B8 3A D9 27 65 3B 56 34 A3 FF 66 50 7D B6 1D C5 1F 76 B0 53 91 C2 CE E6 FC 0B 19 5D 72 73 9C DD 48 3E 3B BF 83 79 76 AE 1B D6 08 EA 91 85 19 6F 67 2A 63 93 9F 01 DF CF 6F E9 EE E8 D8 D1 5D E5 0C D7 59 6B 32 01 42 AF 3A 96 D5 2C EE 05 01 61 6A FD E0 E8 8E 02 DC A3 0B 48 11 15 AC 5A C4 B4 82 61 13 2E 08 50 F9 BD 63 9B C2 67 99 B0 06 16 90 B8 89 58 CA BB CC 48 88 FF B6 C9 6D C1 F1 9A D9 D2 0A 62 16 8D 3D 5B A5 99 F0 6D BD 85 F2 F1 21 Keygen for it (dear rippers keygen contains specific information which will help to detect any attempts of "stupid" ripping): def signature init_vector, check_data, offset, size # check_data - a byte array dummy = [0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D] size = check_data.size if size.nil? size.times do |i| init_vector = (init_vector >> 8) ^ dummy[(init_vector ^ check_data[offset + i]) & 0xFF] end init_vectorenddef xor_decrypt initial_vector, data, offset, size #data.size >= offset + size size.times do |i| data[offset + i] ^= initial_vector[i % initial_vector.size] endendrequire "Crypt/blowfish"def make_key license_type print_array_by_delim = Proc.new { |array, delim| output = "" counter = delim array.each do |value| output << "%02X" % value output << " " counter -= 1 if counter == 0 counter = delim output << "n" end end output + "n" } init_key = [0x00, 0x00, 0x00, 0x00, 0x95, 0xF7, 0x99, 0x52, 0x3E, 0x58, 0xE4, 0x40, 0x95, 0xF7, 0x99, 0x52, 0x3E, 0x58, 0xE4, 0x40, 0x4A, 0x07, 0xEB, 0xFF, 0x00, 0x00, 0x1F, 0x41, 0x23, 0x01, 0x00, 0x00, #DS:[00EAA215]=507904.0673028125 0x03, 0x00, 0xCF, 0x03, 0x01, 0x00, 0x95, 0xF7, 0x99, 0x52, 0x3E, 0x58, 0xE4, 0x40, 0x8A, 0xB9, 0x94, 0x55, 0x45, 0x55, 0x47, 0x45, 0x4E, 0x44, 0x4F, 0x56, 0x49, 0x43, 0x48, 0x52, 0x45, 0x44, 0x00, 0x44, 0xFD, 0xE4, 0x23, 0xF9, 0x37, 0xE1, 0xDC, 0xC4, 0xA6, 0x64, 0x02, 0x1D, 0x46, 0xA3, 0xEB, 0xAA, 0x0D, 0xA3, 0x8D, 0x5F, 0x25, 0x0B, 0x21, 0xCF, 0x85, 0x54, 0x72, 0x69, 0x61, 0x6C, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x00, 0xAD, 0x52, 0xFD, 0xE4, 0x23, 0xF9, 0x37, 0xE1, 0xDC, 0xC4, 0xA6, 0x64, 0x02, 0x1D, 0x46, 0xA3, 0xEB, 0xAA, 0x0D, 0xA3, 0x8D, 0x5F, 0x25, 0x0B, 0x21, 0xCF, 0x85, 0x9D, 0x3D, 0xA9, 0xE0, # here goes second xoring constant 0x37, 0xCA, 0xD6, 0xF4, 0x16, 0x7F, 0xDC, 0x73, 0x29, 0x0A, 0x8C, 0xAE, 0xCB, 0xE3, 0x8A, 0xC1, 0x17, 0x84, 0x3D, 0xB5, 0x75, 0x13, 0xE0, 0xB2, 0xB9, 0x41, 0x94, 0x8E, 0xA5, 0xD3, 0x57, 0x07, 0x77, 0x5D, 0xB7, 0xAC, 0xBD, 0x58, 0x48, 0x91, 0x2C, 0xDD, 0x96, 0x48, 0xCC, 0x1A, 0x7F, 0xFF, 0x87, 0x1A, 0x19, 0x0A, 0xAF, 0xB2, 0xB5, 0x9A, 0x0F, 0x62, 0x84, 0x5D, 0x91, 0x68, 0xE9, 0x30, 0x6E, 0x16, 0x7B, 0x4A, 0x27, 0x1C, 0x64, 0xC6, 0xEC, 0x29, 0x3C, 0x2B, 0xAF, 0x66, 0x57, 0xCB, 0xEA, 0x8F, 0xBD, 0xD3, 0x61, 0x86, 0xCE, 0xC3, 0x4A, 0x9E, 0xE3, 0x01, 0x24, 0x79, 0xD6, 0xF4]12.times do |i| init_key << rand(0xFF)endcase license_typewhen 'PERSONAL' init_key[0x1D] = 2 serial = installation_number.unpack("S4").reverse.pack("S4").scan(/../).map{|i| i.to_i(16)} serial.size.times do |i| init_key[i + 0x2E] = serial[i] end bruted_const_ar =[0x5800E11D, 0x5801E71A, 0x5802E51B, 0x5803E718, 0x5804E119, 0x5805EF16, 0x5806ED17, 0x5807EF14, 0x5808E115, 0x5809E712, 0x580AE513, 0x580BE710, 0x580CE111, 0x580DFF0E, 0x580EFD0F, 0x580FFF0C, 0x5810E10D, 0x5811E70A, 0x5812E50B, 0x5813E708, 0x5814E109, 0x5815EF06, 0x5816ED07, 0x5817EF04, 0x5818E105, 0x5819E702, 0x581AE503, 0x581BE700, 0x581CE101, 0x581DDF3E, 0x581EDD3F, 0x581FDF3C, 0x5820E13D, 0x5821E73A, 0x5822E53B, 0x5823E738, 0x5824E139, 0x5825EF36, 0x5826ED37, 0x5827EF34, 0x5828E135, 0x5829E732, 0x582AE533, 0x582BE730, 0x582CE131, 0x582DFF2E, 0x582EFD2F, 0x582FFF2C, 0x5830E12D, 0x5831E72A, 0x5832E52B, 0x5833E728, 0x5834E129, 0x5835EF26, 0x5836ED27, 0x5837EF24, 0x5838E125, 0x5839E722, 0x583AE523, 0x583BE720, 0x583CE121, 0x583D9F5E, 0x583E9D5F, 0x583F9F5C, 0x5840E15D, 0x5841E75A, 0x5842E55B, 0x5843E758, 0x5844E159, 0x5845EF56, 0x5846ED57, 0x5847EF54, 0x5848E155, 0x5849E752, 0x584AE553, 0x584BE750, 0x584CE151, 0x584DFF4E, 0x584EFD4F, 0x584FFF4C, 0x5850E14D, 0x5851E74A, 0x5852E54B, 0x5853E748, 0x5854E149, 0x5855EF46, 0x5856ED47, 0x5857EF44, 0x5858E145, 0x5859E742, 0x585AE543, 0x585BE740, 0x585CE141, 0x585DDF7E, 0x585EDD7F, 0x585FDF7C, 0x5860E17D, 0x5861E77A, 0x5862E57B, 0x5863E778, 0x5864E179, 0x5865EF76, 0x5866ED77, 0x5867EF74, 0x5868E175, 0x5869E772, 0x586AE573, 0x586BE770, 0x586CE171, 0x586DFF6E, 0x586EFD6F, 0x586FFF6C, 0x5870E16D, 0x5871E76A, 0x5872E56B, 0x5873E768, 0x5874E169, 0x5875EF66, 0x5876ED67, 0x5877EF64, 0x5878E165, 0x5879E762, 0x587AE563, 0x587BE760, 0x587CE161, 0x587D1F9E, 0x587E1D9F, 0x587F1F9C, 0x58FD1F1E, 0x58FE1D1F, 0x58FF1F1C] bruted_const = bruted_const_ar[rand(bruted_const_ar.size)] bruted_const &= 0x00FFFFFF bruted_const ^= 0x005A1BAF 3.times do |i| init_key[235 + 4 * i] = (bruted_const & 0xFF) ^ serial[3] bruted_const >>= 8 endwhen 'GLOBAL' init_key[0x1D] = 3 serial = [0xB3, 0x01, 0x85, 0xED] 4.times do |i| init_key[i + 0x2E] = serial[i] end bruted_const_ar =[0x5800D686, 0x5801D687, 0x5802D684, 0x5803D685, 0x5804D682, 0x5805D683, 0x5806D680, 0x5807D681, 0x5808C69E, 0x5809C69F, 0x580AC69C, 0x580BC69D, 0x580CC69A, 0x580DC69B, 0x580EC698, 0x580FC699, 0x5810D696, 0x5811D697, 0x5812D694, 0x5813D695, 0x5814D692, 0x5815D693, 0x5816D690, 0x5817D691, 0x5818A6EE, 0x5819A6EF, 0x581AA6EC, 0x581BA6ED, 0x581CA6EA, 0x581DA6EB, 0x581EA6E8, 0x581FA6E9, 0x5820D6A6, 0x5821D6A7, 0x5822D6A4, 0x5823D6A5, 0x5824D6A2, 0x5825D6A3, 0x5826D6A0, 0x5827D6A1, 0x5828C6BE, 0x5829C6BF, 0x582AC6BC, 0x582BC6BD, 0x582CC6BA, 0x582DC6BB, 0x582EC6B8, 0x582FC6B9, 0x5830D6B6, 0x5831D6B7, 0x5832D6B4, 0x5833D6B5, 0x5834D6B2, 0x5835D6B3, 0x5836D6B0, 0x5837D6B1, 0x5838E68E, 0x5839E68F, 0x583AE68C, 0x583BE68D, 0x583CE68A, 0x583DE68B, 0x583EE688, 0x583FE689, 0x5858A6AE, 0x5859A6AF, 0x585AA6AC, 0x585BA6AD, 0x585CA6AA, 0x585DA6AB, 0x585EA6A8, 0x585FA6A9, 0x5880D606, 0x5881D607, 0x5882D604, 0x5883D605, 0x5884D602, 0x5885D603, 0x5886D600, 0x5887D601, 0x5888C61E, 0x5889C61F, 0x588AC61C, 0x588BC61D, 0x588CC61A, 0x588DC61B, 0x588EC618, 0x588FC619, 0x5890D616, 0x5891D617, 0x5892D614, 0x5893D615, 0x5894D612, 0x5895D613, 0x5896D610, 0x5897D611, 0x5898A66E, 0x5899A66F, 0x589AA66C, 0x589BA66D, 0x589CA66A, 0x589DA66B, 0x589EA668, 0x589FA669, 0x58A0D626, 0x58A1D627, 0x58A2D624, 0x58A3D625, 0x58A4D622, 0x58A5D623, 0x58A6D620, 0x58A7D621, 0x58A8C63E, 0x58A9C63F, 0x58AAC63C, 0x58ABC63D, 0x58ACC63A, 0x58ADC63B, 0x58AEC638, 0x58AFC639, 0x58B0D636, 0x58B1D637, 0x58B2D634, 0x58B3D635, 0x58B4D632, 0x58B5D633, 0x58B6D630, 0x58B7D631, 0x58B8E60E, 0x58B9E60F, 0x58BAE60C, 0x58BBE60D, 0x58BCE60A, 0x58BDE60B, 0x58BEE608, 0x58BFE609, 0x58C056C6, 0x58C156C7, 0x58C256C4, 0x58C356C5, 0x58C456C2, 0x58C556C3, 0x58C656C0, 0x58C756C1, 0x58C846DE, 0x58C946DF, 0x58CA46DC, 0x58CB46DD, 0x58CC46DA, 0x58CD46DB, 0x58CE46D8, 0x58CF46D9, 0x58D056D6, 0x58D156D7, 0x58D256D4, 0x58D356D5, 0x58D456D2, 0x58D556D3, 0x58D656D0, 0x58D756D1, 0x58D8A62E, 0x58D9A62F, 0x58DAA62C, 0x58DBA62D, 0x58DCA62A, 0x58DDA62B, 0x58DEA628, 0x58DFA629, 0x58E056E6, 0x58E156E7, 0x58E256E4, 0x58E356E5, 0x58E456E2, 0x58E556E3, 0x58E656E0, 0x58E756E1, 0x58E846FE, 0x58E946FF, 0x58EA46FC, 0x58EB46FD, 0x58EC46FA, 0x58ED46FB, 0x58EE46F8, 0x58EF46F9, 0x58F056F6, 0x58F156F7, 0x58F256F4, 0x58F356F5, 0x58F456F2, 0x58F556F3, 0x58F656F0, 0x58F756F1, 0x58F866CE, 0x58F966CF, 0x58FA66CC, 0x58FB66CD, 0x58FC66CA, 0x58FD66CB, 0x58FE66C8, 0x58FF66C9] bruted_const = bruted_const_ar[rand(bruted_const_ar.size)] bruted_const &= 0x00FFFFFF bruted_const ^= 0x005A1BAF 3.times do |i| init_key[235 + 4 * i] = (bruted_const & 0xFF) bruted_const >>= 8 endendtitle_string = 'from France with L0v3!'title_string_array = title_string.chars + [0]title_string_array.size.times do |i| init_key[i + 50] = title_string_array[i].ordend sign = signature 0xCE6FA8EF, init_key, 0x88, 0x6Cadd_array_1 = ("%08X" % sign).scan(/../).reverse.map{|i| i.to_i(16)}init_key += add_array_1init_vector = init_key[0x84, 4] # offset and size taken from main software!!!xor_decrypt init_vector, init_key, 0x88, 0x70sign = signature 0x1A267C47, init_key, 0, 0xF8add_array_2 = ("%08X" % sign).scan(/../).reverse.map{|i| i.to_i(16)}xor_decrypt add_array_2, init_key, 0, 0xF8init_key += add_array_2init_key += [04, 04, 04, 04]blowfish_key_array = [0xAC, 0x2D, 0x6B, 0x8C, 0x17, 0xB1, 0xA0, 0xD7, 0x42, 0x10, 0xA8, 0x90, 0xB3, 0xF4, 0x7E, 0xDF]blowfish_key = blowfish_key_array.map(&:chr).joinbf = Crypt::Blowfish.new(blowfish_key) encrypted_array = [](init_key.size / 8).times do |i| block = init_key[i * 8, 8].reverse.pack("C8").unpack("L2").reverse.pack("L2") encryptedBlock = bf.encrypt_block(block) encrypted_array += encryptedBlock.unpack("L2").reverse.pack("L2").unpack("C8").reverseendprint_array_by_delim.call(encrypted_array, 0x10)endprint make_key 'GLOBAL' Have fun!