Sziasztok.
Adott egy string, mely tartalmazhat különleges karaktereket, space-et is.
Nem tudom, miért reagál így:
#echo "!AIVDM,1,1,,A,13u?etPv2;0n:dDPwUM1U1Cb069D,0*24" | base64 --decode
bash: !AIVDM,1,1,,A,13u?etPv2: event not found
#
valamit nem tudok jól a base64 kezelésében, vagy tényleg olyan a kód, ami nem is base64?
----------
Frissítés: topicnévben base64 szerepelt, de alábbi kérésre a tévedésemen alapuló címet kicseréltem. A fentieket így hagyom, különben a hozzászólások egy része (amelyben az szerepel, hogy ez nem base64 kód) értelmét vesztené
- 1471 megtekintés
Hozzászólások
Az egyes bithatosokat reprezentáló karakterek (64 db) az alábbiak: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
A kódolt szövegben előfordulhat még:
-egyenlőségjel ('='), amellyel a kódolt szöveget szokás néggyel osztható hosszúságúra kiegészíteni
-kocsi-vissza, a visszafejtésnél figyelmen kívül kell hagyni
-soremelés, a visszafejtésnél figyelmen kívül kell hagyni
wikipedia
A kapott stringet már maga az echo sem eszi meg.
- A hozzászóláshoz be kell jelentkezni
ok, ezt most megtanultam
- A hozzászóláshoz be kell jelentkezni
(Csak az utolsó mondathoz: de, az echo mindent megeszik. A hibaüzenet nem az echo-tól, hanem a bash-tól jött.)
=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
- A hozzászóláshoz be kell jelentkezni
eleg nyilvanvalo, h ez nem base64.
t
- A hozzászóláshoz be kell jelentkezni
Talán ennyi belőle a base64 kódolt rész : "dDPwUM1U1Cb069D"
- A hozzászóláshoz be kell jelentkezni
ami dekódolva: t3ðPÍTÔ&ôëÐ
Egészségedre!
Üdv,
Marci
- A hozzászóláshoz be kell jelentkezni
Azt nem tudjuk minek kellene lenni.
Egyébként ez alapján nem base64:
http://catb.org/gpsd/AIVDM.html#_aivdm_aivdo_payload_armoring
- A hozzászóláshoz be kell jelentkezni
És többek között itt online dekódolható: http://ais.tbsalling.dk/
A ! pedig speciális karakter a bash-nak, eszképeld.
Üdv,
Marci
- A hozzászóláshoz be kell jelentkezni
És van hozzá indiai sample php kód. :P
- A hozzászóláshoz be kell jelentkezni
Ennek baba a kimenete.
Az eredeti demo ez:
# php ais.php
Message Type= 1
Repeat Indicator= 0
MMSI= 366913120
Navigation Status= 0
Rate of Turn (ROT)= 0
Speed Over Ground (SOG)= 0
Position Accuracy= 0
Longitude= 229663059
Latitude= 10992713
Course over Ground (COG)= 329.5
True Heading(HDG)= 299
Time Stamp= 16
Maneuver Indicator= 0
Spare= 0
RAIM flag= 1
Radio Status= 98890
Az én hajóazonosíytóm meg ezen php-kód alapján ez:
# php ais.php
Message Type= 49
Repeat Indicator= 1
MMSI= 93951095
Navigation Status= 12
Rate of Turn (ROT)= 7
Speed Over Ground (SOG)= 76.9
Position Accuracy= 1
Longitude= 242782080
Latitude= 71258039
Course over Ground (COG)= 320.3
True Heading(HDG)= 449
Time Stamp= 5
Maneuver Indicator= 2
Spare= 0
RAIM flag= 0
Radio Status= 221868
Kezd tetszeni a dolog :)
Most valahogy átültetem BASH-ba az egészet.
Köß szépen
- A hozzászóláshoz be kell jelentkezni
A paraméteres indítás igen nehéz lenne ebben, mert az már bash lenne.
Azt hiszem elsőre azzal fogok kísérletezni, hogy PHP-ban olvasom be az adatfolyam sorait.
- A hozzászóláshoz be kell jelentkezni
offline szeretném, mert nincs mindenütt NET a világon legfeljebb műholdas, az meg Wattot igényel
- A hozzászóláshoz be kell jelentkezni
Jaj, ne viccelj már.
Egy string dekódolásában kértél segítséget.
Üdv,
Marci
- A hozzászóláshoz be kell jelentkezni
Igen, abban.
Csak mivel hála nektek, ez megoldódott, most a civilizáció nélküliben gondolkodom, ami offline.
- A hozzászóláshoz be kell jelentkezni
Ez egyrészt nem base64 hanem AIVDM, másrészt a hibaüzenetet a bash-tól kapod, nem a base64-től.
- A hozzászóláshoz be kell jelentkezni
+1, a shell nem szereti a felkiáltójeled.
------------------------
{0} ok boto
boto ?
- A hozzászóláshoz be kell jelentkezni
Ezt nem tudtam
- A hozzászóláshoz be kell jelentkezni
Azt hogy sikerült nem tudni?
Te írtad be a bash: -al kezdődő sort. :D
- A hozzászóláshoz be kell jelentkezni
https://rl.se/aivdm
!AIVDM,1,1,,A,13u?etPv2;0n:dDPwUM1U1Cb069D,0*24
Message sent (UTC) : 17:21:53
MMSI : 265547250
Latitude : 57.660353°
Longitude : 11.832977°
Speed : 13.9 knots
Heading : 41°
Course over ground : 40°
Rate of turn : -2°/min
Navigational status: 0
Nearest place : Styrsö, Sweden
RL.SE AIVDM/AIVDO Decoder, build #213
- A hozzászóláshoz be kell jelentkezni
Igen, ez az.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Jó sok mindent kell felrámolnom hozzá, épp nézem
Node, js --- sosem volt dolgom velük, még nem tudom, mi ez. Érdekes. Egyre több dologról derül ki, hogy ismeretlen.
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni
És hogy akkor ez is le legyen írva: a bash (amúgy a C-shelltől örökölt módon) a parancssorban szereplő !akármi sztringet korábbi parancsra vonatkozó hivatkozásnak tekinti. Az "akármi" lehet előjel nélküli szám (ekkor az ilyen sorszámú parancs), negatív szám (ekkor az ennyivel ezelőtti parancs) illetve sztring (amikor is a legutolsó ezzel a sztringgel kezdődő parancs), illetve ?sztring (a legutolsó, a sorban bárhol ezt a sztringet tartalmazó parancs) lesz behelyettesítve az általad begépelt utasításban az !akármi helyére. Kb ugyanúgy, ahogy a $valami változóhelyettesítést \$valami vagy épp '$valami' formában tudod takarni a shell elől, de "$valami" esetén van helyettesítés; itt is \!akármi vagy épp '!akármi' formában írható, de !akármi és "!akármi" helyettesítődne.
További furcsaságokhoz RTFM, man bash
=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
- A hozzászóláshoz be kell jelentkezni
Közben találtam egy szépet, ami leírja, hogyan értelmezendő a dekódolt táblázat
https://www.navcen.uscg.gov/?pageName=AISMessagesA
- A hozzászóláshoz be kell jelentkezni
[Feliratkozás]
- A hozzászóláshoz be kell jelentkezni
hadd javasoljam a topic átnevezését, mert ez itt nem b64, ha még decode is
- A hozzászóláshoz be kell jelentkezni
megtörtént, jogos.
- A hozzászóláshoz be kell jelentkezni
libais csomag sikeresen fel lett telepítve (leforgatva) debianon és armv6-on ARCH lunixra.
Kellett nekik a python-six csomag is, nálam most az 1.6-os verzió van fenn.
Szóval ez a sor:
!AIVDM,1,1,,B,13E`Tn8P00OorbHjWstI?w20D0B,0*1B
(amiből kihagytam az "Tn8P00Oo" után egy "<" jelet, hogy a hup formja ne akadjon ki) ezzel átgyúrva
cat ./ais.log | aisdecode
eredményezi ezt a kimenetet:
{"special_manoeuvre": 0, "position_accuracy": 0, "nav_status": 8, "rot_over_range": true, "received_stations": 18, "true_heading": 511, "x": -1.9219916666666668, "mmsi": 224011480, "slot_timeout": 5, "y": 43.32541166666667, "spare": 0, "timestamp": 33, "repeat_indicator": 0, "id": 1, "raim": false, "sync_state": 0, "cog": 317.20001220703125, "sog": 0.0, "rot": -731.386474609375}
Ez a cgps NMEA-mondataihoz hasonlóan van versbe szedve, sejtésem szerint valami json-jellegű a dolog, melyhez szintén nem volt még szerencsém, csakúgy, mint a nawk-hoz és a gawk-hoz...
Kérdésem most az, miként lehet ezeket kezelni, azaz "rekordonként" sorokba írni? awk-val sima ügy, de inkább szaxerűbben szeretném ezt megtenni.
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni
A kimeneted egy .json fájl, lerakod fájlba, majd az alábbit berakod egy .php fájlba (feltételezem, hogy a .json fájl szabályos és teljes):
<?php
// file.json helyére beirod a fájl nevet
// 1-es a végére azért kell, hogy tömbbé alakítsa, ne objektummá
$json = file_get_contents('file.json');
$tmp = json_decode($json,1);
// végigmész a sorokon
foreach ($tmp as $id => $val){
// ha html-be akarod a kimenetet, akkor a \n helyére < br > -t írj
echo( $id . ' : ' . $val . "\n" );
}
- A hozzászóláshoz be kell jelentkezni
"?>"-jelekkel zártam a scriptet, kipróbáltam, ezt kaptam:
PHP Warning: Invalid argument supplied for foreach() in /opt/ais/ais-php.php on line 3
Közben egy iszonyatosan nagy AJAX-könyvben megtaláltam a 296. oldalon a decode() metódust, csak az más kód, más dologra.
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni