int main() { int n,k; char string[1000]; printf("n="); scanf("%d",&n); printf("k="); scanf("%d",&k); Trellis(n,k); printf("Input BitStream for Decoding is="); scanf("\n%[^\n]s",string); printf("%s\n",string); int p=0,i1,i2; init(); i1=string[0]-'0'; i2=string[1]-'0'; // printf("%d %d\n",i1,i2); first_stage(i1,i2); printf("%c->A->%d %c->B->%d %c->C->%d %c->D->%d\n\n",a[0].pre,a[0].hamming_dist,b[0].pre,b[0].hamming_dist,c[0].pre,c[0].hamming_dist,d[0].pre,d[0].hamming_dist); i1=string[3]-'0'; i2=string[4]-'0'; // printf("%d %d\n",i1,i2); second_stage(i1,i2); printf("%c->A->%d %c->B->%d %c->C->%d %c->D->%d\n\n",a[1].pre,a[1].hamming_dist,b[1].pre,b[1].hamming_dist,c[1].pre,c[1].hamming_dist,d[1].pre,d[1].hamming_dist); p=6; ind=2; int flag=0; if(string[p]=='\0')flag=1; while(string[p]!='\n'&&flag==0) { i1=string[p]-'0'; i2=string[p+1]-'0'; // printf("%d %d\n",i1,i2); /*******Hamming*******/ Finding_hamming(i1,i2); printf("%c->A->%d %c->B->%d %c->C->%d %c->D->%d\n\n",a[ind].pre,a[ind].hamming_dist,b[ind].pre,b[ind].hamming_dist,c[ind].pre,c[ind].hamming_dist,d[ind].pre,d[ind].hamming_dist); ind++; if(string[p+2]=='\0') { printf("%c->A->%d %c->B->%d %c->C->%d %c->D->%d\n\n",a[ind].pre,a[ind].hamming_dist,b[ind].pre,b[ind].hamming_dist,c[ind].pre,c[ind].hamming_dist,d[ind].pre,d[ind].hamming_dist); break; } p=p+3; } return 0; }
void build_payload_bin_sh(int r2_missing){ int i; payload = createList(sizeof(payload_gadget_t)); for(i = 0; i < 4; i++){ state[i] = 0; } for(i = 0; i < 14; i++){ inputs_vector_state[i] = 0; } first_stage(r2_missing); resolve_dependences(); write_stores(); write_data(); print_python_syntax(payload); freeList(payload); }