Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- main() {
- unsigned char pka[5] = {"AAAA"};
- unsigned char pkm[5] = {"CCCC"};
- unsigned char pkb[5] = {"BBBB"};
- unsigned char ka[5] = {"KKKK"};
- unsigned char km[5] = {"MMMM"};
- unsigned char kb[5] = {"LLLL"};
- unsigned char pac[5];
- unsigned int i=0;
- unsigned char start=0x00;
- unsigned char an,bn,tempya,tempyb;
- unsigned char temp[5];
- memcpy(pac,pka,sizeof(pac));
- printf("Alice send packet to Bob %s\n",pac);
- memcpy(pac,pkm,sizeof(pac));
- printf("MITM changes packet and forwards it to Bob %s\n",pac);
- printf("Bob creates number\n");
- start = pac[0];
- for(i=0;i<0xff;i++) {
- start = start^i;
- if(start == kb[0]) {
- printf("Bob found number to use %2X\n",i);
- bn=i;
- goto skip;
- }
- }
- skip:
- memcpy(pac,pkb,sizeof(pac));
- printf("Bob sends packet to Alice %s\n",pac);
- memcpy(pac,pkm,sizeof(pac));
- printf("MITM changes packet and forwards it to Alice %s\n",pac);
- printf("Alice creates number\n");
- start = pac[0];
- for(i=0;i<0xff;i++) {
- start = start^i;
- if(start == ka[0]) {
- printf("Alice found number to use %2X\n",i);
- an=i;
- goto skip1;
- }
- }
- skip1:
- memcpy(pac,ka,sizeof(pac));
- printf("Alice sends key to Bob %s\n",pac);
- memcpy(pac,km,sizeof(pac));
- printf("MITM changes packet and forwards it to Bob %s as its key\n",pac);
- printf("Bob modfies packet to Alice using mitm key\n");
- start = pac[0];
- for(i=0;i<0xff;i++) {
- start = start^i;
- if(start == pkm[0]) {
- printf("bob modfied to %2X, using mitm instead of alice\n",i);
- tempyb=i;
- goto skip2;
- }
- }
- skip2:
- temp[0] = kb[0]^tempyb;
- temp[1] = kb[1]^tempyb;
- temp[2] = kb[2]^tempyb;
- temp[3] = kb[3]^tempyb;
- memcpy(pac,temp,sizeof(pac));
- printf("Bob sends key to Alice %s \n",pac);
- memcpy(pac,km,sizeof(pac));
- printf("MITM changes packet and forwards it to Bob %s as its key\n",pac);
- printf("Alice modfies packet to Bob using mitm key\n");
- start = pac[0];
- for(i=0;i<0xff;i++) {
- start = start^i;
- if(start == pkm[0]) {
- printf("alice modfied to %2X using mitm key instead of bobs\n",i);
- tempya=i;
- goto skip3;
- }
- }
- skip3:
- temp[0] = ka[0]^tempya;
- temp[1] = ka[1]^tempya;
- temp[2] = ka[2]^tempya;
- temp[3] = ka[3]^tempya;
- memcpy(pac,temp,sizeof(pac));
- printf("Alice sends packet to BOB %s\n",pac);
- printf("MITM changes packet to something..ENTER DATA(4 chars :)\n");
- gets(pac);
- printf("Bob trys to decode it\n");
- start = pac[0];
- for(i=0;i<tempyb;i++) {
- start = start^i;
- }
- printf("Hash check = %2X instead of %2X(bob) %2X(Alice)\n",start,tempyb,tempya);
- exit(1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement