Mam starą tablicę LED, do której wysłałeś jakiś tekst i powiesiłeś go gdzieś ... został wyprodukowany w 1994/95 i komunikuje się przez port szeregowy z 16-bitową aplikacją MS-DOS, w której możesz wpisać jakiś tekst.Jak mogę odwrócić ten prosty wyglądający algorytm?
Tak więc, ponieważ prawdopodobnie nie można go uruchomić w dowolnym miejscu, z wyjątkiem korzystania z DOSBox lub podobnych lew, postanowiłem przerobić go w C#.
Po portu monitorowania oryginalny dos-exe Odkryłam, że to naprawdę nie interesuje Cię odbudowy go - wnioski należy odpowiedzieć odpowiednie różnym bajtów, wstępnie wysłane wiadomości „ping”, itp ...
Być może znasz podobną rutynową procedurę/wzór, jak to robi mój dos-exe, lub możesz dać jakieś wskazówki, próbując ją odwrócić ... Dodatkowo, ponieważ znam tylko programowanie i nie spędzałem wiele czasu na metody odwracania i/lub analizowania protokołów, proszę mnie nie osądzać, jeśli ten temat jest trochę głupi. - Cieszę się, że otrzymam pomoc ...
Wiadomość naprawdę zawierająca tekst, który powinien wyświetlane jest 143 bajtów (tylko tak długo, ponieważ stawia bajtów wypełniających jeśli nie wykorzystać całą przestrzeń z tekstu), w tym MSG zauważyłem następujące wzory:
Czwarty bajt (który wciąż należy do nagłówka msg) zmienia się z listy 6 lub 7 powtarzających się wartości (w moich przykładach ten bajt zawsze będzie wynosił 0F).
Funkcja Ostatnie dwa bajty w kontrolnej
Przykłady:
- wyświetlany tekst: "123" (Hex "31 32 33") kontrolna hex: "45 52"
- tekst: "132" ("31 33 32"), suma kontrolna hex: "55 FF"
- tekst: "122" ("31 32 32"), suma kontrolna w zapisie szesnastkowym: "95 F4"
- tekst: "133" ("31 33 33") kontrolna Hex "85 59"
- tekst: "112" ("31 31 32"), kontrolna Hex "C5 -C8"
- tekst : "124" ("31 32 34"), suma kontrolna w kodzie szesnastkowym: "56 62"
- tekst: "134" ("31 33 34"), suma kontrolna hex: "96 69"
- tekst: "211" ("32 31 31") kontrolna Hex "5D 63"
- tekst: "212" ("32 31 32"), kontrolna Hex "3C A8"
- tekstu {pusty} kontrolna hex: "DB BA"
- tekst: "1" ("31"), sprawdź suma hex: „AE 5F”
tej pory jestem całkowicie pewien, że suma kontrolna naprawdę nie zależy na tym czwarty bajt w nagłówku, bo jeśli to się nie zmieni, sumy kontrolne będą zupełnie inaczej na ten sam tekst będzie wystawiany.
Oto przykład pełnego 143 bajtów-string wyświetlania „123”, tylko daje lepszą orientację:
02 86 04 0F 05 03 01 03 01 03 01 03 00 01 03 00 ...............
00 31 00 32 00 33 00 20 00 20 00 20 00 20 00 20 .1.2.3. . . . .
00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 . . . . . . . .
00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 . . . . . . . .
00 20 00 20 00 20 00 20 00 20 00 FE 03 01 03 01 . . . . . .þ....
04 01 03 00 01 03 00 00 20 00 20 00 20 00 20 00 ........ . . . .
20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 . . . . . . . .
20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 . . . . . . . .
20 00 20 00 20 00 20 00 20 00 20 00 20 45 52
(informacja tekst zaczyna się od 2 bajt 2-giej linii " 00 (...)”
Niestety na całym internecie, nie istnieją żadne instrukcje obsługi, dokumentacje, nawet prawdziwy dowód, że ta informacja board-urządzenie kiedykolwiek istniał.
Hmmmm a twoje pytanie jest? Skąd bierze się wartość tego czwartego bajtu? Jakiego rodzaju sumy kontrolnej (lub CRC) używają? –
Google "[algorytm sumy kontrolnej] (https://www.google.ch/search?q=checksum+algorithm)" i "[suma kontrolna online] (https://www.google.ch/search?q=checksum + online) ". Jeśli masz szczęście, znajdziesz ten, który był używany. –
Prawdopodobnie jest to format Motorola S. Pierwszy bajt 02 wskazuje, że dane mają dwa bajty. Zaczęło się w latach siedemdziesiątych od S1 (jeden bajt), potem S2 (dwa bajty) i wreszcie S4 (cztery bajty). Zobacz stronę http://www.amelek.gda.pl/avr/uisp/srecord.htm – jdweng