artykuły

Embarcadero wypuszcza hotfixa do toolchaina z powodu odkrytego przeze mnie błędu; z podziękowaniami :)

1:26
czw, 4 maj 2017

Właśnie kilka minut temu otrzymałem informację, że Embarcadero wypuściło hotfixa do całego toolchaina w związku z odkrytym przeze mnie na początku marca błędem bezpieczeństwa. Nawet w opisie hotfixa są podziękowania dla mnie ;) Się nie spodziewałem - miłe bardzo! Na marginesie dodam, że dostałem też informację o przygotowywanej nagrodzie pieniężnej (także warto było!), jednak to co bardziej by mi się teraz przydało to papierowy list od Embarcadero potwierdzający odkrycie (obecnie szukam pracy, a on mógłby spowodować odwrócenie ról i praca szukała by mnie) :)

https://community.embarcadero.com/blogs/entry/april-2017-rad-studio-10-2-hotfix-for-toolchain-issues

Dostałem podziękowanie od Embarcadero/Borland za zgłoszony błąd

1:51
sob, 11 marzec 2017

Otrzymałem odpowiedż od Embarcadero w sprawie ostatnio odkrytego przeze mnie błędu w funkcjach z rodziny scanf() manifestującego się przy wczytywaniu liczby do zmiennej typu char za pomocą specyfikator "%hhu". Sprawę dokładniej opisałem w artykule (swoją drogą artykuł dzisiaj zaktualizowałem o ciekawy przypadek w którym nadpisujemy bajt 0, który oznacza koniec ciągu i w ten sposób uzyskujemy wypisane na ekranie tajne hasło-wzorzec):
https://lukashp.pl/Hacking/Hack-Artykuly/Odkrycie_Integer_overflow_w_funkcjach_z_rodziny_scanf_w_MinGW_Cygwin_Embarcadero_C_i_innych_srodowiskach_przy_wczytywaniu_liczby_do_char_a 

Embarcadero stanęło na wysokości zadania i zajęło się sprawą. W przyszłej wersji kompilatora błąd już nie będzie występował.

Thanks.  Looks well worth fixing, and we'll do so in an upcoming release.

Have you managed to do anything nefarious with this?  One thing I tried to do, and could not do, is overwrite an arbitrary amount of data - say with an input string.  So I can get a few bytes overwritten on the stack, but not much.

Thankyou again for the email!

David M.

Sprawę zgłosiłem również do GNU C Compiler, jednak Ci odesłali mnie (i słusznie) do MinGW twierdząc, że to po ich stronie. MinGW jednak stwierdziło, że nic nie może zrobić w tej sprawie, bo problem leży w zamkniętej bibliotece Microsoftu (MSVCRT). 
Do zespołu Cygwina również próbowałem sprawę zgłosić, ale straciłem cierpliwość po pół godzinie szukania na jaką listę malingową mam to zrobić (wysłałem na tą najbardziej prawdopodobną, nie otrzymałem żadnego potwierdzenia, ani zwrotki).

Ogrzewane rękawiczki? ;)

20:25
pon, 4 styczeń 2016

Zdaję sobie sprawę, że wrzucając ten post świadomie obniżam poziom LHP, jednak myślę, że temperatury nie tylko mnie dają się we znaki. Panie i Panowie, oto rękawica grzewcza, którą zrobić każdy może, a która naprawdę fajnie działa.

Ogrzewane rękawiczki

Należy tylko pamiętać o kilku kwestiach:

  • należy użyć odpowiednio długiego przewodu, tak, aby jego rezystancja sięgnęła około 0.5Ω-1Ω (Ohma) [im mniejsza rezystancja, tym większy prąd popłynie, tym cieplejszy będzie kabel grzewczy]
  • rezystancja przewodu zależy tylko i wyłącznie od pola jego przekroju, jego długości i materiału z którego został wykonany. Można ją zmierzyć omomierzem (co jest szybsze), bądź obliczyć ze wzoru: R = ρ*l/S
    gdzie: 
    R - rezystancja przewodu o danej długości
    ρ - rezystywność przewodnika (w naszym wypadku rezystywność miedzi równa się 1,72×10−8)
     l - długość przewodu
    S - pole przekroju przewodnika, w naszym przypadku będzie to pole koła o średnicy wnętrza przewodu (bez izolacji)
    Oczywiście musimy pamiętać, że jeśli pole przekroju podajemy w milimetrach kwadratowych, to długość przewodu powinniśmy podać w milimetrach, aby jednostki się poskracały.
  • aby nieco zwiększyć efekt, można zastosować folię aluminiową skierowaną błyszczącą stroną w stronę dłoni (jak gdybyśmy piekli kurczaka)
  • należy zadbać o odpowiednio wydajne źródło zasilania (należy też pamiętać aby nie przekroczyć maksymalnego prądu jaki można pobrać od jednego ogniwa - w Eneloopach przykładowo nie należy przekraczać 2 amperów). Prąd, który popłynie przez przewód możemy obliczyć dzieląc napięcie zasilania przez obliczoną (bądź zmierzoną) wcześniej rezystancję. Przykładowo, jeśli nasz przewód ma długość 2m i przy tym rezystancję 1 ohma, to aby nie zepsuć akumulatorków, możemy go zasilić łącząc akumulatorki AAA w następujący sposób: Schemat połączenia
    Przy takim połączeniu, na przewodzie będziemy mieli spadek napięcia 3,6V. Gdybyśmy mieli jedynie trzy akumulatorki połączone szeregowo, wówczas oddawałyby one 3,6 ampera - to dla nich za dużo (będą się bardzo grzały). Dlatego należy zwiększyć wydajność prądową źródła poprzez równoległe dołożenie kolejnej paczki trzech akumulatorków (równolegle do pierwszej paczki). Wówczas prąd na paczkę spadnie do 1,8 ampera, co jest już wartością akceptowalną (choć nadal wysoką).
    Wydajność akumulatorów Eneloop przy różnych prądach rozładowania

Różnica temperatury jest wyraźnie odczuwalna i ręka staje się ciepła.

Ogrzewane rękawiczki - Zdjęcie 2


Więcej wpisów (lista)
Dexter