[php/C] Webbased msn project

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • xychix
  • Registratie: September 2000
  • Laatst online: 16-09 07:50

xychix

FreeBSD Rules !

Topicstarter
Webbased msn project

Doel:
Ik wil een msnclient schrijven die op een handige en makkelijke manier bediend kan worden. Hoe deze communicatie precies gaat verlopen weet ik nog niet, de client zelf word in C geschreven, en de frontend ga ik in php schrijven.
Aangezien het C proces een verbinding met msn moet onderhouden kan deze niet bij iedere request geherstart worden. Eens gestart mag deze dus niet wegvallen, hoe kunnen we dan door losse requests met het proces communiceren?

Mogelijkheden voor communicatie:
  • de requests worden dmv een xml (of vergelijkbaar top level protocol) in een in-bestand geschreven en de output word door het C proces in een uit-bestand gezet.
  • Vanuit php is het misschien mogelijk om via dgram based (upd) met het proces te communiceren aangezien er dan geen verbinding open hoeft te blijven
  • Misschien is het mogelijk om met pipes te werken, dus een "temp" bestand. php schrijft naar een filedescriptor en C leest eruit, en een 2e "temp" bestand om terug te sturen
  • ik zou er 2 mysql tabellen voor kunnen gebruiken table_php>c en table_c>php
suggesties en/of advies? laat het even weten

huidige stand
op dit moment heb ik een C programma dat 2 argumenten verlangt, een username en een password. Vervolgens logt hij deze persoon aan en vraagt de online users op.

Todo:
een heleboel! hier staat alleen waar ik op hele kort termijn aan ga werken
  • het starten van een childproces om een inkomende chatsessie aan te kunnen gaan (moet ook dmv. een java script een extra browservenster gestart worden en een nieuwe 2 weg communicatie opgezet worden
  • het werken aan de communicatie tussen php en C
Opensource ??
JA, maar nu even niet. de code is TE slordig en buggy. pas als het een poosje werkend gedraaid heeft ga ik opschonen en proberen alle buffer overflows eruit te halen.

Programmeer omgeving
Ik werk onder een op de hd geinstalleerde knoppix, Debian linux dus. Ik gebruik Nedit als editor en gcc om te compileren :P

bronnen:
http://www.venkydude.com/articles/msn.htm
http://www.ecst.csuchico.edu/~beej/guide/net/

suggesties en/of advies? laat het even weten

modjes, mag dit topic open blijven zodat ik eventuele problemen in mijn projectje hier kan vragen, hoef ik niet steeds nieuwe topic open te schoppen. Ook kan ik hier bevindingen en voortgang kwijt die voor andere mensen wel eens handig zouden kunnen zijn.

[ Voor 7% gewijzigd door xychix op 20-08-2003 14:45 ]

Every failure offers you a new opportunity! | Lokatie database|GoT - Notepad


Acties:
  • 0 Henk 'm!

  • xychix
  • Registratie: September 2000
  • Laatst online: 16-09 07:50

xychix

FreeBSD Rules !

Topicstarter
Momenteel zit ik dus vooral te brainstormen over de communicatie tussen php en C

owja, ik programmeer onder Debian Linux

Every failure offers you a new opportunity! | Lokatie database|GoT - Notepad


Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb ergens op de MSDN al een complete webbased client zien staan, incl sourcecode :?

Acties:
  • 0 Henk 'm!

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 08:24

The Eagle

I wear my sunglasses at night

Leuk idee, alleen:
a) het bestaat al in meerdere vormen (check http://msn.pagina.nl)
b) Als je het nieuws had gevolgd wist je dat vanaf gisteren ms zo'n beetje alles wil doen om het connecten met anders clients dan MSN messenger zo goed als uit te bannen. Dus dikke kans dat ook via web niet gaat lukken, zeker niet op de manier zoals jij wilt. Sorry dat ik je uit de droom moet helpen.

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


Acties:
  • 0 Henk 'm!

  • TRON
  • Registratie: September 2001
  • Laatst online: 16-09 13:13
offtopic:
Zou ik je mogen wijzen op de volgende links?
non-Microsoft msn clients werken niet meer
http://messenger.msn.com/Help/Upgrades.aspx

Houd hier dus rekening mee...

Leren door te strijden? Dat doe je op CTFSpel.nl. Vraag een gratis proefpakket aan t.w.v. EUR 50 (excl. BTW)


Acties:
  • 0 Henk 'm!

  • xychix
  • Registratie: September 2000
  • Laatst online: 16-09 07:50

xychix

FreeBSD Rules !

Topicstarter
Verwijderd schreef op 20 August 2003 @ 14:44:
Ik heb ergens op de MSDN al een complete webbased client zien staan, incl sourcecode :?
:'( ik heb heel sourceforge afgezocht en niet gevonden.. :P nouja dan doen wel het voor de experience......
TRON schreef op 20 augustus 2003 @ 14:46:
offtopic:
Zou ik je mogen wijzen op de volgende links?
non-Microsoft msn clients werken niet meer
http://messenger.msn.com/Help/Upgrades.aspx

Houd hier dus rekening mee...
The_Eagle schreef op 20 augustus 2003 @ 14:46:
Leuk idee, alleen:
a) het bestaat al in meerdere vormen (check http://msn.pagina.nl)
b) Als je het nieuws had gevolgd wist je dat vanaf gisteren ms zo'n beetje alles wil doen om het connecten met anders clients dan MSN messenger zo goed als uit te bannen. Dus dikke kans dat ook via web niet gaat lukken, zeker niet op de manier zoals jij wilt. Sorry dat ik je uit de droom moet helpen.
bedankt, mijn amsn werkt goed om dit moment en mijn zelfbouw doet alles ook nog ok.. maar deze bevat nog niet alle functionaliteit.

evt ga ik met tcp dump wel uitvissen waar het mis gaat ;) toch bedankt!

de enige manier om het erg ontoegankelijk te maken lijkt mij door er ingewikkelde challenges in te zetten of te encrypten. maar aangezien alles plain over de lijn gaat moet het toch wel uit te vissen zijn.

Terug naar de vraag die op dit moment speelt
Hoe kan ik vanuit losse requests op een webserver het betste communiceren met een lopend C proces ?? het lijkt mij dat je dan altijd moet werken met In/Out wachtrijen?

pipes ? mysql ? files ?

[ Voor 88% gewijzigd door xychix op 20-08-2003 14:59 ]

Every failure offers you a new opportunity! | Lokatie database|GoT - Notepad


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Mooiste IPC-mechanisme is named pipes, maar je kunt ook gewoon heel het PHP gedeelte skippen en een ISAPI extension schrijven, scheelt imho een hoop werk.

Professionele website nodig?


Verwijderd

Leuk project, maar zoals 'The_Eagle' al schreef is microsoft bezig met alle andere soort clients uit te schakelen.. en ik moet zeggen dat het waarschijnlijk ook nog gaat lukken aangezien ze bij de niewere protocols (8.0) geen MD5 meer gebruiken maar een of andere vage encryptie methode gebruiken (TWN).

Bij de oudere protocols (die momenteel nog wel ondersteund worden) kun je inloggen op deze manier:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<o> Client Connects to messenger.hotmail.com 1863 (Dispatch Server)
>>> VER 0 MSNP7 MSNP6 MSNP5 MSNP4 CVR0\r\n
<<< VER 0 MSNP7 MSNP6 MSNP5 MSNP4 CVR0\r\n
>>> INF 1\r\n
<<< INF 1 MD5\r\n
>>> USR 2 MD5 I example@passport.com\r\n
<<< XFR 2 NS 207.46.106.145:1863 0 207.46.104.20:1863\r\n
<o> messenger.hotmail.com closes connection

<o> client connects to 207.46.106.145 1863
>>> VER 0 MSNP7 MSNP6 MSNP5 MSNP4 CVR0\r\n
<<< VER 0 MSNP7 MSNP6 MSNP5 MSNP4 CVR0\r\n
>>> INF 1\r\n
<<< INF 1 MD5\r\n
>>> USR 2 MD5 I example@passport.com\r\n
<<< USR 2 MD5 S 1013928519.693957190\r\n
>>> USR 3 MD5 S 23e54a439a6a17d15025f4c6cbd0f6b5\r\n
<<< USR 3 OK example@passport.com My%20Screen%20Name 1\r\n
<o> continue NS session . . .


Hier werd dus nog gewoon de MD5 methode gebruikt om in te loggen, nu de niewe protocols:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<o> Client Connects to messenger.hotmail.com 1863 (Dispatch Server)
>>> VER ID MSNP8 CVR0
<<< VER ID MSNP8 CVR0
>>> CVR ID 0x0409 winnt 5.1 i386 MSNMSGR 5.0.0515 MSMSGS YourEmail
<<< CVR ID 1.0.0000 1.0.0000 1.0.0000 http://download.microsoft.com/download/msnmessenger/install/3.0/Win98me/EN-US/mmssetup.exe http://messenger.msn.com/
>>> USR ID TWN I YourEmail
<<< USR ID TWN S lc=1033,id=507,tw=20,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=1039364783,kpp=1,kv=4,ver=2.1.0173.1,tpf=0da32a28649c853d7c02581b3c5c1dd0
>>> USR ID TWN S t=4onBVecYZDf2e0vDo0OueGElFtAeBLMNT4hl4t6LHpU8ko9cPO9ywzRmPsPl6AjdSvt9ZYnelNTtJVY6cQhPXIoQ$$&p=4T9tcshOlAc8yFWdFYjWRPNuETtXMLaqU99th1tx11wD!qIqIXV6eSqHYI54MvIGBZKCzkA!*gXDtrXs9yFePvHME1PFUJTYTWHvu6TgbIHKr*fFsdsOw0tQb3tQ5cbV6fKw*1HmxU6EpxExCiLs3dOL7TWriBpbN1D5p6GiOLtoBprdkgtoWddQ$$
<<< USR ID OK YourEmail YourNick 1 0
<<< Server send profile + ip and port open on your computer
>>> SYN ID 0
<<< SYN ID 59303 369 6
<<< LSG 0 Other%20Contacts 0
<<< LST FriendEmail FriendNickname 11 0 // 11 = Allow ?
<<< LST FriendEmail FriendNickname 13 0 // 13 = block ?
<<< LST FriendEmail FriendNickname 5 0 // 5 = She/He Delete You?
<<< LST FriendEmail FriendNickname 4 // 4 = You delete him/her ?
<<< CHL ID 30795143852859471731
>>> QRY ID PROD0038W!61ZTF9 32 // CRLF 14c1988effb7e3536223760e6fbb18a7 // NO CRLF


zoals je dus ziet gaat deze authenticatie een heel stuk anders, en zover ik weet weet nog niemand echt hoe die TWN-encryptie werkt.

En als microsoft straks alleen de niewere protocollen accepteerd, zullen alle andere clients nutteloos worden. Ik zou dus van tevoren uitzoeken hoe dat nieuwe protocol (encryptie) werkt anders lijkt me dit project alleen maar tijdsverspilling.

  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

en nu kom je precies op een goed punt uit om of een compleet nieuwe messenger te maken/promoten of een andere bestaande weer te gaan gebruiken

Steun Elkaar, Kopieer Nederlands Waar!


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:52

ripexx

bibs

Verwijderd schreef op 20 August 2003 @ 14:44:
Ik heb ergens op de MSDN al een complete webbased client zien staan, incl sourcecode :?
xychix schreef op 20 August 2003 @ 14:46:
:'( ik heb heel sourceforge afgezocht en niet gevonden.. :P nouja dan doen wel het voor de experience......
MSDN -> Microsoft Development Network (http://msdn.microsoft.com/) ;)

buit is binnen sukkel


  • xychix
  • Registratie: September 2000
  • Laatst online: 16-09 07:50

xychix

FreeBSD Rules !

Topicstarter
Het kon idd wel eens een moeilijk verhaal worden. Maar het stuk waar ik nu mee bezig ben, de communicatie van een requestbased (webpage) naar een lopen proces. wil ik toch even af zien te maken.

zal de ISAPI's ook nog eens onder de loep nemen. En wanneer een encryptie held het protocol weer opentrekt dan bouwen we gewoon verder.

Every failure offers you a new opportunity! | Lokatie database|GoT - Notepad


  • Blue2k
  • Registratie: April 2002
  • Laatst online: 25-06-2023
http://www.wbmsn.com/

Hier is een begin van een webbased msn client te vinden. Geloof dat het geprogrammeerd is in asp. Ik persoonlijk ben ook bezig met een client, ik heb er 1 aan het werk onder .NET in C#. Alles staat netjes in classes, dus in feite is het even een frontend schrijven voor asp.net en dan werkt ie als het goed is webbased.

Op dit moment draait ie als .net win32 applicatie. Kunt berichtjes versturen en ontvangen, je gerbuikers checken die online zijn, etc. Maar na dat bericht dat het oude protocol wordt afgestoten was het wel ff slikken :(

  • xychix
  • Registratie: September 2000
  • Laatst online: 16-09 07:50

xychix

FreeBSD Rules !

Topicstarter
Blue2k schreef op 21 August 2003 @ 10:53:
http://www.wbmsn.com/

Hier is een begin van een webbased msn client te vinden. Geloof dat het geprogrammeerd is in asp. Ik persoonlijk ben ook bezig met een client, ik heb er 1 aan het werk onder .NET in C#. Alles staat netjes in classes, dus in feite is het even een frontend schrijven voor asp.net en dan werkt ie als het goed is webbased.

Op dit moment draait ie als .net win32 applicatie. Kunt berichtjes versturen en ontvangen, je gerbuikers checken die online zijn, etc. Maar na dat bericht dat het oude protocol wordt afgestoten was het wel ff slikken :(
maar om te kunnen communicern moet de connectie open blijven staan. het proces moet blijven draaien.

En http is niet een continious connectie maar losse berichten.
hoe ondervind je dat een user weg is (zijn brouwser heeft gesloten, is weggevallen)?

Every failure offers you a new opportunity! | Lokatie database|GoT - Notepad


  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 26-08 09:08

Kippenijzer

McFallafel, nu met paardevlees

Webbased MSN Messenger via PHP staat eea in over dit gedoe :)

  • xychix
  • Registratie: September 2000
  • Laatst online: 16-09 07:50

xychix

FreeBSD Rules !

Topicstarter
http://webmessenger.sourceforge.net/whatis.php
deze bieden inderdaad een webbased frontend aan voor Jabber, welke op zijn beurt weer msn kan. Ik ga dit eens even installeren om te kijken hoe dit werkt. Ondertussen ga ik toch nog even verder met mijn msn project.

Tijdens het bouwen wil ik van de funties die ik schrijf nog een andere applicatie (misschien meerdere) inelkaar plakken.
  • Voor onder linux een commandline tool dat alleen even snel laat zien welke van je vrienden online zijn.
  • Misschien een bot
  • misschien een zo simpel mogelijk herbruikbare msnlib (met simpele functies als msn_login msn_getuserlist enz)

Every failure offers you a new opportunity! | Lokatie database|GoT - Notepad


Verwijderd

de login methode voor MSN protocol 8.0 en hoger is inmiddels al uitgezocht hoe deze werkt:

http://www.hypothetic.org...ead.php?f=1&i=3189&t=3189

dus ik zou nu je project maken met het MSN protocol 8.0 aangezien dat per 15 oktober 2003 alle oudere protocols vervallen.... tevens staat er een heleboel informatie over het protocol op deze site >:) >:)

  • Blue2k
  • Registratie: April 2002
  • Laatst online: 25-06-2023
xychix schreef op 21 augustus 2003 @ 10:57:
[...]

maar om te kunnen communicern moet de connectie open blijven staan. het proces moet blijven draaien.

En http is niet een continious connectie maar losse berichten.
hoe ondervind je dat een user weg is (zijn brouwser heeft gesloten, is weggevallen)?
Dat is heel makkelijk want de sessie op de server is wel open. Je hebt een connectie vanaf de server met het msn netwerk. Niet vanaf de computer die de html output ziet. De .net applicatie draait gewoon op de server, als een user niet binnen 5 minuten een actie uitvoert wordt de connectie afgesloten. En anders kan de gebruiker gewoon op 'uitloggen' oid klikken.

De gebruiker ziet alleen maar de output van de server en dat gaat toevallig via het http protocol.

Acties:
  • 0 Henk 'm!

Verwijderd

Pagina: 1