Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

second commit, just same epycs code as in zip files

  • Loading branch information...
commit efd6621ae0cedbcc7eeb7f048a47916566cdefdf 1 parent a52aaa9
Efim Bushmanov authored
Showing with 39,672 additions and 0 deletions.
  1. +129 −0 binaries/release_skydumpcred2/_log.txt
  2. +2 −0  binaries/release_skydumpcred2/_run.bat
  3. +1 −0  binaries/release_skydumpcred2/a_cred.txt
  4. BIN  binaries/release_skydumpcred2/skydumpcred2.exe
  5. +3,148 −0 binaries/release_skypkt/_log.txt
  6. +1 −0  binaries/release_skypkt/_post_msg.bat
  7. +5 −0 binaries/release_skypkt/a_msg.txt
  8. BIN  binaries/release_skypkt/skypkt.exe
  9. +30 −0 readme.txt
  10. +2 −0  sources/skydumpcred2/Release/_run.bat
  11. BIN  sources/skydumpcred2/Release/skydumpcred2.exe
  12. BIN  sources/skydumpcred2/Release/skydumpcred2.pdb
  13. +20 −0 sources/skydumpcred2/skydumpcred2.sln
  14. BIN  sources/skydumpcred2/skydumpcred2.suo
  15. +5 −0 sources/skydumpcred2/skydumpcred2/Debug/skydumpcred2.log
  16. BIN  sources/skydumpcred2/skydumpcred2/Release/CL.read.1.tlog
  17. BIN  sources/skydumpcred2/skydumpcred2/Release/CL.write.1.tlog
  18. BIN  sources/skydumpcred2/skydumpcred2/Release/cl.command.1.tlog
  19. BIN  sources/skydumpcred2/skydumpcred2/Release/common.obj
  20. BIN  sources/skydumpcred2/skydumpcred2/Release/crc32.obj
  21. BIN  sources/skydumpcred2/skydumpcred2/Release/link.command.1.tlog
  22. BIN  sources/skydumpcred2/skydumpcred2/Release/link.read.1.tlog
  23. BIN  sources/skydumpcred2/skydumpcred2/Release/link.write.1.tlog
  24. BIN  sources/skydumpcred2/skydumpcred2/Release/md5.obj
  25. BIN  sources/skydumpcred2/skydumpcred2/Release/mraes.obj
  26. BIN  sources/skydumpcred2/skydumpcred2/Release/mralloc.obj
  27. BIN  sources/skydumpcred2/skydumpcred2/Release/mrarth0.obj
  28. BIN  sources/skydumpcred2/skydumpcred2/Release/mrarth1.obj
  29. BIN  sources/skydumpcred2/skydumpcred2/Release/mrarth2.obj
  30. BIN  sources/skydumpcred2/skydumpcred2/Release/mrarth3.obj
  31. BIN  sources/skydumpcred2/skydumpcred2/Release/mrbits.obj
  32. BIN  sources/skydumpcred2/skydumpcred2/Release/mrbrick.obj
  33. BIN  sources/skydumpcred2/skydumpcred2/Release/mrbuild.obj
  34. BIN  sources/skydumpcred2/skydumpcred2/Release/mrcore.obj
  35. BIN  sources/skydumpcred2/skydumpcred2/Release/mrcrt.obj
  36. BIN  sources/skydumpcred2/skydumpcred2/Release/mrcurve.obj
  37. BIN  sources/skydumpcred2/skydumpcred2/Release/mrdouble.obj
  38. BIN  sources/skydumpcred2/skydumpcred2/Release/mrebrick.obj
  39. BIN  sources/skydumpcred2/skydumpcred2/Release/mrec2m.obj
  40. BIN  sources/skydumpcred2/skydumpcred2/Release/mrecn2.obj
  41. BIN  sources/skydumpcred2/skydumpcred2/Release/mrfast.obj
  42. BIN  sources/skydumpcred2/skydumpcred2/Release/mrflash.obj
  43. BIN  sources/skydumpcred2/skydumpcred2/Release/mrflsh1.obj
  44. BIN  sources/skydumpcred2/skydumpcred2/Release/mrflsh2.obj
  45. BIN  sources/skydumpcred2/skydumpcred2/Release/mrflsh3.obj
  46. BIN  sources/skydumpcred2/skydumpcred2/Release/mrflsh4.obj
  47. BIN  sources/skydumpcred2/skydumpcred2/Release/mrfrnd.obj
  48. BIN  sources/skydumpcred2/skydumpcred2/Release/mrgcd.obj
  49. BIN  sources/skydumpcred2/skydumpcred2/Release/mrgcm.obj
  50. BIN  sources/skydumpcred2/skydumpcred2/Release/mrgf2m.obj
  51. BIN  sources/skydumpcred2/skydumpcred2/Release/mrio1.obj
  52. BIN  sources/skydumpcred2/skydumpcred2/Release/mrio2.obj
  53. BIN  sources/skydumpcred2/skydumpcred2/Release/mrjack.obj
  54. BIN  sources/skydumpcred2/skydumpcred2/Release/mrlucas.obj
  55. BIN  sources/skydumpcred2/skydumpcred2/Release/mrmonty.obj
  56. BIN  sources/skydumpcred2/skydumpcred2/Release/mrmuldv.obj
  57. BIN  sources/skydumpcred2/skydumpcred2/Release/mrpi.obj
  58. BIN  sources/skydumpcred2/skydumpcred2/Release/mrpower.obj
  59. BIN  sources/skydumpcred2/skydumpcred2/Release/mrprime.obj
  60. BIN  sources/skydumpcred2/skydumpcred2/Release/mrrand.obj
  61. BIN  sources/skydumpcred2/skydumpcred2/Release/mrround.obj
  62. BIN  sources/skydumpcred2/skydumpcred2/Release/mrscrt.obj
  63. BIN  sources/skydumpcred2/skydumpcred2/Release/mrshs.obj
  64. BIN  sources/skydumpcred2/skydumpcred2/Release/mrshs256.obj
  65. BIN  sources/skydumpcred2/skydumpcred2/Release/mrshs512.obj
  66. BIN  sources/skydumpcred2/skydumpcred2/Release/mrsmall.obj
  67. BIN  sources/skydumpcred2/skydumpcred2/Release/mrsroot.obj
  68. BIN  sources/skydumpcred2/skydumpcred2/Release/mrstrong.obj
  69. BIN  sources/skydumpcred2/skydumpcred2/Release/mrxgcd.obj
  70. BIN  sources/skydumpcred2/skydumpcred2/Release/mrzzn2.obj
  71. BIN  sources/skydumpcred2/skydumpcred2/Release/mrzzn2b.obj
  72. BIN  sources/skydumpcred2/skydumpcred2/Release/mrzzn3.obj
  73. BIN  sources/skydumpcred2/skydumpcred2/Release/mt.command.1.tlog
  74. BIN  sources/skydumpcred2/skydumpcred2/Release/mt.read.1.tlog
  75. BIN  sources/skydumpcred2/skydumpcred2/Release/mt.write.1.tlog
  76. BIN  sources/skydumpcred2/skydumpcred2/Release/rijndael.obj
  77. BIN  sources/skydumpcred2/skydumpcred2/Release/sha.obj
  78. +68 −0 sources/skydumpcred2/skydumpcred2/Release/skydumpcred2.Build.CppClean.log
  79. +10 −0 sources/skydumpcred2/skydumpcred2/Release/skydumpcred2.exe.intermediate.manifest
  80. +2 −0  sources/skydumpcred2/skydumpcred2/Release/skydumpcred2.lastbuildstate
  81. +168 −0 sources/skydumpcred2/skydumpcred2/Release/skydumpcred2.log
  82. BIN  sources/skydumpcred2/skydumpcred2/Release/skylogin.obj
  83. BIN  sources/skydumpcred2/skydumpcred2/Release/skype_cred.obj
  84. BIN  sources/skydumpcred2/skydumpcred2/Release/vc100.pdb
  85. +261 −0 sources/skydumpcred2/skydumpcred2/SkypeControl/skype_basics.h
  86. +90 −0 sources/skydumpcred2/skydumpcred2/common.c
  87. +19 −0 sources/skydumpcred2/skydumpcred2/common.h
  88. +45 −0 sources/skydumpcred2/skydumpcred2/crypto/crc32/crc32.c
  89. +1 −0  sources/skydumpcred2/skydumpcred2/crypto/crc32/crc32.h
  90. +502 −0 sources/skydumpcred2/skydumpcred2/crypto/crypto.h
  91. +286 −0 sources/skydumpcred2/skydumpcred2/crypto/md5/md5.c
  92. +66 −0 sources/skydumpcred2/skydumpcred2/crypto/md5/md5.h
  93. +1,480 −0 sources/skydumpcred2/skydumpcred2/crypto/miracl/miracl.h
  94. +31 −0 sources/skydumpcred2/skydumpcred2/crypto/miracl/mirdef.h
  95. +801 −0 sources/skydumpcred2/skydumpcred2/crypto/rijndael/rijndael.c
  96. +11 −0 sources/skydumpcred2/skydumpcred2/crypto/rijndael/rijndael.h
  97. +143 −0 sources/skydumpcred2/skydumpcred2/crypto/sha1/sha.c
  98. +82 −0 sources/skydumpcred2/skydumpcred2/crypto/sha1/sha.h
  99. +7 −0 sources/skydumpcred2/skydumpcred2/crypto/sha1/sha1.h
  100. +970 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mraes.c
  101. +53 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mralloc.c
  102. +287 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrarth0.c
  103. +1,037 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrarth1.c
  104. +1,551 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrarth2.c
  105. +199 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrarth3.c
  106. +213 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrbits.c
  107. +187 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrbrick.c
  108. +144 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrbuild.c
  109. +2,253 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrcore.c
  110. +117 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrcrt.c
  111. +2,468 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrcurve.c
  112. +137 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrdouble.c
  113. +230 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrebrick.c
  114. +2,015 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrec2m.c
  115. +3,298 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrecn2.c
  116. +1,317 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrfast.c
  117. +308 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrflash.c
  118. +194 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrflsh1.c
  119. +197 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrflsh2.c
  120. +290 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrflsh3.c
  121. +124 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrflsh4.c
  122. +49 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrfrnd.c
  123. +131 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrgcd.c
  124. +262 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrgcm.c
  125. +3,267 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrgf2m.c
  126. +471 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrio1.c
  127. +183 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrio2.c
  128. +310 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrjack.c
  129. +125 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrlucas.c
  130. +1,381 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrmonty.c
  131. +57 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrmuldv.c
  132. +66 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrpi.c
  133. +592 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrpower.c
  134. +346 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrprime.c
  135. +78 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrrand.c
  136. +186 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrround.c
  137. +230 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrscrt.c
  138. +156 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrshs.c
  139. +143 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrshs256.c
  140. +283 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrshs512.c
  141. +206 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrsmall.c
  142. +155 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrsroot.c
  143. +204 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrstrong.c
  144. +463 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrxgcd.c
  145. +618 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrzzn2.c
  146. +231 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrzzn2b.c
  147. +439 −0 sources/skydumpcred2/skydumpcred2/miracl_lib/mrzzn3.c
  148. +146 −0 sources/skydumpcred2/skydumpcred2/skydumpcred2.vcxproj
  149. +204 −0 sources/skydumpcred2/skydumpcred2/skydumpcred2.vcxproj.filters
  150. +3 −0  sources/skydumpcred2/skydumpcred2/skydumpcred2.vcxproj.user
  151. +76 −0 sources/skydumpcred2/skydumpcred2/skylogin.c
  152. +324 −0 sources/skydumpcred2/skydumpcred2/skype_cred.c
  153. +1 −0  sources/skydumpcred2/skydumpcred2/skype_cred.h
  154. +2,759 −0 sources/skypkt/Expand_IV.c
  155. +154 −0 sources/skypkt/Expand_IV.h
  156. +174 −0 sources/skypkt/Process_IV.h
  157. +1 −0  sources/skypkt/Release/_post_msg.bat
  158. BIN  sources/skypkt/Release/skypkt.exe
  159. +193 −0 sources/skypkt/blob1.c
Sorry, we could not display the entire diff because it was too big.
View
129 binaries/release_skydumpcred2/_log.txt
@@ -0,0 +1,129 @@
+This is your Token from registry:
+24 bytes:
+
+0000: 64 5D A4 50 0B A2 0D E9 E1 95 55 2C B4 E8 0A CC | d].P......U,.... |
+0010: 80 5D ED 9A E3 2A AB 55 | .]...*.U |
+0020:
+
+SHA1 key for Token:
+32 bytes:
+
+0000: BF D3 D0 05 B6 3C FE E8 44 6F 25 C8 62 65 25 83 | .....<..Do%.be%. |
+0010: B3 AC 69 EE 37 70 F0 5C D4 C5 AA FB 20 16 B5 C7 | ..i.7p.\.... ... |
+0020:
+
+Credentials after AES decrypt:
+602 bytes:
+
+0000: FC 9D 77 E4 A7 40 93 D5 75 A4 C3 FA 27 4A 4B 6A | ..w..@..u...'JKj |
+0010: 7E EA 80 8E 73 77 15 59 60 67 54 5F 0A 9C A2 15 | ~...sw.Y`gT_.... |
+0020: 69 88 8E FE 96 D8 85 F6 E7 B4 AA 8D 00 C6 58 E1 | i.............X. |
+0030: 0A EE C2 21 C6 D3 AB 1B ED 13 35 89 57 AB B3 60 | ...!......5.W..` |
+0040: 04 3B 7D 6C AD D8 AC 27 9C DC B3 93 46 54 1A 43 | .;}l...'....FT.C |
+0050: 93 12 29 F4 0D F4 79 5C 03 96 84 62 64 D8 88 65 | ..)...y\...bd..e |
+0060: 1E AF 02 CD DE EA BB 03 BE F8 9C 6D 15 8E 6D 1A | ...........m..m. |
+0070: B0 B3 F7 98 80 49 4A 1F 5B BB A2 EF CB AE 86 4B | .....IJ.[......K |
+0080: ED 5B F9 CC 0E 0B 1D E3 A2 FA 85 77 06 A7 0A BB | .[.........w.... |
+0090: A7 A5 B2 5C 92 DD AC 79 B7 B6 91 C9 32 27 8D 0D | ...\...y....2'.. |
+00A0: D2 2F 4A 53 D0 16 76 8C 63 47 D1 F1 27 D6 78 92 | ./JS..v.cG..'.x. |
+00B0: 8D 0C AA A8 95 D6 34 6E E0 24 73 74 EC 6C A0 D3 | ......4n.$st.l.. |
+00C0: 2E 93 6A AE BA 67 DD 59 9F 30 80 2A 37 8D E1 AB | ..j..g.Y.0.*7... |
+00D0: F8 C5 95 EE 89 FD 90 A5 5A AF C5 85 91 79 E4 29 | ........Z....y.) |
+00E0: 64 86 AA D3 94 9C D8 CE 34 37 47 96 D6 64 D9 A0 | d.......47G..d.. |
+00F0: D2 FC 99 15 8B B8 3A 0B 38 34 DB 18 A2 7B 83 BD | ......:.84...{.. |
+0100: 47 F2 9E A9 7F 41 DC 40 76 AA 90 D1 F2 2B 00 A6 | G....A.@v....+.. |
+0110: 7E 41 CB 20 50 9B B7 3F BE FF 1F B7 6F F7 6A 76 | ~A. P..?....o.jv |
+0120: A2 C8 65 31 23 C6 4A B3 BB F3 81 E6 2B D1 45 6D | ..e1#.J.....+.Em |
+0130: 5C 55 3F 37 5C B4 B4 B2 86 8F DD 7B 8F B4 D5 FD | \U?7\......{.... |
+0140: 39 47 7E A3 85 D4 8E 62 EA D3 5B 9A 1F B0 C3 CD | 9G~....b..[..... |
+0150: C3 DF FA 00 39 7C 9E A1 18 68 B3 28 6C 64 29 03 | ....9|...h.(ld). |
+0160: B9 43 71 04 0E 84 60 7A C2 B8 7F AB 25 78 9D BE | .Cq...`z....%x.. |
+0170: 32 4B 3A 41 D8 44 68 9C 69 43 A4 7C 9E 85 7F 30 | 2K:A.Dh.iC.|...0 |
+0180: 73 83 19 5E D8 21 A7 FA 84 F8 99 36 7C CD 48 D1 | s..^.!.....6|.H. |
+0190: 55 14 7E 49 EC 42 05 4A 13 89 19 A1 60 03 D3 36 | U.~I.B.J....`..6 |
+01A0: B2 4E 23 B0 E2 75 77 1A 09 82 77 ED 05 52 6D 6F | .N#..uw...w..Rmo |
+01B0: C0 1C 4E AC FA 72 0C 29 A2 AD 65 44 7E 98 2A 09 | ..N..r.)..eD~.*. |
+01C0: 69 EF 4F 7E 12 39 00 C0 C2 F4 44 E1 CD 78 E4 7F | i.O~.9....D..x.. |
+01D0: 1D 0D AA 34 21 6C E7 68 5E DE 87 A4 BE 6E 6B DB | ...4!l.h^....nk. |
+01E0: A3 D5 0D 1C BE B1 DA 2F 25 6E 3C 9E 2E 73 98 57 | ......./%n<..s.W |
+01F0: 51 C4 8A EE 01 AB 4A 66 EB 44 B5 E0 A2 2B 4F CA | Q.....Jf.D...+O. |
+0200: 77 1B EA 7B C9 BE 86 09 AC A4 E1 65 1C 89 B5 8A | w..{.......e.... |
+0210: E3 6D 7C E7 44 A5 38 7C B7 8C 23 49 F5 7E 63 7F | .m|.D.8|..#I.~c. |
+0220: 85 AD 6C EE 1D 22 A0 D3 E5 FC 4A 37 F1 BB BB AF | ..l.."....J7.... |
+0230: 36 C2 AB 52 96 DA FE AA 07 DD 96 A0 8A 52 03 8A | 6..R.........R.. |
+0240: 98 FD 5A F9 6F CE F8 F2 28 E9 FF 51 0E 51 5D 6C | ..Z.o...(..Q.Q]l |
+0250: B2 52 6E 1E 36 B5 CE FD F9 49 | .Rn.6....I |
+0260:
+
+Credentials after Fasttrack decode:
+602 bytes:
+
+0000: FC 9D 77 E4 A7 40 93 D5 75 A4 C3 FA 27 4A 4B 6A | ..w..@..u...'JKj |
+0010: 00 00 01 40 FE CF 73 80 68 BF AB A5 04 64 CA 95 | ...@..s.h....d.. |
+0020: C3 D5 1C E5 9A 8C 33 9C D7 54 CA 2D 79 06 23 51 | ......3..T.-y.#Q |
+0030: 9B 4A 58 69 5E EA FB 94 84 4F 60 ED DA 3D 5B C0 | .JXi^....O`..=[. |
+0040: 1E 81 F9 E7 35 9E 41 AE 3B 03 9C 2E 43 54 1E 51 | ....5.A.;...CT.Q |
+0050: A7 D7 F9 03 C5 94 72 E9 3E 0F 6C 54 AD A3 F7 FD | ......r.>.lT.... |
+0060: 9F AF C3 26 3B B6 AC FB 30 B5 C7 8D 8D FA FD 1D | ...&;...0....... |
+0070: BD 1D 65 10 DE B1 EA 2D E3 86 CF 2B 74 9F A1 AE | ..e....-...+t... |
+0080: 16 57 59 D5 07 CB 9E 4F EE E3 C5 39 C5 61 14 62 | .WY....O...9.a.b |
+0090: 95 9E 2D DB 5B D5 8D F0 4F 45 F2 08 24 27 EB 12 | ..-.[...OE..$'.. |
+00A0: C1 17 8C 98 98 C1 FF B9 5B 6B D2 57 E2 8F 42 63 | ........[k.W..Bc |
+00B0: AF C8 AA F3 35 03 99 B8 E8 47 6B 4F C8 84 ED 2E | ....5....GkO.... |
+00C0: 90 C8 4A 36 AB 26 52 E7 0E 59 18 CE B0 C2 1C 7A | ..J6.&R..Y.....z |
+00D0: 31 D8 99 AB 23 20 E0 70 84 80 60 1E 78 D3 98 66 | 1...# .p..`.x..f |
+00E0: 3B 40 47 22 94 42 DD DE B2 84 FA F6 77 E7 D3 B8 | ;@G".B......w... |
+00F0: AD 6A FB 73 53 65 9B D7 66 C2 36 BF B3 C5 9F BF | .j.sSe..f.6..... |
+0100: 85 B5 2F 89 A3 87 B4 D0 5B 4C 6D 1C A7 A5 92 24 | ../.....[Lm....$ |
+0110: 79 BA 39 97 17 50 35 E2 E9 AC BE 36 9B AA 8E 57 | y.9..P5....6...W |
+0120: 81 E1 26 60 BB 89 09 8E 36 28 2C DC BA 15 14 8A | ..&`....6(,..... |
+0130: CE C6 CA 27 1C 6F D7 D7 04 52 E2 DD 18 CC C1 32 | ...'.o...R.....2 |
+0140: 1E 76 BE 25 D1 DE A7 D6 7C B4 A9 8F F0 87 4C F5 | .v.%....|.....L. |
+0150: 78 FC 0A 23 00 00 00 01 90 40 BD D8 C6 D9 54 4C | x..#.....@....TL |
+0160: 66 E2 E4 A6 55 40 DC 57 E7 E4 C7 8F 93 CA BD 38 | f...U@.W.......8 |
+0170: B8 A0 8F 3F 0C 1E F4 C8 92 82 87 E9 17 1D 09 CD | ...?............ |
+0180: B9 BB 60 3E FC A9 0E 86 87 7D 25 BD A4 70 2C 2A | ..`>.....}%..p,* |
+0190: 26 B2 1F C4 31 1F CB A9 4A BC 46 87 5D 2D 3B 65 | &...1...J.F.]-;e |
+01A0: 63 60 53 E9 B1 EE DE 0B EC 2F F4 27 F6 CD 25 B0 | c`S....../.'..%. |
+01B0: 96 91 10 3A B4 D5 B9 63 AD A4 0B D6 05 FA 69 EF | ...:...c......i. |
+01C0: 22 D4 86 7D A5 44 81 39 AE 63 25 5C 9F 2E A6 EA | "..}.D.9.c%\.... |
+01D0: 63 59 C8 88 6D F5 3C 4D 2F 1C 4E 86 1F BD ED B3 | cY..m.<M/.N..... |
+01E0: 5B 45 2D B1 F5 5C D8 F3 06 6B 4F 05 C5 EC C0 CA | [E-..\...kO..... |
+01F0: F5 EF E4 10 29 65 9D CF 2F 99 00 9B 1C F0 74 6E | ....)e../.....tn |
+0200: 70 C1 B7 FF FE 5A 8C F7 29 11 45 9D 7D 7A AF 1A | p....Z..).E.}z.. |
+0210: 0F D1 AD D1 25 B8 75 D5 81 5B 61 E9 7D EE 1B FA | ....%.u..[a.}... |
+0220: 96 E8 DF 7C D2 BA 21 EC 13 A2 E6 F3 F0 3C 18 87 | ...|..!......<.. |
+0230: D2 F0 89 49 09 43 15 38 E4 F8 DA 4E EF 94 DC 9A | ...I.C.8...N.... |
+0240: 87 8B FB 42 FF B7 A5 EE EF 5F F4 1A C9 1B C1 5B | ...B....._.....[ |
+0250: 38 7D 27 21 81 26 A2 8D F9 49 | 8}'!.&...I |
+0260:
+
+Credentials SHA-1 = 20 bytes:
+
+0000: 08 CA DA 7E 24 2C 84 49 CB F8 52 11 84 06 36 AC | ...~$,.I..R...6. |
+0010: 11 5A A6 3E | .Z.> |
+0020:
+
+Valid Credentials!
+Decrypted credentials:
+256 bytes:
+
+0000: 4B BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB | K............... |
+0010: BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB | ................ |
+0020: BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB | ................ |
+0030: BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB | ................ |
+0040: BA 41 05 03 00 74 68 65 6D 61 67 69 63 66 6F 72 | .A...themagicfor |
+0050: 79 6F 75 00 00 03 00 04 01 80 01 C4 A9 66 31 20 | you..........f1 |
+0060: DC F4 5E 94 30 D6 6B 6D 38 F3 B9 AE 5D 87 FA 5E | ..^.0.km8...]..^ |
+0070: 63 1B 4C 93 87 DC 8A B4 6B E6 B4 58 CB DD DA E7 | c.L.....k..X.... |
+0080: 42 E9 B9 10 6E 68 6B 92 A5 CD 0F D7 7B C8 DB 43 | B...nhk.....{..C |
+0090: 31 D9 87 8C 18 AF 49 CF 23 BC AF 95 0F C1 BC A8 | 1.....I.#....... |
+00A0: 25 83 52 C0 C0 1B 38 16 45 AA 21 E6 36 4C DC 49 | %.R...8.E.!.6L.I |
+00B0: 84 0B 2A 22 30 58 F8 45 5C 9B 1B 4A A8 5E F4 81 | ..*"0X.E\..J.^.. |
+00C0: F9 3F AD 61 3B BE B0 9C 12 C9 39 6F F4 E2 01 45 | .?.a;.....9o...E |
+00D0: 52 C9 78 68 A5 24 BB FB 61 8C 91 00 04 8F D1 B8 | R.xh.$..a....... |
+00E0: 0A 05 02 41 01 00 09 8F D1 B8 0A 7E DA CA 08 49 | ...A.......~...I |
+00F0: 84 2C 24 11 52 F8 CB AC 36 06 84 3E A6 5A 11 BC | .,$.R...6..>.Z.. |
+0100:
+
+Credentials written to file a_cred.txt
View
2  binaries/release_skydumpcred2/_run.bat
@@ -0,0 +1,2 @@
+skydumpcred2.exe -u themagicforyou -f a_cred.txt > _log.txt
+
View
1  binaries/release_skydumpcred2/a_cred.txt
@@ -0,0 +1 @@
+themagicforyou:skypepass:FirstNameAndLastName:my@email.com:4.1.0.179:000000019040BDD8C6D9544C66E2E4A65540DC57E7E4C78F93CABD38B8A08F3F0C1EF4C8928287E9171D09CDB9BB603EFCA90E86877D25BDA4702C2A26B21FC4311FCBA94ABC46875D2D3B65636053E9B1EEDE0BEC2FF427F6CD25B09691103AB4D5B963ADA40BD605FA69EF22D4867DA5448139AE63255C9F2EA6EA6359C8886DF53C4D2F1C4E861FBDEDB35B452DB1F55CD8F3066B4F05C5ECC0CAF5EFE41029659DCF2F99009B1CF0746E70C1B7FFFE5A8CF72911459D7D7AAF1A0FD1ADD125B875D5815B61E97DEE1BFA96E8DF7CD2BA21EC13A2E6F3F03C1887D2F0894909431538E4F8DA4EEF94DC9A878BFB42FFB7A5EEEF5FF41AC91BC15B387D27218126A28D:A7D7F903.43541E51.3B039C2E.359E41AE.1E81F9E7.DA3D5BC0.844F60ED.5EEAFB94.9B4A5869.79062351.D754CA2D.9A8C339C.C3D51CE5.0464CA95.68BFABA5.FECF7380:959E2DDB.C5611462.EEE3C539.07CB9E4F.165759D5.749FA1AE.E386CF2B.DEB1EA2D.BD1D6510.8DFAFD1D.30B5C78D.3BB6ACFB.9FAFC326.ADA3F7FD.3E0F6C54.C59472E9
View
BIN  binaries/release_skydumpcred2/skydumpcred2.exe
Binary file not shown
View
3,148 binaries/release_skypkt/_log.txt
3,148 additions, 0 deletions not shown
View
1  binaries/release_skypkt/_post_msg.bat
@@ -0,0 +1 @@
+skypkt.exe themagicforyou:skypepass:FirstNameAndLastName:my@email.com:4.1.0.179:000000019040BDD8C6D9544C66E2E4A65540DC57E7E4C78F93CABD38B8A08F3F0C1EF4C8928287E9171D09CDB9BB603EFCA90E86877D25BDA4702C2A26B21FC4311FCBA94ABC46875D2D3B65636053E9B1EEDE0BEC2FF427F6CD25B09691103AB4D5B963ADA40BD605FA69EF22D4867DA5448139AE63255C9F2EA6EA6359C8886DF53C4D2F1C4E861FBDEDB35B452DB1F55CD8F3066B4F05C5ECC0CAF5EFE41029659DCF2F99009B1CF0746E70C1B7FFFE5A8CF72911459D7D7AAF1A0FD1ADD125B875D5815B61E97DEE1BFA96E8DF7CD2BA21EC13A2E6F3F03C1887D2F0894909431538E4F8DA4EEF94DC9A878BFB42FFB7A5EEEF5FF41AC91BC15B387D27218126A28D:A7D7F903.43541E51.3B039C2E.359E41AE.1E81F9E7.DA3D5BC0.844F60ED.5EEAFB94.9B4A5869.79062351.D754CA2D.9A8C339C.C3D51CE5.0464CA95.68BFABA5.FECF7380:959E2DDB.C5611462.EEE3C539.07CB9E4F.165759D5.749FA1AE.E386CF2B.DEB1EA2D.BD1D6510.8DFAFD1D.30B5C78D.3BB6ACFB.9FAFC326.ADA3F7FD.3E0F6C54.C59472E9 kolomblog:192.168.1.75:57608 > _log.txt
View
5 binaries/release_skypkt/a_msg.txt
@@ -0,0 +1,5 @@
+Hello,
+
+This is a first alternative skype client message.
+
+Thank you.
View
BIN  binaries/release_skypkt/skypkt.exe
Binary file not shown
View
30 readme.txt
@@ -0,0 +1,30 @@
+
+ Epycs - Reverse engineered Skype
+
+ .:: Readme ::.
+
+Some restrictions:
+
+1) Its only work for once message.
+After it, you need empty you
+"%%appdata%%/skype/<skypename>"
+directory or use another credentials.
+Worked with latest 3.8 and 4.2(?)
+
+2) You need to know port on which skype is listening
+and skypename which active on this.
+Format is:
+skypename:skypeIP:skypePORT
+Example:
+kolomblog:192.168.1.75:57608
+
+3)
+For restore and getting you credentials
+you need login first with skype with "save password" option,
+Also known as "Sign me in when skype starts".
+
+
+
+Thats all.
+
+Thanks to dose for amazing work on skydumpcred.
View
2  sources/skydumpcred2/Release/_run.bat
@@ -0,0 +1,2 @@
+skydumpcred2.exe -u themagicforyou -f a_cred.txt > _log.txt
+
View
BIN  sources/skydumpcred2/Release/skydumpcred2.exe
Binary file not shown
View
BIN  sources/skydumpcred2/Release/skydumpcred2.pdb
Binary file not shown
View
20 sources/skydumpcred2/skydumpcred2.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "skydumpcred2", "skydumpcred2\skydumpcred2.vcxproj", "{C69E2523-14E7-491B-93E7-11E258127273}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {C69E2523-14E7-491B-93E7-11E258127273}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C69E2523-14E7-491B-93E7-11E258127273}.Debug|Win32.Build.0 = Debug|Win32
+ {C69E2523-14E7-491B-93E7-11E258127273}.Release|Win32.ActiveCfg = Release|Win32
+ {C69E2523-14E7-491B-93E7-11E258127273}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
View
BIN  sources/skydumpcred2/skydumpcred2.suo
Binary file not shown
View
5 sources/skydumpcred2/skydumpcred2/Debug/skydumpcred2.log
@@ -0,0 +1,5 @@
+Build started 23.07.2011 2:24:44.
+
+Build succeeded.
+
+Time Elapsed 00:00:00.00
View
BIN  sources/skydumpcred2/skydumpcred2/Release/CL.read.1.tlog
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/CL.write.1.tlog
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/cl.command.1.tlog
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/common.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/crc32.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/link.command.1.tlog
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/link.read.1.tlog
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/link.write.1.tlog
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/md5.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mraes.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mralloc.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrarth0.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrarth1.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrarth2.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrarth3.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrbits.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrbrick.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrbuild.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrcore.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrcrt.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrcurve.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrdouble.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrebrick.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrec2m.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrecn2.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrfast.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrflash.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrflsh1.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrflsh2.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrflsh3.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrflsh4.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrfrnd.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrgcd.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrgcm.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrgf2m.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrio1.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrio2.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrjack.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrlucas.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrmonty.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrmuldv.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrpi.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrpower.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrprime.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrrand.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrround.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrscrt.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrshs.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrshs256.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrshs512.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrsmall.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrsroot.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrstrong.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrxgcd.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrzzn2.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrzzn2b.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mrzzn3.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mt.command.1.tlog
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mt.read.1.tlog
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/mt.write.1.tlog
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/rijndael.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/sha.obj
Binary file not shown
View
68 sources/skydumpcred2/skydumpcred2/Release/skydumpcred2.Build.CppClean.log
@@ -0,0 +1,68 @@
+C:\VCNET_PROJ\SKYDUMPCRED2\RELEASE\SKYDUMPCRED2.EXE
+C:\VCNET_PROJ\SKYDUMPCRED2\RELEASE\SKYDUMPCRED2.PDB
+C:\vcnet_proj\skydumpcred2\skydumpcred2\Release\cl.command.1.tlog
+C:\vcnet_proj\skydumpcred2\skydumpcred2\Release\CL.read.1.tlog
+C:\vcnet_proj\skydumpcred2\skydumpcred2\Release\CL.write.1.tlog
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\COMMON.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\CRC32.OBJ
+C:\vcnet_proj\skydumpcred2\skydumpcred2\Release\link.command.1.tlog
+C:\vcnet_proj\skydumpcred2\skydumpcred2\Release\link.read.1.tlog
+C:\vcnet_proj\skydumpcred2\skydumpcred2\Release\link.write.1.tlog
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MD5.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRAES.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRALLOC.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRARTH0.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRARTH1.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRARTH2.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRARTH3.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRBITS.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRBRICK.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRBUILD.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRCORE.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRCRT.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRCURVE.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRDOUBLE.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MREBRICK.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MREC2M.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRECN2.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRFAST.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRFLASH.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRFLSH1.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRFLSH2.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRFLSH3.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRFLSH4.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRFRND.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRGCD.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRGCM.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRGF2M.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRIO1.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRIO2.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRJACK.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRLUCAS.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRMONTY.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRMULDV.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRPI.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRPOWER.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRPRIME.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRRAND.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRROUND.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRSCRT.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRSHS.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRSHS256.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRSHS512.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRSMALL.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRSROOT.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRSTRONG.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRXGCD.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRZZN2.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRZZN2B.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\MRZZN3.OBJ
+C:\vcnet_proj\skydumpcred2\skydumpcred2\Release\mt.command.1.tlog
+C:\vcnet_proj\skydumpcred2\skydumpcred2\Release\mt.read.1.tlog
+C:\vcnet_proj\skydumpcred2\skydumpcred2\Release\mt.write.1.tlog
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\RIJNDAEL.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\SHA.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\SKYDUMPCRED2.EXE.INTERMEDIATE.MANIFEST
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\SKYLOGIN.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\SKYPE_CRED.OBJ
+C:\VCNET_PROJ\SKYDUMPCRED2\SKYDUMPCRED2\RELEASE\VC100.PDB
View
10 sources/skydumpcred2/skydumpcred2/Release/skydumpcred2.exe.intermediate.manifest
@@ -0,0 +1,10 @@
+<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
+<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel level='asInvoker' uiAccess='false' />
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+</assembly>
View
2  sources/skydumpcred2/skydumpcred2/Release/skydumpcred2.lastbuildstate
@@ -0,0 +1,2 @@
+#v4.0:v100
+Release|Win32|C:\vcnet_proj\skydumpcred2\|
View
168 sources/skydumpcred2/skydumpcred2/Release/skydumpcred2.log
@@ -0,0 +1,168 @@
+Build started 23.07.2011 2:10:34.
+ 1>Project "C:\vcnet_proj\skydumpcred2\skydumpcred2\skydumpcred2.vcxproj" on node 2 (rebuild target(s)).
+ 1>_PrepareForClean:
+ Deleting file "Release\skydumpcred2.lastbuildstate".
+ InitializeBuildStatus:
+ Creating "Release\skydumpcred2.unsuccessfulbuild" because "AlwaysCreate" was specified.
+ ClCompile:
+ c:\Program Files\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /Zi /nologo /W3 /WX- /O2 /Oi /Oy- /GL /D WIN32 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Release\\" /Fd"Release\vc100.pdb" /Gd /TC /analyze- /errorReport:prompt common.c crypto\crc32\crc32.c crypto\md5\md5.c crypto\rijndael\rijndael.c crypto\sha1\sha.c miracl_lib\mraes.c miracl_lib\mralloc.c miracl_lib\mrarth0.c miracl_lib\mrarth1.c miracl_lib\mrarth2.c miracl_lib\mrarth3.c miracl_lib\mrbits.c miracl_lib\mrbrick.c miracl_lib\mrbuild.c miracl_lib\mrcore.c miracl_lib\mrcrt.c miracl_lib\mrcurve.c miracl_lib\mrdouble.c miracl_lib\mrebrick.c miracl_lib\mrec2m.c miracl_lib\mrecn2.c miracl_lib\mrfast.c miracl_lib\mrflash.c miracl_lib\mrflsh1.c miracl_lib\mrflsh2.c miracl_lib\mrflsh3.c miracl_lib\mrflsh4.c miracl_lib\mrfrnd.c miracl_lib\mrgcd.c miracl_lib\mrgcm.c miracl_lib\mrgf2m.c miracl_lib\mrio1.c miracl_lib\mrio2.c miracl_lib\mrjack.c miracl_lib\mrlucas.c miracl_lib\mrmonty.c miracl_lib\mrmuldv.c miracl_lib\mrpi.c miracl_lib\mrpower.c miracl_lib\mrprime.c miracl_lib\mrrand.c miracl_lib\mrround.c miracl_lib\mrscrt.c miracl_lib\mrshs.c miracl_lib\mrshs256.c miracl_lib\mrshs512.c miracl_lib\mrsmall.c miracl_lib\mrsroot.c miracl_lib\mrstrong.c miracl_lib\mrxgcd.c miracl_lib\mrzzn2.c miracl_lib\mrzzn2b.c miracl_lib\mrzzn3.c skylogin.c skype_cred.c
+ common.c
+ crc32.c
+ md5.c
+ rijndael.c
+ sha.c
+ mraes.c
+ mralloc.c
+ mrarth0.c
+ mrarth1.c
+ mrarth2.c
+ mrarth3.c
+ mrbits.c
+ mrbrick.c
+ mrbuild.c
+ mrcore.c
+ mrcrt.c
+ mrcurve.c
+ mrdouble.c
+ mrebrick.c
+ mrec2m.c
+ Compiling...
+ mrecn2.c
+ mrfast.c
+ mrflash.c
+ mrflsh1.c
+ mrflsh2.c
+ mrflsh3.c
+ mrflsh4.c
+ mrfrnd.c
+ mrgcd.c
+ mrgcm.c
+ mrgf2m.c
+ 1>miracl_lib\mrgf2m.c(350): warning C4101: 'k' : unreferenced local variable
+ 1>miracl_lib\mrgf2m.c(612): warning C4101: 'r' : unreferenced local variable
+ 1>miracl_lib\mrgf2m.c(612): warning C4101: 't' : unreferenced local variable
+ 1>miracl_lib\mrgf2m.c(611): warning C4101: 'j' : unreferenced local variable
+ mrio1.c
+ mrio2.c
+ mrjack.c
+ mrlucas.c
+ mrmonty.c
+ mrmuldv.c
+ mrpi.c
+ mrpower.c
+ mrprime.c
+ Compiling...
+ mrrand.c
+ mrround.c
+ mrscrt.c
+ mrshs.c
+ mrshs256.c
+ mrshs512.c
+ mrsmall.c
+ mrsroot.c
+ mrstrong.c
+ mrxgcd.c
+ mrzzn2.c
+ mrzzn2b.c
+ mrzzn3.c
+ skylogin.c
+ skype_cred.c
+ 1>skype_cred.c(101): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdio.h(234) : see declaration of 'fopen'
+ 1>skype_cred.c(124): warning C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdio.h(325) : see declaration of 'sscanf'
+ 1>skype_cred.c(165): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdio.h(234) : see declaration of 'fopen'
+ 1>skype_cred.c(167): warning C4101: 'j' : unreferenced local variable
+ 1>skype_cred.c(261): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdio.h(371) : see declaration of 'sprintf'
+ Link:
+ c:\Program Files\Microsoft Visual Studio 10.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\vcnet_proj\skydumpcred2\Release\skydumpcred2.exe" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"Release\skydumpcred2.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\vcnet_proj\skydumpcred2\Release\skydumpcred2.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\vcnet_proj\skydumpcred2\Release\skydumpcred2.lib" /MACHINE:X86 Release\common.obj
+ Release\crc32.obj
+ Release\md5.obj
+ Release\rijndael.obj
+ Release\sha.obj
+ Release\mraes.obj
+ Release\mralloc.obj
+ Release\mrarth0.obj
+ Release\mrarth1.obj
+ Release\mrarth2.obj
+ Release\mrarth3.obj
+ Release\mrbits.obj
+ Release\mrbrick.obj
+ Release\mrbuild.obj
+ Release\mrcore.obj
+ Release\mrcrt.obj
+ Release\mrcurve.obj
+ Release\mrdouble.obj
+ Release\mrebrick.obj
+ Release\mrec2m.obj
+ Release\mrecn2.obj
+ Release\mrfast.obj
+ Release\mrflash.obj
+ Release\mrflsh1.obj
+ Release\mrflsh2.obj
+ Release\mrflsh3.obj
+ Release\mrflsh4.obj
+ Release\mrfrnd.obj
+ Release\mrgcd.obj
+ Release\mrgcm.obj
+ Release\mrgf2m.obj
+ Release\mrio1.obj
+ Release\mrio2.obj
+ Release\mrjack.obj
+ Release\mrlucas.obj
+ Release\mrmonty.obj
+ Release\mrmuldv.obj
+ Release\mrpi.obj
+ Release\mrpower.obj
+ Release\mrprime.obj
+ Release\mrrand.obj
+ Release\mrround.obj
+ Release\mrscrt.obj
+ Release\mrshs.obj
+ Release\mrshs256.obj
+ Release\mrshs512.obj
+ Release\mrsmall.obj
+ Release\mrsroot.obj
+ Release\mrstrong.obj
+ Release\mrxgcd.obj
+ Release\mrzzn2.obj
+ Release\mrzzn2b.obj
+ Release\mrzzn3.obj
+ Release\skylogin.obj
+ Release\skype_cred.obj
+ Generating code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth1.c(505): warning C4731: 'mr_sdiv' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth1.c(512): warning C4731: 'mr_sdiv' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth1.c(518): warning C4731: 'mr_sdiv' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth1.c(227): warning C4731: 'mr_pmul' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth1.c(236): warning C4731: 'mr_pmul' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth1.c(241): warning C4731: 'mr_pmul' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(1273): warning C4731: 'divide' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(1280): warning C4731: 'divide' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(1282): warning C4731: 'divide' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(1286): warning C4731: 'divide' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(1290): warning C4731: 'divide' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(247): warning C4731: 'multiply' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(253): warning C4731: 'multiply' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(255): warning C4731: 'multiply' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(259): warning C4731: 'multiply' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(263): warning C4731: 'multiply' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(646): warning C4731: 'multiply' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(652): warning C4731: 'multiply' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(654): warning C4731: 'multiply' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(658): warning C4731: 'multiply' : frame pointer register 'ebp' modified by inline assembly code
+ 1>c:\vcnet_proj\skydumpcred2\skydumpcred2\miracl_lib\mrarth2.c(662): warning C4731: 'multiply' : frame pointer register 'ebp' modified by inline assembly code
+ Finished generating code
+ skydumpcred2.vcxproj -> C:\vcnet_proj\skydumpcred2\Release\skydumpcred2.exe
+ Manifest:
+ c:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /outputresource:"C:\vcnet_proj\skydumpcred2\Release\skydumpcred2.exe;#1" /manifest Release\skydumpcred2.exe.intermediate.manifest
+ FinalizeBuildStatus:
+ Deleting file "Release\skydumpcred2.unsuccessfulbuild".
+ Touching "Release\skydumpcred2.lastbuildstate".
+ 1>Done Building Project "C:\vcnet_proj\skydumpcred2\skydumpcred2\skydumpcred2.vcxproj" (rebuild target(s)).
+
+Build succeeded.
+
+Time Elapsed 00:00:04.02
View
BIN  sources/skydumpcred2/skydumpcred2/Release/skylogin.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/skype_cred.obj
Binary file not shown
View
BIN  sources/skydumpcred2/skydumpcred2/Release/vc100.pdb
Binary file not shown
View
261 sources/skydumpcred2/skydumpcred2/SkypeControl/skype_basics.h
@@ -0,0 +1,261 @@
+/*\
+|*|
+|*| Skype Protocol v0.105 by Sean O'Neil.
+|*| Copyright (c) 2009 by VEST Corporation.
+|*| All rights reserved. Strictly Confidential!
+|*|
+|*| Date: 08.07.2009
+|*|
+\*/
+
+#ifndef _skype_basics_h_
+#define _skype_basics_h_
+
+typedef unsigned char u8;
+typedef unsigned short u16;
+typedef unsigned long u32;
+//typedef unsigned long long u64;
+typedef __int64 u64;
+
+
+
+#include <string.h>
+
+#ifdef __GNUC__
+ #define __FAVOR_BSD
+ #include <stdint.h>
+ #include <unistd.h>
+ #include <sys/signal.h>
+ #include <sys/socket.h>
+ #include <sys/time.h>
+ #include <netinet/in.h>
+ #include <netinet/in_systm.h>
+ #include <netinet/ip.h>
+ #include <netinet/tcp.h>
+ #include <netinet/udp.h>
+ #include <arpa/inet.h>
+ typedef int SOCKET;
+ #ifndef __fastcall
+ #define __fastcall __attribute__((fastcall))
+ #endif
+ #define __forceinline __inline__
+ #define rotl32(x,r) (((x)<<((r)&31))|((x)>>((0-(r))&31)))
+ #define rotr32(x,r) (((x)>>((r)&31))|((x)<<((0-(r))&31)))
+ #define rotl64(x,r) (((x)<<((r)&63))|((x)>>((0-(r))&63)))
+ #define rotr64(x,r) (((x)>>((r)&63))|((x)<<((0-(r))&63)))
+ #pragma GCC option(popcnt)
+ #define popcnt32(x) __builtin_popcount(x)
+ static __inline__ u32 _bswap32 (u32 x) { __asm__ ("bswapl %0" : "=r" (x) : "0" (x)); return x; }
+ static __inline__ u64 rdtsc(void) {register u64 x; __asm__ volatile (".byte 0x0F, 0x31" : "=A" (x)); return x; }
+ #define LL "ll"
+#else
+// #include <intrin.h>
+ #include <time.h>
+ #include <winsock2.h>
+ #define ssize_t size_t
+ #define socklen_t u32
+ #define __inline__ __forceinline
+ #define rotl32(x,r) _lrotl(x,r)
+ #define rotr32(x,r) _lrotr(x,r)
+ //#define rotl64(x,r) _rotl64(x,r)
+ #define rotl64(x,r) (((x)<<((r)&63))|((x)>>((0-(r))&63)))
+ #define rotr64(x,r) _rotr64(x,r)
+ static __inline__ u32 popcnt32 (u32 x) {register u32 n=0;while(x)n++,x&=x-1;return n;}
+ static __inline__ u32 _bswap32 (u32 x) {__asm{mov eax,x}__asm{bswap eax}}
+ //#define rdtsc() __rdtsc()
+ static __inline__ u64 rdtsc() { __asm{rdtsc}}
+ #define LL "I64"
+#endif
+
+#if defined(__BYTE_ORDER)&&(__BYTE_ORDER==4321)||defined(BYTE_ORDER)&&(BYTE_ORDER==4321)||defined(sun)||defined(__sun)||defined(sparc)||defined(__sparc)||defined(__ppc__)
+ #define SKYPE_4321_BYTE_ORDER
+#elif defined(__BYTE_ORDER)&&(__BYTE_ORDER==1234)||defined(BYTE_ORDER)&&(BYTE_ORDER==1234)||defined(i386)||defined(__i386__)||defined(__amd64__)||defined(__x86_64__)||defined(__vax__)||defined(__alpha)||defined(__ultrix)||defined(_M_IX86)||defined(_M_IA64)||defined(_M_X64)||defined(_M_ALPHA)
+ #define SKYPE_1234_BYTE_ORDER
+#else
+ #error Unknown endianness! Please define or disable this error and check at runtime.
+#endif
+
+#ifdef SKYPE_4321_BYTE_ORDER
+ #define ord2(x) ((x)^1)
+ #define make_MSF_32(x,n)
+ static __inline__ void make_LSF_32 (u32 *x, u32 n) { register u32 i; for (; n; x++, n--) { i = *x; *x = _bswap32 (i); } }
+#elif defined (SKYPE_1234_BYTE_ORDER)
+ #define ord2(x) (x)
+ #define make_LSF_32(x,n)
+ static __inline__ void make_MSF_32 (u32 *x, u32 n) { register u32 i; for (; n; x++, n--) { i = *x; *x = _bswap32 (i); } }
+#else
+ #error Sorry!
+#endif
+
+#define byte(x,n) (*(u8*)(((u8*)(x))+(n)))
+#define word(x,n) (*(u16*)(((u8*)(x))+(n)))
+#define dword(x,n) (*(u32*)(((u8*)(x))+(n)))
+#define qword(x,n) (*(u64*)(((u8*)(x))+(n)))
+
+#define bswap16(x) ((u16)((((x)&0xFF)<<8)+(((x)>>8)&0xFF)))
+#define CRC1(s,g) (s=((s)&1)?((s)>>1)^(g):((s)>>1))
+#define CRC8(s,g) for(j=0;j<8;j++)CRC1(s,g);
+#define CRC32(s,g) for(j=0;j<32;j++)CRC1(s,g);
+
+static u32 _rnd32a, _rnd32b; // a very small fast PRNG to randomise in/out processing and possibly other operations
+#define hash32(a,b) ((a)^=rotr32((b)^0x7BED1AFD,9)*0xFEE1BEA7,(b)^=rotr32((a)^0xFEA4BAD5,9)*0xDAD5FED3)
+//#define rnd32() hash32(_rnd32a,_rnd32b)
+
+//static u64 _rand64[2] = { 0xE4FDC25B98A63017ULL, 0x5EA93C21F7604D8BULL }; // a normal size [P]RNG (slower)
+static u64 _rand64[2] = { 0xE4FDC25B98A63017, 0x5EA93C21F7604D8B }; // a normal size [P]RNG (slower)
+#define rand64() (_rand64[1] ^= (rotl64 (_rand64[0], 17) ^ 0x5AC734E821DF60B9), _rand64[0] += rotl64 (_rand64[1] * 0x2C0DE96B357481AF ^ 0xD8725E3901A4F6CB, 13))
+#define rand32() ((u32) rand64())
+#define srand32() (_rand64[0] ^= _rand64[1] += rdtsc ())
+#define zrand32(d,l) (MD5_hash(d,l,_rand64))
+#define srand64() srand32()
+
+static u32 crc8 (const u8 *x, u32 n){u32 j,z=-1;for(;n;n--){z^=*x++;CRC8 (z,0xEDB88320);}return z;}
+static u32 crc32 (const u32 *x, u32 n){u32 j,z=-1;for(;n;n--){z^=*x++;CRC32(z,0xEDB88320);}return z;}
+
+#ifndef min
+ #define min(a,b) (((a)<(b))?(a):(b))
+#endif
+#ifndef max
+ #define max(a,b) (((a)>(b))?(a):(b))
+#endif
+
+#define skrand(x) ((x)*0x00010DCD+0x00004271) // *10DCD=+4271=
+#define skback(x) ((x)*0xA5E2A705+0x57E4FCCB) // *A5E2A705=+57E4FCCB=
+
+static u8 skype_ssl_client_hello[56] =
+{
+ 0x80,0x46, // 0x80 | data length
+ 0x01,0x03,0x01, // TLS v1 client hello
+ 0x00,0x2d, // 45/3 = 15 cipher specs
+ 0x00,0x00, // 0-byte session ID
+ 0x00,0x10, // 16-byte challenge
+ 0x00,0x00,0x05, // TLS_RSA_WITH_RC4_128_SHA
+ 0x00,0x00,0x04, // TLS_RSA_WITH_RC4_128_MD5
+ 0x00,0x00,0x0a, // TLS_RSA_WITH_3DES_EDE_CBC_SHA
+ 0x00,0x00,0x09, // TLS_RSA_WITH_DES_CBC_SHA
+ 0x00,0x00,0x64, // TLS_RSA_EXPORT1024_WITH_RC4_56_SHA
+ 0x00,0x00,0x62, // TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA
+ 0x00,0x00,0x08, // TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
+ 0x00,0x00,0x03, // TLS_RSA_EXPORT_WITH_RC4_40_MD5
+ 0x00,0x00,0x06, // TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
+ 0x01,0x00,0x80, // SSL2_RC4_128_WITH_MD5
+ 0x07,0x00,0xc0, // SSL2_DES_192_EDE3_CBC_WITH_MD5
+ 0x03,0x00,0x80, // SSL2_RC2_CBC_128_CBC_WITH_MD5
+ 0x06,0x00,0x40, // SSL2_DES_64_CBC_WITH_MD5
+ 0x02,0x00,0x80, // SSL2_RC4_128_EXPORT40_WITH_MD5
+ 0x04,0x00,0x80 // SSL2_RC2_CBC_128_CBC_WITH_MD5
+};
+
+// TODO: make them all 32-bit (byte order independent)
+
+static u8 skype_ssl_server_hello[79] =
+{
+ 0x16,0x03,0x01,0x00,0x4A,0x02,0x00,0x00,0x46,0x03,0x01,0x40,0x1B,0xE4,0x86,0x02,
+ 0xAD,0xE0,0x29,0xE1,0x77,0x74,0xE5,0x44,0xB9,0xC9,0x9C,0xB4,0x31,0x31,0x5E,0x02,
+ 0xDD,0x77,0x9D,0x15,0x4A,0x96,0x09,0xBA,0x5D,0xA8,0x70,0x20,0x1C,0xA0,0xE4,0xF6,
+ 0x4C,0x63,0x51,0xAE,0x2F,0x8E,0x4E,0xE1,0xE6,0x76,0x6A,0x0A,0x88,0xD5,0xD8,0xC5,
+ 0x5C,0xAE,0x98,0xC5,0xE4,0x81,0xF2,0x2A,0x69,0xBF,0x90,0x58,0x00,0x05,0x00
+};
+static u8 skype_384_bit_DH_modulus[48] =
+{
+ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x02,0xB2,0x13,0x3B,0xA6,0xBE,0x0B,0x02,
+ 0x74,0xCC,0x67,0x8A,0x08,0x4E,0x02,0x29,0xD1,0x1C,0xDC,0x80,0x8B,0x62,0xC6,0xC4,
+ 0x34,0xC2,0x68,0x21,0xA2,0xDA,0x0F,0xC9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
+};
+static u32 skype_login_rsa_key[48] =
+{
+ 0xBA29700B,0xB57250D7,0x55AAA3A4,0x335A48C9,0xF51DA404,0xCA8F4446,0x31CC2BC4,0xA6C8F1FF,
+ 0xA2007ACF,0xC8E25638,0xDD2D8732,0xAFD95B80,0xC873E95C,0x3D4C2625,0x1A3EAB16,0x99492AA6,
+ 0x97CED2E1,0xB7138523,0x6C0375EE,0x8202C61C,0x66B23E1F,0x093AC6EE,0x385EF5F4,0xAD0A804F,
+ 0x78627651,0xAC550B39,0x0E7A9EAF,0xA4C35289,0xEDB35DCB,0x40468CF0,0xCD9914E5,0x140CA82C,
+ 0xC88B3CAE,0x96350989,0x692015E7,0x9484B597,0xC0E5ABE0,0x7752A248,0xC72E53EF,0x5D74A14C,
+ 0xEC983AAB,0xEC87304A,0x6C1AF0FB,0x532A72DF,0x310B0B21,0x1EF1CA5E,0x2F4F5FC8,0xA8F22361
+};
+
+static u8 skype_credentials_key[256]=
+{
+ 0x55,0x28,0xDC,0x2E,0x33,0xFE,0x37,0xBC,0x8D,0x74,0x58,0x02,0xB5,0x51,0x82,0xCA,
+ 0x15,0x79,0x97,0x1D,0xA7,0x75,0x68,0xCE,0x45,0xCA,0xB8,0x6A,0x01,0x48,0xCB,0xF3,
+ 0xF9,0x5D,0x16,0x70,0x04,0xC6,0xD1,0x00,0xF9,0x73,0x36,0x26,0x10,0x64,0xB4,0xD4,
+ 0xD8,0x0B,0xD9,0x32,0xFD,0x34,0xEA,0xB7,0xA4,0x62,0x24,0xAC,0x50,0x7D,0x5C,0x4C,
+ 0xEE,0x99,0x5B,0x0B,0x38,0x01,0x40,0x96,0x78,0x13,0x1D,0x3D,0xD8,0xE9,0x9D,0x5A,
+ 0xFC,0x64,0x11,0xE6,0x51,0xF3,0x06,0x7C,0x45,0x5B,0x05,0x71,0x09,0x18,0x82,0x82,
+ 0x8D,0xE9,0xD0,0x62,0xCC,0xB8,0xB3,0x4C,0x75,0xF9,0x00,0x98,0xBD,0x55,0xA9,0xDD,
+ 0xCA,0x2F,0x41,0x74,0x73,0x9A,0xDC,0x06,0x0C,0x85,0xA9,0x10,0x55,0xAD,0xF4,0xC2,
+ 0x2F,0x04,0x72,0x2B,0x46,0x61,0x6E,0x45,0xF4,0x7E,0x63,0xEA,0x87,0x35,0x46,0xDC,
+ 0x74,0x4B,0xC4,0xB3,0x08,0x4B,0xDC,0xB5,0xE9,0x0C,0x57,0xCA,0x11,0x4E,0x90,0xB3,
+ 0x70,0x2D,0xCC,0x73,0x9B,0x33,0x1D,0xF9,0x45,0xF3,0x4E,0xFA,0x78,0xDA,0x25,0xBE,
+ 0xF8,0xA9,0x04,0x45,0x1B,0xC3,0xEC,0x19,0x6C,0x7D,0x28,0xF0,0xE5,0xB5,0xE2,0x74,
+ 0x59,0x69,0x49,0xCD,0xBC,0xFA,0x57,0x5F,0xAC,0xED,0xB3,0xE8,0x87,0x8D,0xCD,0xB5,
+ 0xF5,0xEF,0x2B,0xDE,0xBA,0xF0,0x3D,0xB8,0x79,0x65,0x7E,0xD5,0xBC,0x87,0x7F,0x06,
+ 0x41,0x24,0x05,0x50,0x7D,0xA4,0x3D,0x40,0xE2,0x9B,0xA4,0x42,0x90,0x32,0x77,0x6A,
+ 0x20,0x59,0x4B,0x87,0x74,0x67,0x0E,0x1C,0xFE,0x30,0xED,0xD8,0xEE,0x6A,0x50,0xB8
+};
+
+static u8 skype_I_hash[8] = {0x63,0x2F,0xE5,0xFD,0xE1,0x11,0x1B,0xD5};
+static u8 skype_O_hash[8] = {0xAB,0x11,0xC5,0x85,0x03,0x63,0x9F,0x89};
+
+static u8 allocated_ip_range[256] =
+{
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, // 0- 31
+ 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1, // 32- 63
+ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, // 64- 95
+ 1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, // 96-127
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 128-159
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0, 0,0,1,0,0,0,0,0,1,0,1,1,0,1,1,0, // 160-191
+ 0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0, // 192-223
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // 224-255
+};
+
+static u32 is_ip_routable (const u32 ip)
+{
+ if (!allocated_ip_range[ip & 0xFF]) return 0; // ?.*.*.* => 0
+ return ((ip>>24)-1) < 254; // *.*.*.1-254 are ok => 1, .0 and .255 are not => 0
+}
+
+static u32 valid_rand (u32 mr, const u32 nr) {u32 i=16;for(;i&&((mr=skrand(mr))!=nr);i--);return mr==nr;} // speeds up packet detection
+
+static u32 bitcount (const void *x, const size_t b, const u32 mask)
+{
+ u32 i, n = 0;
+ for (i = 0; i < b/4; i++) n += popcnt32(dword(x,i)&mask);
+ if (b&3) n += popcnt32(dword(x,i)&mask&((1<<((b&3)<<3))-1));
+ return n;
+}
+
+typedef struct _node
+{
+ u8 ip[4]; // supernode IP address
+ u32 port; // supernode port
+} node;
+
+#define skype_supernodes (sizeof(skype_supernode)/sizeof(node))
+
+// Debugging Stuff
+
+#include <stdio.h>
+
+static void bindump (const void *x, const u32 n)
+{
+ u32 i, j, m = (n+15)&~16;
+ const u8 *b = (u8*)x;
+
+ printf ("%d bytes:\n\n", n);
+ for (i = 0; i < m; i++)
+ {
+ if ((i&15)==0) printf ("%04X:", i);
+ if (i < n) printf (" %02X", b[i]); else printf (" ");
+ if ((i&15)==15)
+ {
+ printf (" | ");
+ for (j = 0; j < 16; j++) printf ("%c", (i-15+j >= n) ? 0x20 : (b[i-15+j]<0x20)||(b[i-15+j]>0x7E) ? '.' : b[i-15+j]);
+ printf (" |\n");
+ }
+ }
+ printf ("\n\n");
+}
+
+extern u32 pack_4142(u32 * list, u8 * packed_list, u32 pack_42, u32 max_bytes);
+extern u32 unpack_4142(u32 *into_list, u8 **packed_blob, u32 *packed_bytes, u8 *pack_42, u32 max_depth, u32 *list_size);
+
+#endif
View
90 sources/skydumpcred2/skydumpcred2/common.c
@@ -0,0 +1,90 @@
+/*\
+|*| Common functions for skype_login.c and skype_cred.c
+|*| Functions were taken from:
+|*|
+|*| Skype Login v0.105 by Sean O'Neil.
+|*| Copyright (c) 2009 by VEST Corporation.
+|*| All rights reserved. Strictly Confidential!
+|*|
+|*| Includes: Password Login, User Registration
+|*|
+|*| Date: 08.07.2009
+|*|
+\*/
+
+#include "SkypeControl/skype_basics.h"
+#include "md5/md5.h"
+#include "sha1/sha1.h"
+#include "rijndael/rijndael.h"
+#include "miracl/miracl.h"
+#include "common.h"
+
+struct bigtype skype_credentials_mod = {64, (u32*)skype_credentials_key}; // Skype 2048-bit credentials modulus
+
+
+unsigned long MD5_Skype_Password (const char *username, const char *password, unsigned char *hash128)
+{
+ MD5_state skyper = MD5_INIT;
+
+ MD5_update (&skyper, username, (u32) strlen (username));
+ MD5_update (&skyper, "\nskyper\n", 8);
+ MD5_update (&skyper, password, (u32) strlen (password));
+ MD5_end (&skyper);
+ memcpy (hash128, skyper.hash, 16);
+ return 16;
+}
+
+void AES_CTR (const unsigned long *key, unsigned char *pkt, const u32 bytes, const u32 IV)
+{
+ unsigned long blk[8] = {IV, IV, 0, 0}, ks[60], i, j;
+
+ aes_256_setkey (key, ks);
+ for (j = 0; j+16 < bytes; j += 16)
+ {
+ aes_256_encrypt (blk, blk+4, ks);
+ dword(pkt,j+ 0) ^= _bswap32(blk[4]);
+ dword(pkt,j+ 4) ^= _bswap32(blk[5]);
+ dword(pkt,j+ 8) ^= _bswap32(blk[6]);
+ dword(pkt,j+12) ^= _bswap32(blk[7]);
+ blk[3]++;
+ }
+ if (j < bytes)
+ {
+ aes_256_encrypt (blk, blk+4, ks);
+ for (i = 0; j < bytes; j++, i++) pkt[j] ^= ((u8 *)(blk+4))[i^3];
+ }
+}
+
+int Decrypt_Credentials(unsigned char *pData, unsigned char *credentials)
+{
+ int i;
+ unsigned int j;
+ unsigned char *s;
+ unsigned long hash[5+1];
+ struct bigtype c = {64, (u32*)(pData)}, y = {64, (u32*) credentials};
+
+ /* Decrypt */
+ reverse_bytes (c.w,i,j,64);
+ power (_MIPP_ &c, 0x10001, &skype_credentials_mod, &y);
+ reverse_bytes (y.w,i,j,64);
+
+ /* Restore source buffer back*/
+ reverse_bytes (c.w,i,j,64);
+
+ /* Verify */
+ if (!(s = memchr (credentials, 0x41, 80)))
+ {
+ fprintf (stderr, "Credentials don't contain mandatory 0x41 marker byte\n");
+ return -1;
+ }
+ SHA1_hash (s, (u32)(credentials+255-20-s), hash);
+ printf ("Credentials SHA-1 = "); bindump (hash, 20);
+ for (i = 0; i < 5; i++)
+ if (dword(credentials,255-20+i*4) != _bswap32(hash[i]))
+ {
+ fprintf (stderr, "Credentials SHA-1 checksum mismatch.\n");
+ return -1;
+ }
+ printf ("Valid Credentials!\n");
+ return 0;
+}
View
19 sources/skydumpcred2/skydumpcred2/common.h
@@ -0,0 +1,19 @@
+/*\
+|*| Common functions for skype_login.c and skype_cred.c
+|*| Functions were taken from:
+|*|
+|*| Skype Login v0.105 by Sean O'Neil.
+|*| Copyright (c) 2009 by VEST Corporation.
+|*| All rights reserved. Strictly Confidential!
+|*|
+|*| Includes: Password Login, User Registration
+|*|
+|*| Date: 08.07.2009
+|*|
+\*/
+
+#define reverse_bytes(x,i,j,n) for(i=0;(i)<(n/2);(i)++)((j)=(x)[i],(x)[i]=_bswap32((x)[(n)-1-(i)]),(x)[(n)-1-(i)]=_bswap32(j))
+
+unsigned long MD5_Skype_Password (const char *username, const char *password, unsigned char *hash128);
+void AES_CTR (const unsigned long *key, unsigned char *pkt, const u32 bytes, const u32 IV);
+int Decrypt_Credentials(unsigned char *pData, unsigned char *credentials);
View
45 sources/skydumpcred2/skydumpcred2/crypto/crc32/crc32.c
@@ -0,0 +1,45 @@
+const unsigned long crc32tab[256] = {
+ 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
+};
+
+unsigned long _crc32(const unsigned char *buf, unsigned size)
+{
+ const unsigned char *p;
+ unsigned long crc;
+
+ crc = 0xffffffff; /* preload shift register, per CRC-32 spec */
+ for (p = buf; size > 0; ++p, --size)
+ crc = crc32tab[((unsigned long)crc ^ *p) & 0xff] ^ (crc >> 8);
+ return crc;
+}
View
1  sources/skydumpcred2/skydumpcred2/crypto/crc32/crc32.h
@@ -0,0 +1 @@
+unsigned long _crc32(const unsigned char *buf, unsigned size);
View
502 sources/skydumpcred2/skydumpcred2/crypto/crypto.h
@@ -0,0 +1,502 @@
+// PureNoise CryptoLib (c) 1997-2004, PureNoise Ltd Vaduz <www.cryptolib.com>
+
+#ifndef _crypto_h_
+#define _crypto_h_
+
+#if defined(__MACH__) && defined(__APPLE__)
+ #include <pthread.h>
+#endif
+
+#ifndef ECC_BITS
+ //! Strength of Elliptic Curve algorithms is currently about a half the size of its modulus.
+ //! Therefore for 256-bit symmetric keys 512-bit ECC keys are required. For 128-bit symmetric keys 512-bit ECC keys are required.
+ //! \brief Elliptic Curve key size in bits (normally should be defined with -DECC_BITS=n compiler option, minimum 256)
+ #define ECC_BITS 512
+#endif
+
+//! \brief it's <b>extern</b> for C and it's <b>extern "C"</b> for C++
+#ifndef EXTERN
+ #ifdef __cplusplus
+ #define EXTERN extern "C"
+ #else // __cplusplus
+ #define EXTERN extern
+ #endif // __cplusplus
+#endif // EXTERN
+
+#if defined(_M_ALPHA) || defined(__alpha) || defined(_M_IX86) || defined(__i386__) || defined(__vax__)
+ #undef BIG_ENDIAN
+ //! \brief defined for Intel/Alpha/Vax (Least Significant First byte order)
+ #ifndef LITTLE_ENDIAN
+ #define LITTLE_ENDIAN
+ #endif
+#else
+ #undef LITTLE_ENDIAN
+ //! \brief defined for weird processors like Sparc etc. (Most Significant First byte order)
+ #ifndef BIG_ENDIAN
+ #define BIG_ENDIAN
+ #endif
+#endif // BIG/LITTLE ENDIAN
+
+// basic types and platform-dependant fast rotation and byte swapping functions. I wish there was a bit count operation too...
+
+#ifndef u8
+ #define u8 unsigned char
+#endif
+#ifndef u16
+ #define u16 unsigned short
+#endif
+#ifndef u32
+ #define u32 unsigned long
+#endif
+
+#if defined(__GNUC__)
+
+ #ifndef u64
+ #define u64 unsigned long long
+ #endif
+ #ifndef __cdecl
+ #define __cdecl __attribute__((cdecl))
+ #endif
+ #ifndef __fastcall
+ #define __fastcall __attribute__((fastcall))
+ #endif
+ #ifndef __inline
+ #define __inline inline
+ #endif
+ #ifndef __forceinline
+ #define __forceinline __inline__
+ #endif
+
+#elif defined(_MSC_VER)
+
+ #ifndef u64
+ #define u64 unsigned __int64
+ #endif
+ #include <stdlib.h>
+ #pragma intrinsic (_lrotr, _lrotl)
+
+#elif defined(__MACH__) && defined(__APPLE__)
+
+ #ifndef u64
+ #define u64 unsigned long long
+ #endif
+ #ifndef __cdecl
+ #define __cdecl
+ #endif
+ #ifndef __fastcall
+ #define __fastcall
+ #endif
+ #ifndef __forceinline
+ #define __forceinline __inline
+ #endif
+
+#endif
+
+// slow basic rotations and byte swapping, useful for constants or if there's no other choice
+
+//! \brief Multiple shifts right 32-bit rotation operation for constants
+//! \returns x rotated right by n bit
+#ifndef ROTR32
+ #define ROTR32(x, n) ((((u32) (x)) >> ((n) & 31)) | (((u32) (x)) << ((0-(n)) & 31)))
+#endif
+//! \brief Multiple shifts left 32-bit rotation operation for constants
+//! \returns x rotated left by n bit
+#ifndef ROTL32
+ #define ROTL32(x, n) ((((u32) (x)) << ((n) & 31)) | (((u32) (x)) >> ((0-(n)) & 31)))
+#endif
+//! \brief Multiple shifts right 64-bit rotation operation for constants
+//! \returns x rotated right by n bit
+#ifndef ROTR64
+ #define ROTR64(x, n) ((((u64) (x)) >> ((n) & 63)) | (((u64) (x)) << ((0-(n)) & 63)))
+#endif
+//! \brief Multiple shifts left 64-bit rotation operation for constants
+//! \returns x rotated left by n bit
+#ifndef ROTL64
+ #define ROTL64(x, n) ((((u64) (x)) << ((n) & 63)) | (((u64) (x)) >> ((0-(n)) & 63)))
+#endif
+//! \brief Multiple shifts 32-bit byte swapping operation for constants
+//! \returns x in the opposite byte order
+#ifndef BSWAP32
+ #define BSWAP32(x) ((ROTL32 ((u32) (x), 8) & 0x00FF00FFU) | (ROTR32 ((u32) (x), 8) & 0xFF00FF00U))
+#endif
+
+//! \brief Multiple shifts 64-bit byte swapping operation for constants
+//! \returns x in the opposite byte order
+#if defined (__GNUG__) || defined (__APPLE__)
+ #ifndef BSWAP64
+ #define BSWAP64(x) ((ROTL64 ((u64) (x), 8) & 0x000000ff000000ffLL) | (ROTL64 ((u64) (x), 24) & 0x0000ff000000ff00LL) | (ROTR64 ((u64) (x), 24) & 0x00ff000000ff0000LL) | (ROTR64 ((u64) (x), 8) & 0xff000000ff000000LL))
+ #endif
+#else
+ #ifndef BSWAP64
+ #define BSWAP64(x) ((ROTL64 ((u64) (x), 8) & 0x000000ff000000ffUL) | (ROTL64 ((u64) (x), 24) & 0x0000ff000000ff00UL) | (ROTR64 ((u64) (x), 24) & 0x00ff000000ff0000UL) | (ROTR64 ((u64) (x), 8) & 0xff000000ff000000UL))
+ #endif
+#endif
+
+//! \brief Faster function-based right 32-bit rotation (should not be used for constants)
+//! \returns x rotated right by n bit
+#ifndef rotr32
+#define rotr32(x, n) _lrotr (x, n) // using ROR x,n on Intel
+#endif
+//! \brief Faster function-based left 32-bit rotation (should not be used for constants)
+//! \returns x rotated left by n bit
+#ifndef rotl32
+#define rotl32(x, n) _lrotl (x, n) // using ROL x,n on Intel
+#endif
+//! \brief Faster function-based right 64-bit rotation (should not be used for constants)
+//! \returns x rotated right by n bit
+#ifndef rotr64
+#define rotr64(x, n) ROTR64 (x, n) // I haven't seen built-in 64-bit rotation functions yet, sticking with slower shifts for now
+#endif
+//! \brief Faster function-based left 64-bit rotation (should not be used for constants)
+//! \returns x rotated left by n bit
+#ifndef rotl64
+#define rotl64(x, n) ROTL64 (x, n) // I haven't seen built-in 64-bit rotation functions yet, sticking with slower shifts for now
+#endif
+//! \brief Faster function-based 64-bit byte swapping (should not be used for constants)
+//! \returns x in the opposite byte order
+#if defined (__GNUG__) || defined (__APPLE__)
+ #define bswap64(x) ((rotl64 ((u64) (x), 8) & 0x000000ff000000ffLL) | (rotl64 ((u64) (x), 24) & 0x0000ff000000ff00LL) | (rotr64 ((u64) (x), 24) & 0x00ff000000ff0000LL) | (rotr64 ((u64) (x), 8) & 0xff000000ff000000LL))
+#else
+ #define bswap64(x) ((rotl64 ((u64) (x), 8) & 0x000000ff000000ffUL) | (rotl64 ((u64) (x), 24) & 0x0000ff000000ff00UL) | (rotr64 ((u64) (x), 24) & 0x00ff000000ff0000UL) | (rotr64 ((u64) (x), 8) & 0xff000000ff000000UL))
+#endif
+
+#include <string.h> // is needed by all platforms for memset, memcpy etc
+
+//! \def hex_sleep \brief 32-bit sleep function (high 16-bit word represents the number of seconds, low 16-bit word represents the fraction of a second)
+#if defined (WIN32) || defined (_WIN32) || defined (WIN32_WINNT) || defined (_WIN32_WINNT) || defined (__WIN32__) || defined (WINDOWS) || defined (_WINDOWS)
+
+ #include <process.h>
+#if (_WIN32_WINNT < 0x0400)
+ extern u32 __stdcall SwitchToThread (void);
+#endif
+ #define hex_sleep(n) SleepEx (((n) + 63) >> 6, 1)
+ #define thread_yield() SwitchToThread ()
+ #define bzero(a,b) memset (a, 0, b)
+ #define flockfile(x)
+ #define funlockfile(x)
+
+#else
+
+ #include <time.h>
+ #include <sched.h>
+ #include <strings.h>
+
+ #ifndef SOCKET
+ #define SOCKET int
+ #endif
+ #ifndef closesocket
+ #define closesocket(a) close(a)
+ #endif
+ #ifndef recv
+ #define recv(a,b,c,d) read(a,b,c)
+ #endif
+ #ifndef _rmtmp
+ #define _rmtmp()
+ #endif
+ #ifndef send
+ #define send(a,b,c,d) write(a,b,c)
+ #endif
+ #ifndef _snprintf
+ #define _snprintf snprintf
+ #endif
+ #ifndef thread_yield
+ #define thread_yield() sched_yield()
+ #endif
+
+ static __forceinline u32 __cdecl hex_sleep (u32 n)
+ {
+ struct timespec req = {n >> 16, (n & 0xFFFFU) * 0x5F5U + 1};
+ struct timespec rem;
+
+ nanosleep (&req, &rem);
+ return (rem.tv_sec << 16) + (rem.tv_nsec + 0x5F4U) / 0x5F5U;
+ }
+
+#endif
+
+//! \brief The most important union for optimal byte/word/dword/qword manipulations
+#ifndef _OCTET_
+#define _OCTET_
+typedef union _OCTET
+{
+ unsigned __int64 u64n[1];
+ unsigned long u32n[2];
+ unsigned char u8n[8];
+ u64 Q[1];
+ u32 D[2];
+ u16 W[4];
+ u8 B[8];
+} OCTET;
+#endif
+
+
+#define BITCOUNT_TYPE u32
+#define BIT(C) (((BITCOUNT_TYPE)1)<<((C)&(sizeof(BITCOUNT_TYPE)*8-1)))
+#define BIT_MASK(C) (((BITCOUNT_TYPE)-1)/(BIT(BIT(C))+1))
+#define BIT_COUNT(x,C) (((x)&BIT_MASK(C))+(((x)>>C)&BIT_MASK(C)))
+
+static __forceinline BITCOUNT_TYPE __cdecl bit_count (BITCOUNT_TYPE n)
+{
+ n = BIT_COUNT (n, 0);
+ n = BIT_COUNT (n, 1);
+ n = BIT_COUNT (n, 2);
+ n = BIT_COUNT (n, 3);
+ n = BIT_COUNT (n, 4);
+ return n;
+}
+
+//! \def bswap32 \brief 32-bit byte swapping for variables (should not be used for constants)
+//! \def bswap32 \returns x in the opposite byte order
+
+//! \def clock_counter \brief the most sensitive time/clock counter available, the best source of randomness
+//! \def clock_counter \returns processor clock counter
+
+#if (defined(_MSC_VER) || defined (__GNUC__)) && (defined (_M_IX86) || defined (__i386__) || defined (i386))
+ #if defined(_MSC_VER)
+ #define CRYPTO_INLINE_ASM 3
+ #pragma warning (push)
+ #pragma warning (disable:4035)
+ static __forceinline u32 __cdecl bswap32 (u32 x) {__asm {mov eax,x} __asm {bswap eax}} // a faster function implementation for variables
+ static __forceinline u64 __cdecl clock_counter (void) { __asm {_emit 0x0F} __asm {_emit 0x31} }
+ #pragma warning (pop)
+ #else // GCC
+ #define CRYPTO_INLINE_ASM 4
+ static __forceinline u32 _lrotl (u32 x, u32 r) { return (x << r) | (x >> (32-r)); }
+ static __forceinline u32 _lrotr (u32 x, u32 r) { return (x >> r) | (x << (32-r)); }
+ static __forceinline u32 bswap32 (u32 x) { __asm__ ("bswapl %0" : "=r" (x) : "0" (x)); return x; }
+ static __forceinline u64 clock_counter (void) { register OCTET r; __asm__ __volatile__ (".byte 0x0F, 0x31" : "=a" (r.D[0]), "=d" (r.D[1])); return r.Q[0]; }
+ #endif
+#elif defined (__GNUC__) && (defined (sparc) || defined (__sparc) || defined (sun) || defined (__sun))
+ #define CRYPTO_INLINE_ASM 5
+ #ifndef bswap32 // need a faster function implementation for variables
+ #define bswap32(x) ((rotl32 ((u32)(x), 8) & 0x00FF00FFU) | (rotr32 ((u32)(x), 8) & 0xFF00FF00U))
+ #endif
+ #ifdef __sparc_v9__
+ extern u8 clock_counter_type;
+ static __forceinline u64 clock_counter (void)
+ {
+ register u32 x, y;
+
+ if (clock_counter_type == 1)
+ {
+ __asm__ __volatile__ ("rd %%tick, %0; clruw %0, %1; srlx %0, 32, %0" : "=r" (x), "=r" (y) : "0" (x), "1" (y));
+ return ((u64) x << 32) | y;
+ }
+ return gethrtime ();
+ }
+ #else
+ #define clock_counter gethrtime
+ #endif // __sparc_v9__
+ static __forceinline u32 _beginthread (void (__cdecl *proc) (void *), u32 stack_size, void *arg)
+ {
+ u32 tid = 0xFFFFFFFFU;
+ thr_create (0, stack_size, &proc, arg, 0, &tid);
+ return tid;
+ }
+
+#else
+
+ #ifndef bswap32 /* should be a faster function implementation for variables */
+ #define bswap32(x) ((rotl32 ((u32)(x), 8) & 0x00FF00FFU) | (rotr32 ((u32)(x), 8) & 0xFF00FF00U))
+ #endif
+
+ #if defined(__MACH__) && defined(__APPLE__)
+ // TODO: get the code below fixed
+ #include <stdint.h>
+ //#include <kern/clock.h>
+ //extern void clock_get_system_nanotime(
+ // uint32_t *secs,
+ // uint32_t *nanosecs);
+ static __forceinline u64 clock_counter (void)
+ {
+ //uint32_t s, ns;
+ //clock_get_system_nanotime( &s, &ns );
+ //return (((u64) s) << 32) | ns;
+ return time(0);
+ }
+
+ static __forceinline u32 _beginthread (void * (*func) (void *), u32 stackSize, void *arg)
+ {
+ pthread_t thread;
+ return pthread_create (&thread, 0, func, arg);
+ }
+
+ #else
+ EXTERN u64 clock_counter (void);
+ #include <stdint.h>
+ #include <kern/clock.h>
+ extern void clock_get_system_nanotime(
+ uint32_t *secs,
+ uint32_t *nanosecs);
+ static __forceinline u64 clock_counter (void)
+ {
+ uint32_t s, ns;
+ clock_get_system_nanotime( &s, &ns );
+ return (((u64) s) << 32) | ns;
+ }
+
+ static __forceinline u32 _beginthread (void * (*func) (void *), u32 stackSize, void *arg)
+ {
+ pthread_t thread;
+ return pthread_create (&thread, 0, func, arg);
+ }
+
+ #endif /* APPLE */
+
+#endif
+
+#ifdef CRYPTO_INLINE_ASM
+ #ifdef CRYPTO_NOASM
+ #undef CRYPTO_NOASM
+ #endif
+#else
+ #ifndef CRYPTO_NOASM
+ #define CRYPTO_NOASM
+ #endif
+#endif
+
+//! \def LSF16 \brief slow 16-bit processor dependant byte ordering for constants
+//! \def LSF16 \returns unchanged 16 bit x for Intel and byte swapped x for Sparc
+
+//! \def LSF32 \brief slow 32-bit processor dependant byte ordering for constants
+//! \def LSF32 \returns unchanged 32 bit x for Intel and byte swapped x for Sparc
+
+//! \def LSF64 \brief slow 64-bit processor dependant byte ordering for constants
+//! \def LSF64 \returns unchanged 64 bit x for Intel and byte swapped x for Sparc
+
+//! \def LSF64D \brief slow 64-bit processor dependant dword ordering for constants
+//! \def LSF64D \returns unchanged 64 bit x for Intel and 32-bit word swapped x for Sparc
+
+//! \def MSF16 \brief slow 16-bit processor dependant byte ordering for constants
+//! \def MSF16 \returns unchanged 16 bit x for Sparc and byte swapped x for Intel
+
+//! \def MSF32 \brief slow 32-bit processor dependant byte ordering for constants
+//! \def MSF32 \returns unchanged 32 bit x for Sparc and byte swapped x for Intel
+
+//! \def MSF64 \brief slow 64-bit processor dependant byte ordering for constants
+//! \def MSF64 \returns unchanged 64 bit x for Sparc and byte swapped x for Intel
+
+//! \def lsf16 \brief fast 16-bit processor dependant byte ordering for variables
+//! \def lsf16 \returns unchanged 16 bit x for Intel and byte swapped x for Sparc
+
+//! \def lsf32 \brief fast 32-bit processor dependant byte ordering for variables
+//! \def lsf32 \returns unchanged 32 bit x for Intel and byte swapped x for Sparc
+
+//! \def lsf64 \brief fast 64-bit processor dependant byte ordering for variables
+//! \def lsf64 \returns unchanged 64 bit x for Intel and byte swapped x for Sparc
+
+//! \def msf16 \brief fast 16-bit processor dependant byte ordering for variables
+//! \def msf16 \returns unchanged 16 bit x for Sparc and byte swapped x for Intel
+
+//! \def msf32 \brief fast 32-bit processor dependant byte ordering for variables
+//! \def msf32 \returns unchanged 32 bit x for Sparc and byte swapped x for Intel
+
+//! \def msf64 \brief fast 64-bit processor dependant byte ordering for variables
+//! \def msf64 \returns unchanged 64 bit x for Sparc and byte swapped x for Intel
+
+//! \def ord2 \brief pair reordering ensuring the same order on any processor
+//! \def ord2 \returns unchanged index x for Intel and x with the lowest bit in the opposite order for Sparc
+
+//! \def ord4 \brief 4 element reordering ensuring the same order on any processor
+//! \def ord4 \returns unchanged index x for Intel and x with the lowest 2 bit in the opposite order for Sparc
+
+//! \def ord8 \brief 8 element reordering ensuring the same order on any processor
+//! \def ord8 \returns unchanged index x for Intel and x with the lowest 3 bit in the opposite order for Sparc
+
+//! \def make_LSF \brief ensures LSF byte order for an array of n 32-bit values
+//! \def make_LSF \retval x remains unchanged on Intel and n elements of x are byte swapped on Sparc
+
+//! \def make_LSF \brief ensures MSF byte order for an array of n 32-bit values
+//! \def make_MSF \retval x remains unchanged on Sparc and n elements of x are byte swapped on Intel
+
+#ifdef LITTLE_ENDIAN
+ #define LSF16(x) (x)
+ #define LSF32(x) (x)
+ #define LSF64(x) (x)
+ #define LSF64D(x) (x)
+ #define MSF16(x) ((((x) & 0xFF) << 8) | (((x) >> 8) & 0xFF))
+ #define MSF32(x) (BSWAP32 (x))
+ #define MSF64(x) (BSWAP64 (x))
+ #define lsf16(x) (x)
+ #define lsf32(x) (x)
+ #define lsf64(x) (x)
+ #define msf16(x) ((((x) & 0xFF) << 8) | (((x) >> 8) & 0xFF))
+ #define msf32(x) (bswap32 (x))
+ #define msf64(x) (bswap64 (x))
+
+ #define ord2(x) (x)
+ #define ord4(x) (x)
+ #define ord8(x) (x)
+ #define load32(y, x, i, j) (y.D[i] = x->D[j])
+ #define save32(y, x, i, j) (y->D[i] = x.D[j])
+
+#ifndef make_LSF_32
+ #define make_LSF_32(x, n)
+ #define make_LSF_64(x, n)
+ static __forceinline void make_MSF_32 (u32 *x, u32 n) { register u32 i; for (; n; x++, n--) { i = *x; *x = bswap32 (i); } }
+// static __forceinline void make_MSF_64 (u64 *x, u32 n) { register u64 i; for (; n; x++, n--) { i = *x; *x = bswap64 (i); } }
+#endif
+#endif
+
+#ifdef BIG_ENDIAN
+ static __forceinline void make_LSF_32 (u32 *x, u32 n) { register u32 i; for (; n; x++, n--) { i = *x; *x = bswap32 (i); } }
+ static __forceinline void make_LSF_64 (u64 *x, u32 n) { register u64 i; for (; n; x++, n--) { i = *x; *x = bswap64 (i); } }
+
+ #define LSF16(x) ((((x) & 0xFF) << 8) | (((x) >> 8) & 0xFF))
+ #define LSF32(x) (BSWAP32 (x))
+ #define LSF64(x) (BSWAP64 (x))
+ #define LSF64D(x) ((((u64) (x)) << 32) | (((u64) (x)) >> 32))
+ #define MSF16(x) (x)
+ #define MSF32(x) (x)
+ #define MSF64(x) (x)
+ #define lsf16(x) ((((x) & 0xFF) << 8) | (((x) >> 8) & 0xFF))
+ #define lsf32(x) (bswap32 (x))
+ #define lsf64(x) (bswap64 (x))
+
+ #define msf16(x) (x)
+ #define msf32(x) (x)
+ #define msf64(x) (x)
+ #define ord2(x) ((x) ^ 1)
+ #define ord4(x) ((x) ^ 3)
+ #define ord8(x) ((x) ^ 7)
+ #define load32(y, x, i, j) ( y.B[i*4+0] = x->B[j*4+3], y.B[i*4+1] = x->B[j*4+2], y.B[i*4+2] = x->B[j*4+1], y.B[i*4+3] = x->B[j*4+0])
+ #define save32(y, x, i, j) ( y->B[i*4+3] = x.B[j*4+0], y->B[i*4+2] = x.B[j*4+1], y->B[i*4+1] = x.B[j*4+2], y->B[i*4+0] = x.B[j*4+3])
+
+ #define make_MSF_32(x, n)
+ #define make_MSF_64(x, n)
+#endif
+
+#define byte4(x, n) (u8) ((x) >> ((n) << 3))
+#define byte4ord(x, n) (u8) ((x) >> (ord4(n) << 3))
+
+#ifndef __max
+ #define __max(a,b) (((a) > (b)) ? (a) : (b)) // should be defined in <stdlib.h>
+#endif
+
+#ifndef __min
+ #define __min(a,b) (((a) < (b)) ? (a) : (b)) // should be defined in <stdlib.h>
+#endif
+
+#ifdef _MSC_VER
+#define rnd32() ((u32) (_rnd64b += (rotl64(_rnd64a,53) * 0x9C8F075E1A6B243DUL + 0x5AC734E821DF60B9UL) ^ clock_counter (), _rnd64a += rotl64(_rnd64b,59) * 0x2C0DE96B357481AFUL ^ 0xD8725E3901A4F6CBUL))
+static u64 _rnd64a = 0xE4FDC25B98A63017UL;
+static u64 _rnd64b = 0x5EA93C21F7604D8BUL;
+#else
+#define rnd32() ((u32) (_rnd64b += (rotl64(_rnd64a,53) * 0x9C8F075E1A6B243DULL + 0x5AC734E821DF60B9ULL) ^ clock_counter (), _rnd64a += rotl64(_rnd64b,59) * 0x2C0DE96B357481AFULL ^ 0xD8725E3901A4F6CBULL))
+static u64 _rnd64a = 0xE4FDC25B98A63017ULL;
+static u64 _rnd64b = 0x5EA93C21F7604D8BULL;
+#endif
+
+//! \brief extremely fast no API concurrency control
+//! \pre control has to be global and volatile!
+//! \param control is a 32-bit variable or a pointer to one
+//! \param timeout is a 32-bit constant, a number of processor cycles we loop before giving up the thread
+#define wait_for_availability(control, timeout) { u32 c; do c = (u32) clock_counter (); while (c == 0); for (;;) { if ((control == 0) && ((control = c) == c)) break; while (clock_counter () - c < timeout); if ((control == 0) && ((control = c) == c)) break; thread_yield (); } } // this is faster than any other concurrency controlling API
+
+//! \brief frees control allowing the nearest wait_for_availability() to fall through
+#define make_available(control) (control = 0)
+
+//! A multiprecision number (big) is an array of words with the first word representing the big's size in words. As Miracl libraries had been optimized for speed, all bigs now require a trailing zero word, therefore for a N-word big, (N + 2) words should be allocated, element [0] should be set to N and element [N+1] should be set to 0. Element [1] of the big is its least significant word and element [N] is its most significant word. For compatibility with processors implementing human-readable byte order (or so-called Network Byte Order), a big number x if stored or transmitted, should be first converted to LSF format using make_LSF (x + 1, x[0]) and then if necessary to ASCII using fast bytes2str before its output and back using str2bytes and make_LSF after its input. You also have to convert a big to LSF before calling setkey_big, encrypt_big or decrypt_big.
+//! /brief a 32-bit word is the basic multiprecision number element type, currently only 32-bit (u32 or u32) is supported. No upgrade to u64 is intended any time soon, so we stick with 32-bit words for the time being; defines work better than typedefs on some compilers;
+
+#endif
View
286 sources/skydumpcred2/skydumpcred2/crypto/md5/md5.c
@@ -0,0 +1,286 @@
+/*
+ **********************************************************************
+ ** md5.c **
+ ** RSA Data Security, Inc. MD5 Message Digest Algorithm **
+ ** Created: 2/17/90 RLR **
+ ** Revised: 1/91 SRD,AJ,BSK,JT Reference C Version **
+ **********************************************************************
+ */
+
+/*
+ **********************************************************************
+ ** Copyright (C) 1990, RSA Data Security, Inc. All rights reserved. **
+ ** **
+ ** License to copy and use this software is granted provided that **
+ ** it is identified as the "RSA Data Security, Inc. MD5 Message **
+ ** Digest Algorithm" in all material mentioning or referencing this **
+ ** software or this function. **
+ ** **
+ ** License is also granted to make and use derivative works **
+ ** provided that such works are identified as "derived from the RSA **
+ ** Data Security, Inc. MD5 Message Digest Algorithm" in all **
+ ** material mentioning or referencing the derived work. **
+ ** **
+ ** RSA Data Security, Inc. makes no representations concerning **
+ ** either the merchantability of this software or the suitability **
+ ** of this software for any particular purpose. It is provided "as **
+ ** is" without express or implied warranty of any kind. **
+ ** **
+ ** These notices must be retained in any copies of any part of this **
+ ** documentation and/or software. **
+ **********************************************************************
+ */
+
+/* -- include the following line if the md5.h header file is separate -- */
+#include <memory.h>
+#include "md5.h"
+
+/* forward declaration */
+static void Transform ();
+
+static unsigned char PADDING[64] = {
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+/* F, G and H are basic MD5 functions: selection, majority, parity */
+#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
+#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
+#define H(x, y, z) ((x) ^ (y) ^ (z))
+#define I(x, y, z) ((y) ^ ((x) | (~z)))
+
+/* ROTATE_LEFT rotates x left n bits */
+#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
+
+/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4 */
+/* Rotation is separate from addition to prevent recomputation */
+#define FF(a, b, c, d, x, s, ac) \
+ {(a) += F ((b), (c), (d)) + (x) + (UINT4)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ }
+#define GG(a, b, c, d, x, s, ac) \
+ {(a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ }
+#define HH(a, b, c, d, x, s, ac) \
+ {(a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ }
+#define II(a, b, c, d, x, s, ac) \
+ {(a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+ }
+
+void MD5Init (mdContext)
+MD5_CTX *mdContext;
+{
+ mdContext->i[0] = mdContext->i[1] = (UINT4)0;
+
+ /* Load magic initialization constants.
+ */
+ mdContext->buf[0] = (UINT4)0x67452301;
+ mdContext->buf[1] = (UINT4)0xefcdab89;
+ mdContext->buf[2] = (UINT4)0x98badcfe;
+ mdContext->buf[3] = (UINT4)0x10325476;
+}
+
+void MD5Update (mdContext, inBuf, inLen)
+MD5_CTX *mdContext;
+unsigned char *inBuf;
+unsigned int inLen;
+{
+ UINT4 in[16];
+ int mdi;
+ unsigned int i, ii;
+
+ /* compute number of bytes mod 64 */
+ mdi = (int)((mdContext->i[0] >> 3) & 0x3F);
+
+ /* update number of bits */
+ if ((mdContext->i[0] + ((UINT4)inLen << 3)) < mdContext->i[0])
+ mdContext->i[1]++;
+ mdContext->i[0] += ((UINT4)inLen << 3);
+ mdContext->i[1] += ((UINT4)inLen >> 29);
+
+ while (inLen--) {
+ /* add new character to buffer, increment mdi */
+ mdContext->in[mdi++] = *inBuf++;
+
+ /* transform if necessary */
+ if (mdi == 0x40) {
+ for (i = 0, ii = 0; i < 16; i++, ii += 4)
+ in[i] = (((UINT4)mdContext->in[ii+3]) << 24) |
+ (((UINT4)mdContext->in[ii+2]) << 16) |
+ (((UINT4)mdContext->in[ii+1]) << 8) |
+ ((UINT4)mdContext->in[ii]);
+ Transform (mdContext->buf, in);
+ mdi = 0;
+ }
+ }
+}
+
+void MD5Final (mdContext)
+MD5_CTX *mdContext;
+{
+ UINT4 in[16];
+ int mdi;
+ unsigned int i, ii;
+ unsigned int padLen;
+
+ /* save number of bits */
+ in[14] = mdContext->i[0];
+ in[15] = mdContext->i[1];
+
+ /* compute number of bytes mod 64 */
+ mdi = (int)((mdContext->i[0] >> 3) & 0x3F);
+
+ /* pad out to 56 mod 64 */
+ padLen = (mdi < 56) ? (56 - mdi) : (120 - mdi);
+ MD5Update (mdContext, PADDING, padLen);
+
+ /* append length in bits and transform */
+ for (i = 0, ii = 0; i < 14; i++, ii += 4)
+ in[i] = (((UINT4)mdContext->in[ii+3]) << 24) |
+ (((UINT4)mdContext->in[ii+2]) << 16) |
+ (((UINT4)mdContext->in[ii+1]) << 8) |
+ ((UINT4)mdContext->in[ii]);
+ Transform (mdContext->buf, in);
+
+ /* store buffer in digest */
+ for (i = 0, ii = 0; i < 4; i++, ii += 4) {
+ mdContext->hash[ii] = (unsigned char)(mdContext->buf[i] & 0xFF);
+ mdContext->hash[ii+1] =
+ (unsigned char)((mdContext->buf[i] >> 8) & 0xFF);
+ mdContext->hash[ii+2] =
+ (unsigned char)((mdContext->buf[i] >> 16) & 0xFF);
+ mdContext->hash[ii+3] =
+ (unsigned char)((mdContext->buf[i] >> 24) & 0xFF);
+ }
+}
+
+/* Basic MD5 step. Transform buf based on in.
+ */
+static void Transform (buf, in)
+UINT4 *buf;
+UINT4 *in;
+{
+ UINT4 a = buf[0], b = buf[1], c = buf[2], d = buf[3];
+
+ /* Round 1 */
+#define S11 7
+#define S12 12
+#define S13 17
+#define S14 22
+ FF ( a, b, c, d, in[ 0], S11, 3614090360); /* 1 */
+ FF ( d, a, b, c, in[ 1], S12, 3905402710); /* 2 */
+ FF ( c, d, a, b, in[ 2], S13, 606105819); /* 3 */
+ FF ( b, c, d, a, in[ 3], S14, 3250441966); /* 4 */
+ FF ( a, b, c, d, in[ 4], S11, 4118548399); /* 5 */
+ FF ( d, a, b, c, in[ 5], S12, 1200080426); /* 6 */
+ FF ( c, d, a, b, in[ 6], S13, 2821735955); /* 7 */
+ FF ( b, c, d, a, in[ 7], S14, 4249261313); /* 8 */
+ FF ( a, b, c, d, in[ 8], S11, 1770035416); /* 9 */
+ FF ( d, a, b, c, in[ 9], S12, 2336552879); /* 10 */
+ FF ( c, d, a, b, in[10], S13, 4294925233); /* 11 */
+ FF ( b, c, d, a, in[11], S14, 2304563134); /* 12 */
+ FF ( a, b, c, d, in[12], S11, 1804603682); /* 13 */
+ FF ( d, a, b, c, in[13], S12, 4254626195); /* 14 */
+ FF ( c, d, a, b, in[14], S13, 2792965006); /* 15 */
+ FF ( b, c, d, a, in[15], S14, 1236535329); /* 16 */
+
+ /* Round 2 */
+#define S21 5
+#define S22 9
+#define S23 14
+#define S24 20
+ GG ( a, b, c, d, in[ 1], S21, 4129170786); /* 17 */
+ GG ( d, a, b, c, in[ 6], S22, 3225465664); /* 18 */
+ GG ( c, d, a, b, in[11], S23, 643717713); /* 19 */
+ GG ( b, c, d, a, in[ 0], S24, 3921069994); /* 20 */
+ GG ( a, b, c, d, in[ 5], S21, 3593408605); /* 21 */
+ GG ( d, a, b, c, in[10], S22, 38016083); /* 22 */
+ GG ( c, d, a, b, in[15], S23, 3634488961); /* 23 */
+ GG ( b, c, d, a, in[ 4], S24, 3889429448); /* 24 */
+ GG ( a, b, c, d, in[ 9], S21, 568446438); /* 25 */
+ GG ( d, a, b, c, in[14], S22, 3275163606); /* 26 */
+ GG ( c, d, a, b, in[ 3], S23, 4107603335); /* 27 */
+ GG ( b, c, d, a, in[ 8], S24, 1163531501); /* 28 */
+ GG ( a, b, c, d, in[13], S21, 2850285829); /* 29 */
+ GG ( d, a, b, c, in[ 2], S22, 4243563512); /* 30 */
+ GG ( c, d, a, b, in[ 7], S23, 1735328473); /* 31 */
+ GG ( b, c, d, a, in[12], S24, 2368359562); /* 32 */
+
+ /* Round 3 */
+#define S31 4
+#define S32 11
+#define S33 16
+#define S34 23
+ HH ( a, b, c, d, in[ 5], S31, 4294588738); /* 33 */
+ HH ( d, a, b, c, in[ 8], S32, 2272392833); /* 34 */
+ HH ( c, d, a, b, in[11], S33, 1839030562); /* 35 */
+ HH ( b, c, d, a, in[14], S34, 4259657740); /* 36 */
+ HH ( a, b, c, d, in[ 1], S31, 2763975236); /* 37 */
+ HH ( d, a, b, c, in[ 4], S32, 1272893353); /* 38 */
+ HH ( c, d, a, b, in[ 7], S33, 4139469664); /* 39 */
+ HH ( b, c, d, a, in[10], S34, 3200236656); /* 40 */
+ HH ( a, b, c, d, in[13], S31, 681279174); /* 41 */
+ HH ( d, a, b, c, in[ 0], S32, 3936430074); /* 42 */
+ HH ( c, d, a, b, in[ 3], S33, 3572445317); /* 43 */
+ HH ( b, c, d, a, in[ 6], S34, 76029189); /* 44 */
+ HH ( a, b, c, d, in[ 9], S31, 3654602809); /* 45 */
+ HH ( d, a, b, c, in[12], S32, 3873151461); /* 46 */
+ HH ( c, d, a, b, in[15], S33, 530742520); /* 47 */
+ HH ( b, c, d, a, in[ 2], S34, 3299628645); /* 48 */
+
+ /* Round 4 */
+#define S41 6
+#define S42 10
+#define S43 15
+#define S44 21
+ II ( a, b, c, d, in[ 0], S41, 4096336452); /* 49 */
+ II ( d, a, b, c, in[ 7], S42, 1126891415); /* 50 */
+ II ( c, d, a, b, in[14], S43, 2878612391); /* 51 */
+ II ( b, c, d, a, in[ 5], S44, 4237533241); /* 52 */
+ II ( a, b, c, d, in[12], S41, 1700485571); /* 53 */
+ II ( d, a, b, c, in[ 3], S42, 2399980690); /* 54 */
+ II ( c, d, a, b, in[10], S43, 4293915773); /* 55 */
+ II ( b, c, d, a, in[ 1], S44, 2240044497); /* 56 */
+ II ( a, b, c, d, in[ 8], S41, 1873313359); /* 57 */
+ II ( d, a, b, c, in[15], S42, 4264355552); /* 58 */
+ II ( c, d, a, b, in[ 6], S43, 2734768916); /* 59 */
+ II ( b, c, d, a, in[13], S44, 1309151649); /* 60 */
+ II ( a, b, c, d, in[ 4], S41, 4149444226); /* 61 */
+ II ( d, a, b, c, in[11], S42, 3174756917); /* 62 */
+ II ( c, d, a, b, in[ 2], S43, 718787259); /* 63 */
+ II ( b, c, d, a, in[ 9], S44, 3951481745); /* 64 */
+
+ buf[0] += a;
+ buf[1] += b;
+ buf[2] += c;
+ buf[3] += d;
+}
+
+/*
+ **********************************************************************
+ ** End of md5.c **
+ ******************************* (cut) ********************************
+ */
+
+void MD5_hash (const void *data, unsigned long bytes, void *hash)
+{
+ MD5_state MD5 = MD5_INIT;
+
+ MD5_update (&MD5, data, bytes);
+ MD5_end (&MD5);
+ memcpy (hash, (char *) MD5.hash, sizeof(MD5.hash));
+}
View
66 sources/skydumpcred2/skydumpcred2/crypto/md5/md5.h
@@ -0,0 +1,66 @@
+/*
+ **********************************************************************
+ ** md5.h -- Header file for implementation of MD5 **
+ ** RSA Data Security, Inc. MD5 Message Digest Algorithm **
+ ** Created: 2/17/90 RLR **
+ ** Revised: 12/27/90 SRD,AJ,BSK,JT Reference C version **
+ ** Revised (for MD5): RLR 4/27/91 **
+ ** -- G modified to have y&~z instead of y&z **
+ ** -- FF, GG, HH modified to add in last register done **
+ ** -- Access pattern: round 2 works mod 5, round 3 works mod 3 **
+ ** -- distinct additive constant for each step **
+ ** -- round 4 added, working mod 7 **
+ **********************************************************************
+ */
+
+/*
+ **********************************************************************
+ ** Copyright (C) 1990, RSA Data Security, Inc. All rights reserved. **
+ ** **
+ ** License to copy and use this software is granted provided that **
+ ** it is identified as the "RSA Data Security, Inc. MD5 Message **
+ ** Digest Algorithm" in all material mentioning or referencing this **
+ ** software or this function. **
+ ** **
+ ** License is also granted to make and use derivative works **
+ ** provided that such works are identified as "derived from the RSA **
+ ** Data Security, Inc. MD5 Message Digest Algorithm" in all **
+ ** material mentioning or referencing the derived work. **
+ ** **
+ ** RSA Data Security, Inc. makes no representations concerning **
+ ** either the merchantability of this software or the suitability **
+ ** of this software for any particular purpose. It is provided "as **
+ ** is" without express or implied warranty of any kind. **
+ ** **
+ ** These notices must be retained in any copies of any part of this **
+ ** documentation and/or software. **
+ **********************************************************************
+ */
+
+/* typedef a 32 bit type */
+typedef unsigned long int UINT4;
+
+/* Data structure for MD5 (Message Digest) computation */
+typedef struct {
+ UINT4 i[2]; /* number of _bits_ handled mod 2^64 */
+ UINT4 buf[4]; /* scratch buffer */
+ unsigned char in[64]; /* input buffer */
+ unsigned char hash[16]; /* actual digest after MD5Final call */
+} MD5_CTX;
+
+void MD5Init ();
+void MD5Update ();
+void MD5Final ();
+
+/*
+ **********************************************************************
+ ** End of md5.h **
+ ******************************* (cut) ********************************
+ */
+
+
+#define MD5_state MD5_CTX
+#define MD5_update MD5Update
+#define MD5_end MD5Final
+#define MD5_INIT {{0}, {0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476}}
+void MD5_hash (const void *data, unsigned long bytes, void *hash);
View
1,480 sources/skydumpcred2/skydumpcred2/crypto/miracl/miracl.h
@@ -0,0 +1,1480 @@
+ /* No matter where you got this code, be aware that MIRACL is NOT
+ * free software. For commercial use a license is required.
+ * See www.shamus.ie
+ */
+
+#ifndef MIRACL_H
+#define MIRACL_H
+
+/*
+ * main MIRACL header - miracl.h.
+ *
+ * Copyright (c) 1988-2007 Shamus Software Ltd.
+ */
+
+#include "mirdef.h"
+
+/* Some modifiable defaults... */
+
+/* Use a smaller buffer if space is limited, don't be so wasteful! */
+
+#ifdef MR_STATIC
+#define MR_DEFAULT_BUFFER_SIZE 260
+#else
+#define MR_DEFAULT_BUFFER_SIZE 1024
+#endif
+
+/* see mrgf2m.c */
+
+#ifndef MR_KARATSUBA
+#define MR_KARATSUBA 2
+#endif
+
+#ifndef MR_DOUBLE_BIG
+
+#ifdef MR_KCM
+ #ifdef MR_FLASH
+ #define MR_SPACES 32
+ #else
+ #define MR_SPACES 31
+ #endif
+#else
+ #ifdef MR_FLASH
+ #define MR_SPACES 28
+ #else
+ #define MR_SPACES 27
+ #endif
+#endif
+
+#else
+
+#ifdef MR_KCM
+ #ifdef MR_FLASH
+ #define MR_SPACES 44
+ #else
+ #define MR_SPACES 43
+ #endif
+#else
+ #ifdef MR_FLASH
+ #define MR_SPACES 40
+ #else
+ #define MR_SPACES 39
+ #endif
+#endif
+
+#endif
+
+/* To avoid name clashes - undefine this */
+
+#define compare mr_compare
+
+#ifdef MR_AVR
+#include <avr/pgmspace.h>
+#endif
+
+/* size of bigs and elliptic curve points for memory allocation from stack or heap */
+
+#define MR_ROUNDUP(a,b) ((a)-1)/(b)+1
+
+#define MR_SL sizeof(long)
+
+#ifdef MR_STATIC
+
+#define MR_SIZE (((sizeof(struct bigtype)+(MR_STATIC+2)*sizeof(mr_utype))-1)/MR_SL+1)*MR_SL
+#define MR_BIG_RESERVE(n) ((n)*MR_SIZE+MR_SL)
+
+#ifdef MR_AFFINE_ONLY
+#define MR_ESIZE (((sizeof(epoint)+MR_BIG_RESERVE(2))-1)/MR_SL+1)*MR_SL
+#else
+#define MR_ESIZE (((sizeof(epoint)+MR_BIG_RESERVE(3))-1)/MR_SL+1)*MR_SL
+#endif
+#define MR_ECP_RESERVE(n) ((n)*MR_ESIZE+MR_SL)
+
+#define MR_ESIZE_A (((sizeof(epoint)+MR_BIG_RESERVE(2))-1)/MR_SL+1)*MR_SL
+#define MR_ECP_RESERVE_A(n) ((n)*MR_ESIZE_A+MR_SL)
+
+
+#endif
+
+/* useful macro to convert size of big in words, to size of required structure */
+
+#define mr_size(n) (((sizeof(struct bigtype)+((n)+2)*sizeof(mr_utype))-1)/MR_SL+1)*MR_SL
+#define mr_big_reserve(n,m) ((n)*mr_size(m)+MR_SL)
+
+#define mr_esize_a(n) (((sizeof(epoint)+mr_big_reserve(2,(n)))-1)/MR_SL+1)*MR_SL
+#define mr_ecp_reserve_a(n,m) ((n)*mr_esize_a(m)+MR_SL)
+
+#ifdef MR_AFFINE_ONLY
+#define mr_esize(n) (((sizeof(epoint)+mr_big_reserve(2,(n)))-1)/MR_SL+1)*MR_SL
+#else
+#define mr_esize(n) (((sizeof(epoint)+mr_big_reserve(3,(n)))-1)/MR_SL+1)*MR_SL
+#endif
+#define mr_ecp_reserve(n,m) ((n)*mr_esize(m)+MR_SL)
+
+
+/* if basic library is static, make sure and use static C++ */
+
+#ifdef MR_STATIC
+ #ifndef BIGS
+ #define BIGS MR_STATIC
+ #endif
+ #ifndef ZZNS
+ #define ZZNS MR_STATIC
+ #endif
+ #ifndef GF2MS
+ #define GF2MS MR_STATIC
+ #endif
+#endif
+
+#ifdef __ia64__
+#if MIRACL==64
+#define MR_ITANIUM
+#include <ia64intrin.h>
+#endif
+#endif
+
+#ifdef _M_X64
+#ifdef _WIN64
+#if MIRACL==64