Hi to all,
I have question about compile with st20cc.exe
How can compile one source code with st20cc.exe???
Example:
Please help me,
I have question about compile with st20cc.exe
How can compile one source code with st20cc.exe???
Example:
Code:
/* Includes --------------------------------------------------------------- */ #include "emu.h" #include "crypto.h" #include <string.h> //--------------------------------------------------------------------------- int conax_ecm (byte *ecm, byte *dw, byte *emu_buf) { int keyIdx; byte *e,*n; if(!emu_buf[0x20A]) return false; // send to card keyIdx=ecm[6]; if(keyIdx==emu_buf[0xEF4]) { e=emu_buf+0xEF6; n=emu_buf+0xF76; } else if(keyIdx==emu_buf[0xEF5]) { e=emu_buf+0xF36; n=emu_buf+0xFB6; } else return false; // key not found in emu return ( conax_decrypt (ecm+7,(int)ecm[4]-2,e,n,dw) ); } int conax_decrypt (byte *buf, byte len, byte *e1, byte *n1, byte *plainwords) { int i, j, num, index, nDigits, eDigits; const byte hash[] = {0x05, 0x00, 0x05}; NN_DIGIT N1[MAX_NN_DIGITS], E1[MAX_NN_DIGITS], ecm[MAX_NN_DIGITS], decm[MAX_NN_DIGITS]; NN_Decode(N1,MAX_NN_DIGITS,n1, 64); NN_Decode(E1,MAX_NN_DIGITS,e1, 64); nDigits = NN_Digits (N1, MAX_NN_DIGITS); eDigits = NN_Digits (E1, MAX_NN_DIGITS); // begin RSA decrypt if (buf[-2]==0x63) num = 1; else num = 0; for (i=len;i>0;) { index = i-64; if(index < 0) index = 0; NN_Decode(ecm,MAX_NN_DIGITS,buf+index,64); R_memset((POINTER)decm,0,sizeof(decm)); NN_ModExp(decm,ecm,E1,eDigits,N1,nDigits); NN_Encode(buf+index,64-num,decm,MAX_NN_DIGITS); if(num) { len=len-num; for(j=index+64-num; j < len; j++) buf[j]=buf[j+num]; } if (i>120){ if (i%60) i-=i%60; else i-=64; } else i-=64; } if(memcmp(hash, buf+2, 3) == 0 && memcmp(buf+5, buf+len-5, 5) == 0) { /* Signature correct, parse decrypted packet */ ParseECM(buf+10,len-10,plainwords); return true; } else return false; // Signature incorrect } void ParseECM (byte *buf, byte len, byte *plainwords) { int i; for(i=0; i<len; ) { byte nano = buf[i++]; byte nanolen = buf[i++]; switch(nano) { case 0x80: case 0x82: ParseECM(buf+i+3, nanolen-3, plainwords); break; case 0x81: ParseECM(buf+i+2, nanolen-2, plainwords); break; case 0x30: if(plainwords) { memcpy(plainwords, buf+i+10, 8); memcpy(plainwords+8, buf+i+2, 8); } break; default: break; } i += nanolen; } }
Comment