Oszukiwanie w Bitcoin Billionaire – Fake Kliknięcia przy pomocy ADB

Bitcoin Billionaire jedną jedną z wielu gier typu idle clicker. https://play.google.com/store/apps/details?id=com.noodlecake.bitcoin.

Jak wiadomo jedną z opcji zdobywania waluty w tego typu grach jest klikanie w ekran lub w myszkę. Chciałem trochę sobie ułatwić grę poprzez samoczynne klikanie w ekran.

Pierwsze co potrzebowałem to ADB którego użyłem do łączenia się z telefonem. http://developer.android.com/tools/help/adb.html

Następnie zrobiłem mały research i znalazłem komendę

adb shell input tap x y

Niestety komenda jest zbyt wolna na zastosowanie tutaj.

Dlatego zacząłem szukać innych sposobów. Kolejne które znalazłem to

adb shell getevent

oraz

adb shell sendevent

Telefon który używałem do testów to Samsung Galaxy S5 z Androidem 5.0

Szybkie sprawdzenie eventów wykonywanych przy pojedynczym dotyku palcem

add device 1: /dev/input/event15
  name:     "es705 input"
add device 2: /dev/input/event14
  name:     "w1"
add device 3: /dev/input/event12
  name:     "hrm_sensor"
add device 4: /dev/input/event11
  name:     "ssp_context"
add device 5: /dev/input/event10
  name:     "meta_event"
add device 6: /dev/input/event9
  name:     "step_cnt_sensor"
add device 7: /dev/input/event8
  name:     "sig_motion_sensor"
add device 8: /dev/input/event7
  name:     "temp_humidity_sensor"
add device 9: /dev/input/event6
  name:     "proximity_sensor"
add device 10: /dev/input/event5
  name:     "light_sensor"
add device 11: /dev/input/event4
  name:     "gesture_sensor"
add device 12: /dev/input/event3
  name:     "qpnp_pon"
add device 13: /dev/input/event0
  name:     "sii8240_rcp"
could not get driver version for /dev/input/mice, Not a typewriter
add device 14: /dev/input/event13
  name:     "gpio-keys"
add device 15: /dev/input/event1
  name:     "sec_touchkey"
add device 16: /dev/input/event2
  name:     "sec_touchscreen"
/dev/input/event2: 0003 0039 0000113e
/dev/input/event2: 0001 014a 00000001
/dev/input/event2: 0003 0035 000002bc
/dev/input/event2: 0003 0036 000005ef
/dev/input/event2: 0003 0030 00000007
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0003 0035 000002c7
/dev/input/event2: 0003 0030 00000009
/dev/input/event2: 0003 0031 00000007
/dev/input/event2: 0000 0000 00000000
/dev/input/event2: 0003 0039 ffffffff
/dev/input/event2: 0001 014a 00000000
/dev/input/event2: 0000 0000 00000000

Teraz prze konwertowanie parametrów zwróconych przez getevent na te używane przez sendevent.

Zmiana wszystkich liczb z hex na dec http://www.binaryhexconverter.com/hex-to-decimal-converter oraz usunięcie ‚:’

Efekt:

adb shell sendevent /dev/input/event2 3 57 4250
adb shell sendevent /dev/input/event2 1 330 1
adb shell sendevent /dev/input/event2 3 53 630
adb shell sendevent /dev/input/event2 3 54 1570
adb shell sendevent /dev/input/event2 3 48 8
adb shell sendevent /dev/input/event2 3 49 7
adb shell sendevent /dev/input/event2 0 0 0
adb shell sendevent /dev/input/event2 3 57 4294967295
adb shell sendevent /dev/input/event2 1 330 0
adb shell sendevent /dev/input/event2 0 0 0

Wrzucenie w pętle i zapisanie jako plik cmd

@echo off
for /l %%x in (1, 1, 999999999) do (
adb shell sendevent /dev/input/event2 3 57 4250
adb shell sendevent /dev/input/event2 1 330 1
adb shell sendevent /dev/input/event2 3 53 630
adb shell sendevent /dev/input/event2 3 54 1570
adb shell sendevent /dev/input/event2 3 48 8
adb shell sendevent /dev/input/event2 3 49 7
adb shell sendevent /dev/input/event2 0 0 0
adb shell sendevent /dev/input/event2 3 57 4294967295
adb shell sendevent /dev/input/event2 1 330 0
adb shell sendevent /dev/input/event2 0 0 0
)

Szybkość jest już lepsza ale nadal niezadowalająca.

Kolejny pomysł to bezpośrednie zalogowanie się na urządzenie poprzez adb shell i wykonanie dwóch poleceń.

dd if=/dev/input/event2 of=click # record
dd if=./click of=/dev/input/event2 #play

Co do dd To chyba wiadomo co robi http://pl.wikipedia.org/wiki/Dd

Wrzucenie

dd if=./click of=/dev/input/event2 #play

w pętle i bylibyśmy w domu.

Niestety a

shell@klte:/ $ dd if=/dev/input/event2 of=click
dd if=/dev/input/event2 of=click
dd: click: Read-only file system

I narazie przy tym zostanę. Niestety nie mam obecnie zrotowanego urządzenia na którym mógłbym dalej działać.

Już zostawiłem skrypt podany wcześniej odpalony na noc 😉

Dodaj komentarz