Driver monitorizare schimb informatii intre aplicatie proprietara si dispozitiv prin COM port - repost
€250-750 EUR
Închis
Data postării: peste 10 ani în urmă
€250-750 EUR
Plata la predare
Practic
Practic se pune problema interceptarii comunicatiei intre o aplicatie de monitorizare proprietara al carei cod sursa nu este cunoscut si un dispozitiv printr-un port COM. Cum orice aplicatie care doreste sa comunice pe portul COM trebuie sa deschida fisierul cu exclusive_access, este necesara dezvoltarea unui driver ce va fi inserat in stiva de driver-e care getioneaza dispozitivul/clasa de dispozitive aferenta sis a intercepteze IRP-urile (in ambele directii preferabil – atat IRP_MJ_READ cat si IRP_MJ_WRITE, obligatoriu pt. IRP_MJ_READ). Este nevoie de acest driver deoarece nu se stie ce protocol de comunicatie este folosit intre dispozitiv si aplicatia sa de monitorizare, prin urmare nu se poate emula aplicatia. Aplicatia permite selectarea portului COM. Este cunoscut faptul ca, pe langa char-uri fara semnificatie anume, se trimit si char-uri in format ASCII cu sens (cu sens, ex: ZONES IN ALARM etc.) – am folosit un analyzer RS232 pentru a capta mesajele. Deci, este nevoie de un driver care sa preia datele din kernel space si sa le transfere in user space. Pentru partea de user-space fie se va prezenta o documentatie cat se poate de detaliata legata de modul in care se pot accesa datele, fie se va realiza un stub code C/C++ in care se preiau informatiile intr-un char* (accesand zona de memorie corespunzatoare, buffer, mempage etc., preferabil a doua varianta), pentru a putea continua dezvoltarea mai departe (din acest program datele vor fi trimise intr-o alta locatie). Aceasta este doar o sugestie de implementare (puteti prezenta o alta solutie si daca este viabila se poate proceda la implementare). Pretul este negociabil – se va discuta ulterior dupa stabilirea detaliilor de implementare, iar deadline-ul este hard insemnand ca dupa expirare aplicatia isi pierde orice utilitate (restrictia de timp este cea mai importanta). Pentru detalii suplimentare va stau la dispozitie 0x30373531333038323630.