Skip to content

re-ws.pl

ReverseEngineering WorkStation

  • Home
  • Tutorials
  • Random
  • About

Month: September 2017

[Import][Android] Odblokowywanie kanałów 12, 13, 14

Posted on September 4, 2017 - September 4, 2017 by Kamil (aka. v3l0c1r4pt0r)

NOTE: This post was imported from my previous blog – v3l0c1r4pt0r.tk. It was originally published on 18th June 2012.

Jak wspomniałem w swoim pierwszym wpisie dotyczącym Androida na tym systemie niemożliwe jest połączenie się z siecią działającą na kanale wyższym niż 11 (a więc takim, który jest zabroniony w USA). Ja jednak nie mieszkam w Stanach i chciałbym, aby mój telefon miał dostęp przynajmniej do tego co nie jest w Polsce nielegalne. Na szczęście udało mi się znaleźć rozwiązanie tego problemu.

Użycie tej metody wymaga dostępu do roota, więc jeśli twój telefon nie został jeszcze zrootowany odsyłam do strony Zeely’ego. Kolejnym wymaganiem będzie zainstalowanie do folderu bin sqlite’a (nie wiedzieć czemu ten, który można używać prze adb przestaje działać gdy wpiszemy w konsoli su). Potrzebne też będzie SDK Adroida (będę używał go, aby przeklejać komendy do konsoli, nada się też każdy emulator terminala np. Terminal IDE, ale tu trzeba będzie wszystko pisać ręcznie). Radzę też żeby koniecznie wykonać backup systemu z użyciem CWM (mnie przy pierwszej próbie coś poszło nie tak i musiałem przywracać kopię z poprzedniego dnia).

  1. Podłączamy telefon do komputera w trybie debugowania USB. Wchodzimy w Ustawienia=>Aplikacje i zaznaczamy Debugowanie USB.
  2. Potem należy uruchomić konsolę Windowsa (lub terminal gdy używamy Linuksa) i przejść do folderu, w którym zainstalowaliśmy SDK. Wpisujemy adb shell. Gdy wszystko pójdzie dobrze powinniśmy być już w konsoli naszego telefonu (pojawi się znak $). Można teraz wpisać su, aby uzyskać uprawnienia roota (# oznacza sukces).
  3. Aby móc zmodyfikować folder /system należy zamontować go do zapisu. Używamy komendy mount, aby odnaleźć odpowiednie urządzenie:
    $ mount
    mount
    rootfs / rootfs ro,relatime 0 0
    tmpfs /dev tmpfs rw,relatime,mode=755 0 0
    devpts /dev/pts devpts rw,relatime,mode=600 0 0
    proc /proc proc rw,relatime 0 0
    sysfs /sys sysfs rw,relatime 0 0
    tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
    tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
    /dev/block/mtdblock0 /system yaffs2 ro,relatime 0 0
    /dev/block/mtdblock3 /data yaffs2 rw,nosuid,nodev,relatime 0 0
    /dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev,relatime 0 0
    /dev/block/mtdblock1 /data/idd yaffs2 rw,nosuid,nodev,relatime 0 0
    [...]
    $

    Właściwa linia została pogrubiona. Wpisujemy więc mount -o remount,rw -t rfs /dev/block/mtdblock0 /system (uwaga! Wartość po /dev/block/ może być inna).

  4. Teraz przenosimy plik sqlite3 (dostępny do pobrania na końcu wpisu) do folderu, w którym zainstalowane jest adb. Otwieramy w tym samym folderze drugie okno konsoli i wpisujemy w nie adb push sqlite3 /sdcard/ czym kopiujemy sqlite3 na kartę pamięci (tutaj ważne jest, żeby karta pamięci NIE była zamontowana w komputerze tj. w trybie MSC).
  5. Wracamy do poprzedniego okna, w którym wpisujemy cp /sdcard/sqlite3 /system/bin oraz chmod 4755 /system/bin/sqlite3.
  6. Na koniec montujemy system znów do odczytu: mount -o remount,ro -t rfs /dev/block/mtdblock0 /system.
  7. Teraz możemy wpisać sqlite3 i sprawdzić czy wszystko poszło pomyślnie. Jeśli tak przechodzimy do modyfikacji właściwego pliku.
  8. Zostajemy w tej samej konsoli (tą drugą można już zamknąć). Wpisujemy: sqlite3 /data/data/com.android.providers.settings/databases/settings.db “INSERT INTO secure (name, value) VALUES (‘wifi_country_code’, ‘JP’);”. Gdybyś nie chciał odblokowywać bądź co bądź zakazanego w Polsce kanału 14 możesz zmienić JP na EU w powyższej linii.
  9. Restartujemy telefon. Gdy system włączy się kanały 12,13 i 14 powinny już zostać odblokowane i powinno być już możliwe połączenie się z siecią na tych kanałach.

Nie jestem w stanie tego teraz sprawdzić, bo już zainstalowałem sqlite3 powyższą metodą, ale najpewniej, aby dokonać jego instalacji wystarczyłoby użyć jakiegokolwiek menadżera umożliwiającego modyfikację folderu /system. Potem wystarczyłoby tym samym programem zmienić chmody tak, aby możliwe byłoby wykonywanie pliku. Tym samym możnaby wtedy pominąć punkty 3-6.

Posted in TutorialsTagged Android, Gingerbread, kanał 14, polski, wifi, Xperia ProLeave a comment

[Import][Delphi] Wyświetlanie stanu za pomocą ProgresBar’a

Posted on September 4, 2017 - September 7, 2017 by Kamil (aka. v3l0c1r4pt0r)

NOTE: This post was imported from my previous blog – v3l0c1r4pt0r.tk. It was originally published on 19th April 2012.

Wydaje się, że jest to proste zadanie: wystarczy umieścić na formie kontrolkę, pozmieniać nieco style i gotowe. Niestety praktyka wygląda zupełnie inaczej. Każdy, kto chciał to osiągnąć w Windowsie Vista lub 7 pewnie wie, że nowe paski postępu jednym szczegółem uniemożliwiają wykonanie tego tak prosto. Dzieje się tak, ponieważ pasek postępu przy włączonym Aero jest animowany i w żaden udokumentowany sposób nie da się owej animacji wyłączyć.

Microsoft oczywiście zaleca, aby zamiast standardowego ProgressBar’a użyć coś, co nazywa ‘Meter’. I tu pojawia się kolejny problem, bo o tym rozwiązaniu wzmianka znajduje się jedynie w tym przewodniku, nie ma natomiast żadnego opisu, jak takie coś można osiągnąć w praktyce a jedynym programem, w którym można zobaczyć jak takie coś działa jest Eksplorator Windows. Niestety podejrzenie w jaki sposób jest to wykonane od strony kodu jest dla większości praktycznie niewykonalne (nie można podejrzeć styli kontrolki za pomocą programów takich jak WinDowse więc jedynym sposobem byłaby dekompilacja). Na szczęście jest jeden trick umożliwiający wykonanie kontrolki przypominającej microsoftowy meter. Jak w każdym obejściu problemu tak i tu jest niestety jeden haczyk: po zmianie skórki np. na Klasyczny Windows, bądź też przy próbie zastosowania go w starszych wersjach Windows nie zobaczymy nic. Wymusza to więc zastosowanie dwóch kontrolek: dla Windows Vista/7 – tej, którą zajmę się za chwilę oraz standardowego ProgressBar’a dla starszych Windowsów.

Sam kod nie jest ani trudny do użycia, ani też jego napisanie nie stanowiło większego problemu. Przedstawia się on następująco:

var:tRECT;
theme:HTHEME;
Progress:integer;
begin
  Progress:=50;
  theme := OpenThemeData(Handle,'PROGRESS');
  if theme<>0 then
  begin
    SetRect(r,0,0,25,100);
    DrawThemeBackground(theme,Form1.Canvas.Handle,11,2,r,nil);
    SetRect(r,0,Progress,25,100);
    DrawThemeBackground(theme,Form1.Canvas.Handle,6,4,r,nil);
    CloseThemeData(theme);
  end;
end;

Jak widać dwukrotnie została użyta funkcja DrawThemeBackground: pierwszy raz rysuje ona tło, za drugim razem została użyta do narysowania paska postępu, który w tym wypadku został ustawiony na połowie maksymalnej wartości, a ponieważ pasek ma wysokość równą 100 nie było konieczności stosowania żadnych dodatkowych funkcji do przeliczania tej wartości. Zamiast Form1.Canvas lepiej byłoby użyć komponentu TPaintBox, ewentualnie możnaby wtedy nieco zmodyfikować kod tak, aby wypełniał cały komponent co ułatwiłoby późniejsze modyfikacje. Kod należy wkleić do zdarzenia OnPaint używanego komponentu. Jeżeli powyższy przykład jest dla kogoś niejasny bądź nie wie do czego służą poszczególne argumenty odsyłam do opisów poszczególnych funkcji w bibliotece MSDN: OpenThemeData, SetRect, DrawThemeBackground oraz CloseThemeData. Do funkcji DrawThemeBackground można przekazać także inne wartości (parametry 3 i 4) używając wartości podanych tutaj.
Dla mnie jednak próbowanie wszyskich wartości nie było zbyt wygodne, napisałem więc prosty program umożliwiający szybkie przejrzenie wszyskich elementów, które można użyć. Program ten można ściągnąć stąd i nie zaliczam go do projektów, ponieważ nie zamierzam wprowadzać do niego żadnych poprawek.

Posted in TutorialsTagged Aero, Delphi, polski, WindowsLeave a comment

Posts navigation

Newer posts

Tags

Android assembly busybox C CAN can-hacking cc-factory cmake compiler docker Dreamspark electronics English gcc hacking hardware JavaCard JCOP kernel KiCAD library Linux PC PCB pinout PKI polski programming Python radio Raspberry Pi Reverse Engineering RTL-SDR SDC SDM SDR smart card software tor tty UART UEFi Windows X.509 Xperia Pro

Recent Posts

  • PHP build for use bundled in Android applications
  • Running graphical apps inside Docker containers
  • Plugin architecture demo for Python projects
  • Authorizing adb connections from Android command line (and making other service calls from cli)
  • How to recover torrent from rtorrent meta files

Recent Comments

  • pomi on Playing with GF-07 GPS device
  • pomi on Playing with GF-07 GPS device
  • Hamdy Abumgata on Playing with GF-07 GPS device
  • Mousum Gogoi on Playing with GF-07 GPS device
  • Eason on Sniffing USB traffic with DSLogic logic analyzer into pcap file

Categories

  • News
  • Random
  • Reversing LKV373A
  • Setting up new v3 Hidden Service with ultimate security
  • Tutorials
  • Uncategorized
  • Understanding JCOP

Links

  • Me @ github
  • LKV373A Wiki
  • DevTomek

Archives

  • December 2024
  • November 2024
  • May 2024
  • July 2023
  • October 2022
  • August 2022
  • July 2021
  • June 2021
  • May 2021
  • December 2020
  • November 2020
  • October 2020
  • August 2020
  • December 2019
  • November 2019
  • October 2019
  • August 2019
  • July 2019
  • February 2019
  • November 2018
  • October 2018
  • June 2018
  • May 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • September 2017

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Proudly powered by WordPress | Theme: micro, developed by DevriX.