Advertisement
Reisyukaku

cetkGen.c

Jan 4th, 2017
457
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 15.59 KB | None | 0 0
  1. /*
  2. *   cetkGen.c
  3. *       by Reisyukaku
  4. *   Quick and dirty ticket generator for retail and dev.
  5. */
  6.  
  7. #include <stdio.h>
  8. #include <string.h>
  9. #include <malloc.h>
  10.  
  11. static const unsigned char devChainSig[] =
  12. {
  13.     0,1,0,4,99,128,90,53,26,67,123,162,67,25,187,58,119,123,122,243,94,114,75,21,10,6,57,108,95,236,56,69,177,136,118,38,141,94,218,230,47,20,186,2,250,214,252,59,43,190,135,7,99,142,85,191,5,90,252,252,179,
  14.     71,105,17,137,219,28,175,75,67,118,98,62,48,137,10,157,59,187,62,80,189,247,166,192,247,248,187,13,181,106,187,198,195,80,200,136,187,157,240,155,209,48,100,96,105,221,52,103,167,0,235,220,249,140,176,
  15.     247,147,14,129,254,152,217,114,69,139,148,126,89,226,190,78,145,45,117,202,27,142,46,244,109,115,177,107,53,181,103,13,99,45,81,56,83,40,25,29,157,174,141,198,97,204,239,164,171,226,243,176,76,123,226,
  16.     113,181,249,44,250,85,205,136,139,114,204,190,103,250,223,239,107,83,60,69,216,203,223,178,118,65,70,214,194,111,39,22,197,7,243,244,68,102,163,21,210,119,242,137,218,253,213,80,207,164,155,234,202,201,
  17.     123,229,70,14,237,155,251,4,169,218,25,88,217,42,32,138,172,193,244,142,233,20,216,138,215,65,213,91,155,100,34,216,175,174,199,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,0,0,0,0,0,
  18.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,111,111,116,45,67,65,48,48,48,48,48,48,48,52,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,88,
  19.     83,48,48,48,48,48,48,48,57,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,163,71,164,192,132,76,235,126,176,207,240,174,183,119,105,133,147,
  20.     228,153,90,149,78,88,23,56,206,214,129,176,189,119,9,231,248,154,223,173,5,72,131,246,195,253,223,123,131,224,12,38,129,84,67,41,234,130,108,137,240,166,116,66,134,77,50,96,50,125,167,122,19,64,102,89,
  21.     218,62,65,107,39,148,3,79,170,34,157,213,84,82,219,39,10,106,162,61,25,177,102,27,25,125,171,199,14,136,23,145,161,42,180,60,108,203,245,170,124,58,221,54,251,53,113,123,32,1,89,0,214,246,144,57,53,65,
  22.     49,248,193,192,87,58,53,24,88,144,177,173,154,14,236,224,244,122,125,165,39,72,201,114,171,13,8,123,98,53,64,145,20,43,177,29,26,250,249,205,92,23,19,83,82,113,202,226,42,120,177,127,74,205,89,216,186,
  23.     29,125,112,95,120,27,159,157,55,24,142,215,205,13,73,87,116,105,136,58,107,142,78,27,133,221,190,57,69,5,137,86,18,151,89,154,9,164,200,45,47,245,207,180,115,112,219,88,30,178,78,119,111,164,126,98,223,
  24.     183,5,232,128,66,92,184,120,135,151,127,102,44,95,0,1,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,3,25,73,66,157,30,88,166,46,126,139,
  25.     86,209,183,106,227,2,253,139,151,73,31,119,135,69,247,83,136,196,221,11,235,29,241,34,251,150,66,21,20,151,118,74,83,207,120,21,24,69,228,44,168,253,228,134,253,42,79,83,248,161,186,0,138,116,133,255,115,
  26.     179,191,126,60,152,7,41,208,101,107,105,50,25,173,232,53,235,95,255,252,203,124,187,94,48,127,224,104,139,136,142,242,210,5,63,183,231,145,233,133,253,21,239,16,215,156,202,136,214,187,21,232,228,113,74,
  27.     152,238,9,191,123,138,240,83,35,43,100,80,230,213,253,255,194,10,109,30,166,162,56,18,225,1,69,37,213,109,64,130,112,59,134,152,105,89,167,60,209,161,67,100,210,194,218,234,150,176,149,247,108,70,228,255,
  28.     65,85,70,94,112,239,30,211,16,83,217,112,17,224,16,204,147,231,145,64,19,104,127,163,168,2,153,109,30,85,123,28,204,122,126,143,88,101,193,116,46,40,226,109,239,56,169,58,181,216,45,67,236,204,191,11,239,
  29.     34,225,253,87,226,134,67,51,88,47,237,234,188,1,47,152,109,223,195,233,68,121,115,71,3,8,69,91,220,87,170,23,11,132,66,127,115,162,155,72,246,218,19,95,102,199,69,193,66,168,74,251,14,106,94,237,133,215,
  30.     185,113,153,54,248,206,43,98,31,57,95,64,220,3,190,248,133,76,17,23,255,12,18,134,65,204,120,67,185,123,67,70,219,34,111,96,38,172,181,108,39,139,142,14,167,154,45,101,239,121,142,16,120,173,128,237,75,
  31.     150,4,210,240,139,44,214,74,35,163,219,39,8,51,180,2,248,8,81,243,91,237,62,228,87,124,102,96,251,241,109,148,19,224,156,145,122,73,212,44,109,163,117,188,39,240,35,13,185,143,137,115,171,2,123,82,44,213,
  32.     126,192,61,37,232,179,252,52,148,201,127,177,8,254,24,198,138,67,54,228,108,38,182,242,128,210,126,52,190,40,124,62,70,135,188,157,119,107,118,217,40,209,182,53,46,192,52,125,114,148,170,147,96,38,141,
  33.     38,245,246,82,6,74,242,64,215,208,12,124,94,163,195,45,230,45,155,92,75,76,171,111,215,189,55,29,87,194,22,96,149,145,14,74,216,233,237,24,30,247,97,147,97,83,137,45,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  34.     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,0,0,0,0,0,0,0,0,0,0,0,0,82,111,111,116,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  35.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,67,65,48,48,48,48,48,48,48,52,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,18,42,70,201,204,45,196,223,41,
  36.     48,228,223,63,140,112,160,120,148,135,117,173,94,154,166,4,197,180,216,234,255,42,161,210,20,103,101,100,239,202,40,204,0,21,69,84,161,163,234,19,121,233,230,202,172,237,21,147,254,136,216,154,198,184,
  37.     172,204,171,110,32,124,235,124,202,41,128,158,41,128,68,6,98,183,212,56,42,21,218,67,8,87,69,169,170,229,154,160,91,219,50,246,104,105,162,221,66,149,56,108,135,236,221,53,8,162,207,96,208,30,35,236,47,
  38.     230,152,244,112,214,0,21,73,162,240,103,89,19,30,83,76,112,6,5,125,239,29,24,168,63,10,199,156,254,128,255,90,145,242,190,212,160,131,112,97,25,10,3,41,144,33,101,64,60,154,144,143,182,21,115,159,60,227,
  39.     59,241,186,234,22,194,91,206,215,150,63,172,201,210,77,156,10,215,111,192,32,178,196,184,76,16,167,65,162,204,125,155,172,58,172,204,163,82,155,172,49,106,154,167,93,42,38,199,215,210,136,203,164,102,197,
  40.     254,95,69,74,230,121,116,74,144,161,87,114,219,59,14,71,164,154,240,49,209,109,190,171,51,43,0,1,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  41.     0,0,0  
  42. };
  43.  
  44. static const unsigned char retChainSig[] =
  45. {
  46.     0,1,0,4,145,158,190,70,74,208,245,82,205,27,114,231,136,73,16,207,85,169,240,46,80,120,150,65,216,150,104,61,192,5,189,10,234,135,7,157,138,194,132,198,117,6,95,116,200,191,55,200,128,68,64,149,2,160,34,
  47.     152,11,184,173,72,56,63,109,40,167,157,227,150,38,204,178,178,42,15,25,228,16,50,240,148,179,159,240,19,49,70,222,200,246,193,169,213,92,210,141,158,28,71,179,209,31,79,84,38,194,199,128,19,90,39,117,211,
  48.     202,103,155,199,232,52,240,224,251,88,230,136,96,167,19,48,252,149,121,23,147,200,251,169,53,167,166,144,143,34,157,238,42,12,166,185,178,59,18,212,149,166,254,25,208,215,38,72,33,104,120,96,90,102,83,
  49.     141,191,55,104,153,144,93,52,69,252,92,114,122,14,19,224,226,200,151,28,156,250,108,96,103,136,117,115,42,78,117,82,61,47,86,47,18,170,189,21,115,191,6,201,64,84,174,250,129,167,20,23,175,154,74,6,109,
  50.     15,252,90,214,75,171,40,177,255,96,102,31,68,55,212,158,30,13,148,18,235,75,202,207,76,253,106,52,8,132,121,130,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,0,0,0,0,0,0,0,0,0,0,0,0,0,
  51.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,111,111,116,45,67,65,48,48,48,48,48,48,48,51,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,88,83,48,48,48,48,
  52.     48,48,48,99,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,122,8,148,173,80,91,182,198,126,46,91,221,106,59,236,67,217,16,199,114,233,204,
  53.     41,13,165,133,136,183,125,204,17,104,11,179,226,159,78,171,187,38,233,140,38,1,152,92,4,27,177,67,120,230,137,24,26,173,119,5,104,233,40,162,185,129,103,238,62,16,208,114,190,239,31,162,47,162,170,62,19,
  54.     241,30,24,54,169,42,66,129,239,112,170,244,228,98,153,130,33,198,251,185,189,208,23,230,172,89,4,148,233,206,169,133,156,235,45,42,76,23,102,242,195,57,18,197,143,20,168,3,227,111,204,220,204,220,19,253,
  55.     122,231,124,122,120,217,151,230,172,195,85,87,224,211,233,235,100,180,60,146,244,197,13,103,166,2,222,179,145,176,102,97,205,50,136,11,214,73,18,175,28,188,183,22,42,6,240,37,101,211,176,236,228,252,236,
  56.     221,174,138,73,52,219,142,230,127,48,23,152,98,33,21,93,19,28,108,63,9,171,25,69,194,6,172,112,201,66,179,111,73,161,24,59,205,120,182,228,180,124,108,92,172,15,141,98,248,151,198,149,61,209,47,40,183,
  57.     12,91,125,247,81,129,154,152,52,101,38,37,0,1,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,3,112,65,56,239,187,189,161,106,152,125,217,
  58.     1,50,109,28,148,89,72,76,136,162,134,27,145,163,18,88,122,231,14,246,35,126,197,14,16,50,220,57,221,232,154,150,168,232,89,215,106,152,166,231,227,106,12,254,53,44,168,147,5,130,52,255,131,63,203,59,3,
  59.     129,30,159,13,192,217,165,47,128,69,180,178,249,65,27,103,165,28,68,181,239,140,231,123,214,213,107,167,87,52,161,133,109,230,212,190,214,211,162,66,199,200,121,27,52,34,55,94,92,119,154,191,7,47,118,149,
  60.     239,160,247,91,203,131,120,159,195,14,63,228,204,131,146,32,120,64,99,137,73,199,246,136,86,95,100,155,116,214,61,141,88,255,173,218,87,30,149,84,66,107,19,24,252,70,137,131,212,200,165,98,139,6,182,252,
  61.     93,80,124,19,231,161,138,193,81,30,182,214,46,165,68,143,131,80,20,71,169,175,179,236,194,144,60,157,213,47,146,42,201,172,219,239,88,198,2,24,72,217,110,32,135,50,211,209,217,217,234,68,13,145,98,28,122,
  62.     153,219,136,67,197,156,31,46,44,125,155,87,125,81,44,22,109,111,126,26,173,74,119,74,55,68,126,120,254,32,33,225,74,149,209,18,160,104,173,160,25,244,99,199,165,86,133,170,187,104,136,185,36,100,131,209,
  63.     139,156,128,111,71,73,24,51,23,130,52,74,75,133,49,51,75,38,48,50,99,217,210,235,79,75,185,150,2,179,82,246,174,64,70,198,154,94,126,142,74,24,239,155,192,162,222,214,19,16,65,112,18,253,130,76,193,22,
  64.     207,183,196,193,247,236,113,119,161,116,70,203,222,150,243,237,216,143,205,5,47,11,136,138,69,253,175,43,99,19,84,244,13,22,229,250,156,44,78,218,152,231,152,209,94,96,70,220,83,99,243,9,107,44,96,122,
  65.     157,141,213,91,21,2,166,172,125,60,200,216,197,117,153,142,125,121,105,16,200,4,196,149,35,80,87,233,30,205,38,55,201,193,132,81,81,172,107,154,4,144,174,62,198,244,119,64,160,219,11,163,109,7,89,86,206,
  66.     231,53,78,163,233,164,242,114,11,38,85,12,125,57,67,36,188,12,183,233,49,125,138,134,97,244,33,145,255,16,176,130,86,206,63,210,91,116,94,81,148,144,107,77,97,203,76,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  67.     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,0,0,0,0,0,0,0,0,0,0,0,0,82,111,111,116,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  68.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,67,65,48,48,48,48,48,48,48,51,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,123,232,239,108,178,121,201,226,238,
  69.     225,33,198,234,244,79,246,57,248,143,7,139,75,119,237,159,149,96,176,53,130,129,181,14,85,171,114,17,21,161,119,112,60,122,48,254,58,233,239,28,96,188,29,151,70,118,178,58,104,204,4,177,152,82,91,201,104,
  70.     241,29,226,219,80,228,217,231,240,113,229,98,218,226,9,34,51,233,211,99,246,29,215,193,159,243,164,169,30,143,101,83,212,113,221,123,132,185,241,184,206,115,53,240,245,84,5,99,161,234,184,57,99,224,155,
  71.     233,1,1,31,153,84,99,97,40,112,32,233,204,13,171,72,127,20,13,102,38,161,131,109,39,17,31,32,104,222,71,114,20,145,81,207,105,198,27,166,14,249,217,73,160,247,31,84,153,242,211,154,210,140,112,5,52,130,
  72.     147,196,49,255,189,51,246,188,166,13,199,25,94,162,188,197,109,32,11,175,109,6,208,156,65,219,141,233,199,32,21,76,164,131,43,105,192,140,105,205,59,7,58,0,99,96,47,70,45,51,128,97,165,234,108,145,92,213,
  73.     98,53,121,195,235,100,206,68,239,88,109,20,186,170,136,52,1,155,62,235,238,211,121,0,1,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0    
  74. };
  75.  
  76. static const unsigned char sig[] =
  77. {
  78.     0,1,0,4,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,
  79.     209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,
  80.     165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,
  81.     209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,
  82.     165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,209,94,165,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  83.     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,0,0,0,0,0,0,0  
  84. };
  85.  
  86. static const unsigned char eccPubKey[] =
  87. {
  88.     254,237,250,206,254,237,250,206,254,237,250,206,254,237,250,206,254,237,250,206,254,237,250,206,254,237,250,206,254,237,250,206,254,237,250,206,254,237,250,206,254,237,250,206,254,237,250,206,254,237,250,
  89.     206,254,237,250,206,254,237,250,206,0  
  90. };
  91.  
  92. static const unsigned char contIndex[] =
  93. {
  94.     0,1,0,20,0,0,0,172,0,0,0,20,0,1,0,20,0,0,0,0,0,0,0,40,0,0,0,1,0,0,0,132,0,0,0,132,0,3,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
  95.     255,255,255,255,255,255,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,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,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,
  96.     0,0,0,0,0,0,0,0    
  97. };
  98.  
  99. typedef struct{
  100.     unsigned char signature[0x140];
  101.     unsigned char issuer[0x40];
  102.     unsigned char eccPubKey[0x3C];
  103.     unsigned char version;
  104.     unsigned char CaCrlVersion;
  105.     unsigned char SigCrlVersion;
  106.     unsigned char titleKey[0x10];
  107.     unsigned char reserved;
  108.     unsigned char ticketID[8];
  109.     unsigned char consoleID[4];
  110.     unsigned char titleID[8];
  111.     unsigned char reserved2[2];
  112.     unsigned char tikTitleVersion[2];
  113.     unsigned char reserved3[8];
  114.     unsigned char licType;
  115.     unsigned char commKeyIndex;
  116.     unsigned char reserved4[0x2A];
  117.     unsigned char accntID[4];
  118.     unsigned char reserved5;
  119.     unsigned char audit;
  120.     unsigned char reserved6[0x42];
  121.     unsigned char limits[0x40];
  122.     unsigned char contIndex[0xAC];
  123. } Ticket;
  124.  
  125. void hexstrToBytes(unsigned char *str, unsigned char *out, unsigned size){
  126.     char *pos = str;
  127.     size_t count = 0;
  128.  
  129.      /* WARNING: no sanitization or error-checking whatsoever */
  130.     for(count = 0; count < size; count++) {
  131.         sscanf(pos, "%2hhx", &out[count]);
  132.         pos += 2;
  133.     }
  134. }
  135.  
  136. char isDev = 0;
  137.  
  138. int main(int argc, char **argv){
  139.     if(argc < 3){
  140.         printf("Usage: %s <TID> <enc titlekey> [optional: -dev]\n", argv[0]);
  141.         return 1;
  142.     }
  143.    
  144.     if(argc == 4){
  145.         if(strcmp(argv[3], "-dev") == 0) isDev = 1;
  146.     }
  147.    
  148.     //Fill out info
  149.     Ticket *tik = calloc(1, sizeof(Ticket));
  150.     memcpy(tik->signature, sig, 0x140);
  151.     memcpy(tik->issuer, isDev == 1 ? "Root-CA00000004-XS00000009" : "Root-CA00000003-XS0000000c", 0x1B);
  152.     memcpy(tik->eccPubKey, eccPubKey, 0x3C);
  153.     tik->version = 1;
  154.     tik->audit = 1;
  155.     memcpy(tik->contIndex, contIndex, 0xAC);
  156.    
  157.     //Convert args to bytes to fill out rest of info
  158.     unsigned char keybuf[0x10];
  159.     hexstrToBytes(argv[2], keybuf, 0x10);
  160.     memcpy(tik->titleKey, keybuf, 0x10);
  161.     unsigned char tidbuf[8];
  162.     hexstrToBytes(argv[1], tidbuf, 8);
  163.     memcpy(tik->titleID, tidbuf, 8);
  164.    
  165.     //Write CETK
  166.     FILE *fp;
  167.     fp = fopen("cetk", "wb");
  168.     fwrite(tik, 1, sizeof(Ticket), fp);
  169.     fwrite(isDev == 1 ? devChainSig : retChainSig, 1, 0x700, fp);
  170.     fclose(fp);
  171.    
  172.     free(tik);
  173.    
  174.     return 0;
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement