-
Data: 2017-04-01 20:31:23
Temat: Re: Czego nie lubicie jako programiści?
Od: Sebastian Biały <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 4/1/2017 7:48 PM, AK wrote:
>> Jesli zmuszasz biblitekę aby pracowala w warunkach w której jej nie
>> testowano/projektowano i w tym celu musisz poznać internalne działanie
>> kompilatora i linkera, a bywa że i nieudokumentowane i/lub niestabilne
>> jego elementy - to jest *czyste* hackerstwo.
> Doucz Cie C. Mangling w C jest _scisle zdefiniowany_ w standardzie
> i niczego nie musze "internalnie" poznawac.
I co z tego skoro mangling w C++ jest ścisle niezdefiniowany?
Nie mów "doucz się". Nie masz pojęcia o wiedzy kogokolwiek na podstawie
paru linijek.
> Zarowno w samym C jak i w laczeniu go (czystego C) z C++
> (czy innymi jezykami programowania).
Serio? To skad te kłopoty kilka postów wyżej o podkresleniach? Czyżby
dlatego że ktoś probował hackować bibliotekę nie przeznaczoną do C++?
> PS: Zreszta to jest technika ktora zecydownie preferuje niz mixowanie
> kodu w C z kodem C++ w jednym przebiegu kompilacji/w jednym lib-ie
> (nawet jesli mam pelny dostep do zrodel).
Jak się ma pelny dostęp do źródeł to nie da się wytlumaczyć tych
kłopotów inaczej jak psychiatrycznie.
>>> Wsio dokaldnie opisane zarowno w raporcie C jak i C++.
>>> Problemem jest co innego.
>>> Proiblemem jest nieustandaryzowane (w przeciwienstwie do C)
>>> manglowanie nazw w "nowoiczesnym" C++.
>> Czyli jednak wsio nie jest dokładnie opisane? Czyli hackerstwo?
> Jakie hackerstwo?
> Po prostu "tak sie nie robi" poniewaz mangling w C++ zwyczajnie
> nieustandaryzowany (czytaj C++ jest spieprzony).
To po co się tak robi skoro się tak nie robi?
> Dlatego takie mixowanie interkompilatorowe C++ robi sie
> np.wlasnie za posrednictwem C a w C++ robi sie lekkie owijki
> obiektowe (same *.h) (to niestety pracochlonne, ale to nie moja wina
> ze C++ "tak ma"), albo za posrednictwem dll/so.
A, czyli hackerstwo.
> PS: Natomiast "niezdefiniowany" to _jest_ dokladny opis.
Tak, oczywiście. "Nie wiadomo jak wygląda krowa" jest niezwykle
precyzyjnym opisem krowy. Moving on.
>> No wreszcie.
> Co "no wreszcie"?
Dostrzegasz hackerstwo.
> Jakie jest niebezpieczenstwo w tym ze chcemy sie dobrac
> do np. symbolu w DLLce (a wiec ustandarysowanej systemowo
> biblioteki) ktorego mangling jest "nieznany" (czylli nazwa w DLLce jest
> niewiadoma) ?
A ABI jest wiadome skoro takiego detalu jak mangling nie znamy? A
unwinding stosu jest kompatybilny? A sposob instancjacji templates jest
znany? Wiadomo jak się robia funkcjie inline? Wiadomo co się stanie jak
trafimy ponownie na ten sam symbol przy linkowaniu? Etc.
> Jelsi znalibysmy ta nazwe to spokojnie mozlinbysmy takigo
> symbolu/funkcji uzyc
> (gdyz wolanie z dll-ki jest systempowo usystematyzowane - czylio ponad
> kompilatorowe/jezykowe)?
Serio jest ustandaryzowane? No no. To się developerzy Delphi zdziwią po
co im te wszystkie _fastcall i _stdcall. Wychodzi że po nic. Biedacy.
A .so jest ustandaryzowane? Sugeruje dla sportu zerknąć co to za dziwne
SYSV pokazuje mc kiedy sie zrobi F3 na pliku .so. I dlaczego czasem tam
pisza Linux. Moża też zerknąc co to jest arm-[e]abi i na przykład jakieś
ciekawostki jak thumb mieszany z arm w jednym .so.
> Problemm polega tylko na tymze my tej nazwy nie znamy.
> Trzeba ja wiec poznac i w tym celu nalezy zmanglowac nazwa C++wa
> i uzyc tej zmanglowanej np w dynamicznym pobraniu adresu z dll-ki
> (GetProcAddress()/dlsym()).
Aha. Dziękujemy kapitanie Obvious.
> Jedyny problem jest tym ze mangling jest per-compiler-specyfic
No przeciez o tym mowa od poczatku. Ja nawet niegrzecznie zauważę że
jest równiez version-specyfic co było swego czasu bardzo bolesne w
egozytycznych kompiltorach uC bo niedzielni hackerzy w embedded nie raz
sobie zęby wybili po upgrade.
> i dlatego
Hack on my mark in 1 ...
> 1.trzeba wiedziec jakim kompilatorem dll-ka jest uskuteczniona
2...
> 2. uzyc mangkera z tego wlasnie kompilatora.
3...
> Gdy DLL-a jest w czystym ten nazwa (bez wzledu na kompilator C
> ktorym jest tworzona) jest _zawsze_ zgodny z nazwa w zrodle
> (a w przypadku obj/lib-ow: _ + nazwa_w_zrodle_C)
> wiec problemow 1. i 2. w C zwyczjnie nie ma.
Fail.
> Tymczasem to nie zaden hacker ale zwykly niedouczony palant :(.
> Tymczasem mozna prosto i latwo i zgodnie ze standardami.
> Trzeba "tylko" wiedziec co to jest *.obj, *.lib, *.dll/*.so i co tak
> naprawde
C++ nic nie mówi co to jest .so i .dll a ludzie piszacy kod jednoczesnie
na 5 róznych platform mają w nosie hackowanie każdej z nich osobno.
> PS: Nie moge "wyjsc z podziwu" jak Wy mlodzi dzis piszecie w C/C++
> nie znajac tak podstawowych systemowych rzeczy :(
Ponieważ jak każdy bardzo stary programista jestes już sterowany lokalną
ideologią i widzisz tylko swoje urojenia. Na przykład takie urojenie że
ktoś nie ma pojęcia jak to działa mimo że wie wystarczająco dokładnie
jak to działa. Sugeruje więc pozbyć się tych "Wy" i jeszcze raz
dokładnie się zastanowić po co z taki uporem tlumaczysz rzeczy oczywiste
ktore i tak sprowadzają się do tego że generujesz kiepskiej jakości kod
i mechanizmy rodem z podrecznika dla hackerow.
Następne wpisy z tego wątku
- 01.04.17 21:27 slawek
- 01.04.17 23:44 AK
- 02.04.17 00:36 Sebastian Biały
- 02.04.17 10:00 fir
- 02.04.17 12:08 PawelS cbrbob(at)wbcd(dot)pl
- 02.04.17 18:10 s...@g...com
- 02.04.17 18:22 Andyy
- 02.04.17 18:32 niepełnosprawny intelektualnie 'POPIS/EU
- 02.04.17 18:33 niepełnosprawny intelektualnie 'POPIS/EU
- 02.04.17 18:41 Sebastian Biały
- 02.04.17 18:52 niepełnosprawny intelektualnie 'POPIS/EU
- 02.04.17 20:38 s...@g...com
- 03.04.17 07:04 Wojciech Muła
- 03.04.17 08:18 Andrzej S
- 03.04.17 17:25 slawek
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-04 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-04 Czy policjantów należy ROZBROIĆ?
- 2024-12-03 Tymoteusz Sz.
- 2024-12-03 Re: Prezydent ułaskawia: Prezydent USA Biden (D) ułaskawia syna własnego
- 2024-12-03 Re: Tani dodatkowy sim do smartwacha
- 2024-12-03 Wróblewo => Analityk finansowy <=
- 2024-12-03 Praktyczny test GPS...
- 2024-12-02 Tak się sprzedają elektryczne woldzwageny ;-)
- 2024-12-02 Akumulator do Hyundai
- 2024-12-02 Olsztyn => Sales Specialist <=
- 2024-12-02 Poznań => Technical Artist <=
- 2024-12-02 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-02 Kraków => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2024-12-02 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-12-02 Białystok => Delphi Programmer <=