Skip to main content

Developing microsoft LYNC client in c++

First for one of my visitors wish...I am going to start from step 13 .I will describe the previous step later.
Step 13 : gssapi-data generation .  It is the most crucial part of LYNC developement. It gives me lot of pain.
I will describe it easily...for some reason I cann't give you the code.

I will go to the process in straight forward way..

First take the challenge data that is gssapidata: from second 401 unauthorize response then decode it in Base64 .As you know there are three type in NTLM ....
They are  >>

Type1:This message contains the host name and the NT domain name of the client.
Type2: This message contains the server's NTLM challenge
Type3: This message contains the username, host name, NT domain name, and the two "responses".

You already understand what are the we need.This is Type2 from server as challenge and Type3 which you will send.For more detail about type see the link >>>ALL about NTLM TYPE

Please don't see their message format in stream of data.

The format of challenge data for type 2 is perfect as >>http://msdn.microsoft.com/en-us/library/cc236642%28v=prot.13%29.aspx

For more easiness I will describe here because it pains me so much.

Type two message format is like>>>

    signature[8];
    int 32bit    message_type;


    unsigned short    length |

    unsigned short    space  | -----------target name;


    unsigned int         offset |

     
    int 32bit    flags;
    unsigned char    challenge[8];
    guint8  zero1[8];
   

   unsigned short    length |

    unsigned short    space  | -----------target info;


    unsigned int         offset | 

       

    int 8bit  product_major_version |
    int 8bit  product_minor_version |
    int 16bit product_build                |--Version;  
    int 8bit  zero2[3]                          |
    int 8bit  ntlm_revision_current   |







   


Just broke the decrypted gssapi-data in that format thats all. 

Target name is just domain name take it as unicode .Now the target info it holds time info of server as milliseconds for synchronization or security as it is.AvPair

Allaways keep in mind that all the data store is in ARRAY[OFFSET]

 example:

unsigned char* target info;
target info = (unsigned char*)&(sDecoded64.c_str()[target_info.offset]);

You understand what i have indicated...... :)

Comments

Popular posts from this blog

UDP server client in c

Server #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <stdio.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <stdlib.h> int main() {         int sock;         int addr_len, bytes_read;         char recv_data[1024],send_data[1024];         struct sockaddr_in server_addr , client_addr;         if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {             perror("Socket");             exit(1);         }         server_addr.sin_family = AF_INET;         server_addr.sin...

[ASTERIK] configure: error: *** uuid support not found (this typically means the uuid development package is missing)

ISSUE: Build error on Asterik , when you want test webrtc feature :) checking for uuid_generate_random in -luuid... no checking for uuid_generate_random in -le2fs-uuid... no checking for uuid_generate_random... no configure: error: *** uuid support not found (this typically means the uuid development package is missing) Fix: This issue arises due to missing of UUID generator specified by rfc4122 . +Linux sudo apt-get install uuid-dev  @Unix yum -y install libuuid-devel Asterik comes with lots of helpful script available on - asterisk/contrib/scripts/ folder of your ASTERIK source. So just use the following command on UNIX console to run the asterik pre-requisite script. contrib/scripts/install_prereq install And you are done! configuring. Now -- Make Asterik.

Video Conferencing Project in Java Source Code

My video conferencing project was completed as 300 project for 3rd year.It is not totally completed. There is some bug in here.To solve these bugs and to help other students this project is open.It is first try to make a project open source in this way so it can be modified.Any kind of question against this project will be answered. As this project was created in 3rd year 1st semester and now i nearly completed my BSc. so there will be little description about this.I will try to describe every class and function later when i get the chance.   For more details and how to build and run go to this link   in github.com . Latest code and binary release : VideoConference-v1.1 Older code and binary release : VideoConference-v1.0 Fix: 1. When in Video chat the Text chat option hanged for good. ################################################################################# FEATURE #############################################################################...