Odkodowywanie Aztec Code 2D - Dowody Rejestracyjne, algorytm nrv2e, darmowy kod

Odpowiedz Nowy wątek
2018-07-08 14:52
Rev
20

Jeżeli zastanawialiście się kiedyś co zawiera kod graficzny na dowodach rejestracyjnych waszych pojazdów to jest to Aztec Code. Zdekodowanie go da dane (jeszcze po base64), które są dodatkowo skompresowane, ale można je przekształcić do postaci tekstowej za pomocą poniższego kodu.

import base64
from ctypes import *
 
code = 'BgQAANtYAAJDAPkxAHwAQXIw7zcGNN4ANiox+w81HrUGOP8eUABSAEUA+1oAWQBEDv9OAFQAIABN3wAuClMAvlQPV/eKUhq9Wg5X7k58Utc' \
       'WSVq9TF5J79pBZ+5PAEsG12bTSm5GVQBM/ntSAEH7L1dj+0MAS1vvMvovewo3Ut4wDi39HjEAN6Pbl0FNe3YgPt5Q3kv3IlSevVnX1z9FMm' \
       'uCShL2WgBaG9umKADvSAApJnx75k+itwZMAEx9X0rvbkSOTXtOOF/DRy0WOW53fPYLFoMzLr0xAi3DGnevLQOCfJ/vQZ5TcBZrN0oa9k4Af' \
       'A82Q4QaDzj3q8deN6sN7zIE/1x8lbMnQdwBQi5ZT86jL2tqNAr2MwAw34xSH+uPSVPYFxZThBMzON8AMJM5wQA3MwRcMX7bNcET2jInwyed' \
       'E01HZ4dlM94qKy0DL38fNgAqeBszSxOvNIeKfHM7fCLxNQAwVkMtdzl7Xiw/YMyrFzxQACBWw+Hza7c3C93/NWuHg1OWRquPQ5KP02K9IBZ' \
       'T4QZC9oNZU7aXFiOX83U4ADJFC7ADhrNVCyOW8w9qMbEnZhdHbHxjdjIT7E4DW0M3OQuGaxYmCSSSSSr/'
 
ucl = cdll.LoadLibrary('libucl.so')
ucl.ucl_nrv2e_decompress_safe_8.argtypes = (c_char_p, c_int32, POINTER(c_char), POINTER(c_int32), c_void_p)
ucl.ucl_nrv2e_decompress_safe_8.restype = c_int32
 
data = base64.b64decode(code)
 
size = int.from_bytes(data[:4], byteorder='little')
 
buffer = (c_char * size)()
buffer_length = c_int32(size)
 
ucl.ucl_nrv2e_decompress_safe_8(data[4:], len(data), buffer, buffer_length, None)
 
result = bytes(buffer).decode('utf-16')
 
print(result)

Co dla przykładowego kodu daje wynik XXC1|AAA0007046|1465058|PREZYDENT M. ST. WARSZAWY|DZIELNICA MOKOTÓW|UL. RAKOWIECKA 25/27|02-517 WARSZAWA|DMI 1PNK|TOYOTA|E12J|ZZE120(H)||COROLLA|JTDKM28E100089120|2013-11-06|---|KOWALSKI JAN|JAN|KOWALSKI||82091711022|02-517|WARSZAWA||WAŁBRZYSKA|24|30|KOWALSKA MARIA|MARIA|KOWALSKA||88030971022|02-517|WARSZAWA||WAŁBRZYSKA|24|30|1655|1655|2655|1205|M1|e11*2001/116*0180*04|2|1000|450|---|1398,00|71,00|P |2005-07-01|5|---|SAMOCHÓD OSOBOWY|---|2005|---|8,82|AAA0000000|02650008000158|03|02|000|2000NNNNNNNN|009002001|.

Kod w Pythonie wykorzystuje bibliotekę libucl. Na Ubuntu i Debianie wystarczy zrobić sudo apt-get install libucl-dev.

Kod wypuszczam na licencji GPL 2.


edytowany 9x, ostatnio: Rev, 2018-07-13 01:08
Specjalnie po roku się zalogowałem żeby dać Ci plusa, jak zobaczyłem aferę o tym kodzie na wypoku. :-D - Endrju 2018-07-08 22:04
Tu macie wersję dla Pythona z rozpoznawaniem obrazu https://pypi.org/project/aztecdecoder/ :) - Bartosz Wójcik 2018-07-13 16:42

Pozostało 580 znaków

2018-07-08 14:54
2

Poniższy kod oraz opis podlegają licencji LGPL.

Ale nie ma nagłówka z licencją, opisującego kto napisał program :]


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
wytłuściłem informację o autorze i licencji. coś jeszcze powinienem dodać? "nagłówek" jako taki chyba nie jest wymagany? - Rev 2018-07-08 15:02
no tutaj nie było, a kod nie jest mój, więc już nie chcę go modyfikować - Rev 2018-07-08 15:04
@Rev: z tego co wiem trzeba zawrzeć informację o autorstwie dokładnie w formie w jakiej była oryginalnie. Jeśli nie było, to może być tak jak napisałeś - freestylowo. - vpiotr 2018-07-08 15:10
Autor raczej nie wysunie żadnych roszczeń, skoro sam nawołuje do rozpowszechniania kodu ;) - aurel 2018-07-08 15:21
Apache Foundation pewnie też nie wysuwa żadnych roszczeń, ale licencję chcą dorzucać nawet do plików konfiguracyjnych. Przynajmniej takie coś widziałem podczas obserwacji przenoszenia IDE NetBeans spod skrzydeł Oracle'a do Apache Foundation. Zależy jakie kto ma podejście do formalności. - Wibowit 2018-07-08 15:27

Pozostało 580 znaków

2018-07-09 06:29
0

Zapytam szofera czy ma takie coś i sprawdzę czy działa, dzięki.

edytowany 1x, ostatnio: WeiXiao, 2018-07-09 06:29

Pozostało 580 znaków

2018-07-09 10:38
Rev
0

Dorzuciłem brakujący plik nagłówkowy.


Pozostało 580 znaków

2018-07-09 17:30
0

panie Ferdku afera jest

Jakoś w ogóle nie zajarzyłem, że tu jest afera jakaś, więc tak dla kontekstu:

GitHub zablokował repozytorium z tym dekoderem, na wiosek DMCA firmy powiedzmy znanej.

W wątku na Wykopie pojawiła się wspomniana firma, reklamując swoją implementację w postaci WebAPI (BTW: jakiś dziwny ten C#)

Wygląda jak PHPSharp - Aryman1983 2018-07-09 20:40
Ta firma to chyba od @Bartosz Wójcik - Afish 2018-07-09 21:54
Tak peloc to Wójcika. - kate87 2018-07-13 13:17

Pozostało 580 znaków

2018-07-09 20:36
0

Ich usługa to SaaS, publicznie dostępne są tylko web API. Jakim cudem ktoś niby ukradł implementację?

Ciekawe jak wyglądają konsekwencje za fałszywe DMCA i czy to podpada pod fałszywe zeznania.


Women were the reason I became a monk - and, ah, the reason I switched back...
Tam w zgłoszeniach DMCA jest "I swear, under penalty of perjury, that the information in this notification is accurate and that I am the copyright owner (...)". - Ktos 2018-07-09 22:59

Pozostało 580 znaków

2018-07-10 10:14
2

Z tego co PELock pisze to sugeruje ze gość zrobił RE jego dll. WebApi na końcu ma jakieś dll. Może faktycznie ktoś dostał to w swoje łapki? Jeśli tak to nie dziwie się PELock. Jeśli z kolei to alternatywna implrmentacja na podstawie dokumentacji to nie widzę problemu. Dziwi mnie jedno - gość nie pamięta jaka bibliotekę maglowal na RE i skąd ja miał. No ten kod jest osiągnięciem i jeszcze afera wyszła wiec jest conajmniej dziwne ze ze pamięta. No ale wykop wylał hejt na prywaciarza jak śmie mieć kod własnościowy, za kase etc. Nawet ktoś stwierdził ze skoro państwowe to musi być OS...

W sumie podejście państwowe = OS nie jest tak bardzo bez sensu. - Ktos 2018-07-10 12:07
No jest spoko, prawie. Niemniej umowa to umowa. Ktoś zrobił soft prywatnie do dekodowania to jest to jego soft, mimo, że dekoduje państwowe rzeczy. To państwo powinno zapewnić darmowe narzędzie, a nie prywatny developer robić za free. Co do samego OS - jednak troszkę to niebezpieczne, stawiać systemy państwowe OS, gdy potencjalni wrogowie mają wgląd do kodu ;) Niech postawią pentagon na OS ;) - somedev 2018-07-10 12:14
No przecież AES czy obecne warianty RSA (RSA-PSS?) są open source i jakoś nikt nie złamał :P Właśnie w tym jest potęga. - Demonical Monk 2018-07-16 01:26

Pozostało 580 znaków

2018-07-10 11:38
0

Z tego co PELock pisze to sugeruje ze gość zrobił RE jego dll.

Pytanie, czy ma na to jakiekolwiek dowody? Bo generalnie we współczesnym świecie istnieje taka śmieszna zasada, co się zowie "domniemanie niewinności"...

Dziwi mnie jedno - gość nie pamięta jaka bibliotekę maglowal na RE i skąd ja miał.

Ja też nie pamiętam, z jakich bibliotek korzystałam w moich pobocznych projektach 5 lat temu. Właściwie to nawet nie pamiętam nawet nazw wszystkich moich pobocznych projektów... Nie widzę w tym nic dziwnego.

Pokaż pozostałe 3 komentarze
To napisałeś przecież później. W moim poście odnosiłam się tylko do: "Z tego co PELock pisze to sugeruje ze gość zrobił RE jego dll." Uważam, że nieładnie jest sugerować w internecie, że ktoś łamie prawo, jeśli nie ma się na to dowodów. Nieładnie jest też powielać te informacje, jeśli się nie wie. - aurel 2018-07-10 13:19
Ja nie powielam tych informacji oskarżając tego pana o dziwnym nicku, tylko przytaczam czyjeś słowa. Nie wiem co w tym nie ładnego. To po prostu przytoczenie faktu, że ktoś coś sądzi ... Nie przesadzajcie już. - somedev 2018-07-10 13:34
Przytoczenie czyichś słów jest powielaniem informacji. Tak się właśnie tworzy FAKE NEWS. - aurel 2018-07-10 13:52
Dziwne czasy... Jakbym powiedział "gość o dziwnym nicku ukradł kod z dll" to bym powielił informacje. Napisałem, że "PELock twierdzi, ze gość o dziwnym nicku ukradł mu kod". Idąc tym tokiem nie można by relacjonować żadnych sporów, bo powiela się nieprawdę. Zresztą ja napisałem prawdę - PELock tak twierdzi i to jest informacja prawdziwa. To czy ma racje to inna sprawa. Jeśli ktoś nie potrafi odróżnić czyjejś opinii od faktu, to już jest problem tego człowieka a nie fake news. Historyków też powinno się zdelegalizować za fake newsy. - somedev 2018-07-10 13:57
Przecież ja cię nie chciałam zdelegalizować :D Mówię tylko, że twoje wypowiedzi mi się nie podobają. Ty masz prawo powiedzieć, że PELock coś powiedział, ja mam prawo zwrócić uwagę, że PELock nie przedstawił dowodów. I w sumie tyle, nie wiem o czym dalej jest dyskusja ;) - aurel 2018-07-10 14:00

Pozostało 580 znaków

2018-07-10 11:53
0

Z tego co PELock pisze to sugeruje ze gość zrobił RE jego dll. WebApi na końcu ma jakieś dll. Może faktycznie ktoś dostał to w swoje łapki?

API webowe działa w taki sposób, że przesyła dane na serwer, całe dekodowanie odbywa się na serwerze i otrzymujesz wynik z powrotem. Jakim cudem gość zreversował DLLkę znajdującą się na cudzym serwerze?

Nie oceniam zachowania samego gościa, ale czy faktycznie tak powinno być, że żeby odczytać państwowy dokument musisz kupić zamkniętą DLLkę od Polskiej Wytwórni Papierów Wartosciowych? To jest kręcenie biznesu w oparciu o monopol.


Women were the reason I became a monk - and, ah, the reason I switched back...
Ale ich DLL-kę możesz również kupić jeżeli chcesz to mieć w swojej aplikacji. - Ktos 2018-07-10 12:06
https://www.pelock.com/pl/produkty/dekoder-aztec/kup - można kupić dll, lub kod źródłowy z licencją. Tak samo jak np. devexpresy etc. - somedev 2018-07-10 12:11

Pozostało 580 znaków

2018-07-10 12:07
1

@aurel:

Wiesz winę należy udowodnić. Masz racę. Nikt też nie udowodnił, że PELock kłamie ;) Mówię dziwne - bo jednak to ważny projekt i dlaczego nie zostawił sobie tej dll której robił RE koło kodu? Może to zwykłe niedbalstwo, a może celowo "nie ma" już tej dll. Słowo przeciwko słowu, chyba, że wejdzie to na ścieżkę sądową - my pewnie się już nie dowiemy. Zastanawia mnie, natomiast dlaczego wszyscy zakładają, że PELock chce uwalić ten darmowy kod, z powodów, ze to konkurencja. Może tak być, ale nie musi. Niestety pokutuje etos hakera który walczy z systemem i udostępnia to co powinno być darmowe i wolne. Okazuje się często, że takie praktyki to nic innego jak kradzież czy łamanie praw autorskich. Mówię o tym, bo widzę znaczną asymetrię opinii na wykopie. Nawet są ludzie co de facto ignorują fakt, że może to naruszać prawo, a i tak sądzą, że "oprogramowanie do obsługi państwowych rzeczy powinno być wolne" - ale skoro nie jest, ktoś dogadał się z państwem to jest zamknięte i tyle. Powtarzam, że nie wiem jak jest na prawdę, ale zaznaczam, że tutaj nie można jednoznacznie obrać strony bo mamy tylko krzyki z dwóch stron i zero faktów, poza tym, ze GH usunął repo więc jakieś podstawy musiał mieć.

edytowany 1x, ostatnio: somedev, 2018-07-10 12:07

Pozostało 580 znaków

2018-07-10 13:08
1

@somedev

  1. Bart zapracował sobie na odpowiednią opinię w środowisku, stąd też wszyscy z góry założyli jak wygląda sytuacja
  2. Bart nie miał żadnej umowy z PWPW ani związku z tym projektem, po prostu zreversował ich bibliotekę a teraz próbuje zrobić monopol na dekoder
  3. GH usunęło repo z automatu tak samo jak jest z filmikami na youtbe czy profilami na facebooku. Wystarczy ze ktoś zaraportuje, a potem najwyżej się to cofnie. W tym przypadku jednak takie zgłoszenie może mieć spore konsekwencje i nie zdziwi mnie jak Bart niedługo zacznie twittować z jakiegoś guantanamo albo innego sztumu...

Na PW przyjmuje tylko (ciekawe!) zlecenia. Masz problem? Pisz na forum, nie do mnie.
Ok, poczytałem wypowiedzi tego Pana na wykopie, ich styl, etc. Nawet jak miał troszkę racji, to nieźle potem trolluje. Przestaję się dziwić, że ludzi oceniają go z góry. - somedev 2018-07-10 14:00

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0