“Self” elevating Windows batch file script

Batch files/scripts in Windows. I use them a lot since I have semi-automated various tasks in daily use..

There are sometimes that you need to run commands with administrative rights. (Be careful with that!)

Below there is a batch file template that can run commands or start other programs with elevated rights. It might, probably will, prompt for a UAC confirmation in Windows to run. That is if you haven’t disabled UAC.

The code is collected from all around the web with some modifications and tested in Windows 10 only.

In order for this to work we need an excellent command utility called.. “elevate” located here: http://code.kliu.org/misc/elevate/

Download and extract the two variations in the same folder as your batch file and rename them to elevate32.exe and elevate64.exe so they will be like this:

 

Save the code below as a new command text file.
You can insert your commands in the script depending if they are relevant in 32 or 64 bit environment in the approproate places:

rem 32 bit commands here <————

 

The script does the following:

  • checks if it runs in a 32 or 64 bit env
  • checks if it has already elevated rights
  • if it doesn’t have elevated rights it restarts itself with the help of elevateXX.exe
  • runs the appropriate 32 or 64 bit commands that you want
@echo off
echo.

rem installed OS
set _os_bit=64
if %PROCESSOR_ARCHITECTURE% == x86 (
if not defined PROCESSOR_ARCHITEW6432 set _os_bit=32
)
echo Operating System is %_os_bit% bit
echo -------------------------------------------------------
echo.

rem check permissions
echo Administrative permissions required. Detecting permissions...
echo.
net session >nul 2>&1
if %errorLevel% == 0 (
echo Success: Administrative permissions confirmed.
echo.
) else (
echo Failure: Current permissions inadequate.
echo.
goto restartscript
)

if %_os_bit% == 32 (
goto command32
)

echo %_os_bit% exec
rem 64 bit commands here <------------
pause
goto theend

:command32
echo %_os_bit% exec
rem 32 bit commands here <------------
pause
goto theend

:restartscript
rem elevate self
echo Elevating and restarting self..
echo.
start elevate%_os_bit%.exe -c %~n0%~x0

:theend

That’s it! Have fun!

Advertisements

[post in Greek] DNS: αυτός ο άγνωστος..

Ακόμα ένα κείμενο στη σειρά #μόνοςμουταλέωμόνοςμουταακούω για τον υπολογιστή σας, την ασφάλεια σας και τη ζωή σας γενικότερα :P

(κυρίως για χρήστες Windows, οι γενικές αρχές ισχύουν για όλους)

DNS σημαίνει Domain Name Space και προσπαθώντας να εξηγήσω όσο πιο απλά μπορώ τι είναι και τι κάνει θα πω πως είναι κάτι σαν τον τηλεφωνικό κατάλογο του διαδικτύου.

Όλοι οι server που επισκέπτεστε (π.χ. google.com, facebook.com κλπ. κλπ.) κανονικά έχουν διευθύνσεις όπως 172.217.12.174 ή 31.13.69.228.
Επειδή όμως κανείς δε θυμάται όλα αυτά τα νούμερα δημιουργήθηκε το DNS που μέσω των DNS Servers κρατάει τις αντιστοιχίες αυτές.

Έτσι π.χ. όταν θέλετε να επισκεφθείτε τη διεύθυνση www.google.com o browser σας (Chrome, Firefox κλπ.) ή το λειτουργικό σας ρωτάει τον DNS Server που να πάει και αυτός του απαντάει με ένα νούμερο 173.194.36.51.

Όλο αυτό το σύστημα έχει διάφορες λειτουργίες και καμιά φορά μπορεί να λειτουργήσει εις βάρος μας ή να μας δώσει λύσεις.

Παραδείγματα:

1. φανταστείτε πως ο DNS Server που χρησιμοποιεί η εταιρεία που σας συνδέει με το διαδίκτυο είναι αργός για κάποιο λόγο. Αυτό σημαίνει πως όταν ο υπολογιστής σας ρωτήσει μια διεύθυνση θα περιμένει κάποια millisecond (ναι είναι μικρά αλλά μαζεύονται) περισσότερο να πάρει απάντηση και όλο αυτό θα μεταφραστεί σε εσάς πως “το site αργεί να φορτώσει” (φυσικά δεν αργεί μόνο από αυτό αλλά ΚΑΙ από αυτό).

2. φανταστείτε πως κάποιος έχει φτιάξει έναν δικό του κακόβουλο DNS Server και έχει κάπως μολύνει τον υπολογιστή σας ώστε όταν αυτός ζητάει τη σελίδα “X” να του δείχνει μια ψεύτικη σελίδα “X” ώστε να υποκλέψει τα στοιχεία σας ή να σας μολύνει με κάποιο ιό.

ΟΚ σταματήστε να φαντάζεστε. Αυτά συμβαίνουν.

Αν εξακολουθεί να μη σας νοιάζει ΟΚ.


 

Το θετικό είναι πως μπορούμε να αλλάξουμε DNS Server στο δίκτυο μας και να χρησιμοποιούμε αυτούς που θέλουμε εμείς. Υπάρχουν DNS Server από μεγάλες εταιρείες όπως οι OpenDNS (τώρα ανήκουν στη Cisco), οι servers της Quad9, οι servers της Norton (γνωστή εταιρεία antivirus), οι servers της CleanBrowsing κ.α.

Αλλάζοντας DNS Server μπορούμε:

  • να έχουμε δυνητικά λίγο καλύτερη ταχύτητα πλοήγησης
  • περισσότερη ασφάλεια καθώς συγκεκριμένοι server χρησιμοποιούν λίστες που κόβουν κακόβουλα domain με ιούς κλπ. (φυσικά και ΔΕΝ αποτελεί καθολική προστασία, αυτό το τονίζω)
  • να μπλοκάρουμε περιεχόμενο αν θέλουμε (π.χ. πορνογραφία, για όσους δε θέλουν τέτοια πρόσβαση, για γονική επίβλεψη κλπ.)

Το σωστό είναι να αλλάξουμε DNS Server στο router μας ώστε όποια συσκευή συνδέεται εκεί να έχει τα οφέλη του server που θα επιλέξουμε.

Το εύκολο που θα αναφέρω εδώ είναι να αλλάξουμε DNS Server στον υπολογιστή μας.

Υπάρχουν μικρά προγράμματα που μας κάνουν τη ζωή εύκολη σε αυτό τον τομέα αντί να καθόμαστε να σκαλίζουμε τις ρυθμίσεις των Windows.
Το Dns Jumper μας δίνει πολλές λειτουργίες και είναι λίγο πιο πολύπλοκο.
Ας δούμε ένα πιο απλό το Public DNS Server Tool
Κατεβάστε το από τη σελίδα του: https://www.trishtech.com/public-dns-server-tool/ , ανοίξτε το zip σε ένα φάκελο της επιλογής σας και τρέξτε το πρόγραμμα. Δε χρειάζεται εγκατάσταση.

Θα δείτε την παρακάτω οθόνη:

Εδώ το μόνο που έχετε να κάνετε είναι να επιλέξετε το πεδίο “Select All”, ένα server set από τη λίστα και το κουμπί Change στο τέλος.

Προς παρόν κλείστε το πρόγραμμα δε θα κάνετε κάποια αλλαγή.

Για να προσθέσετε κάποιους νέους DNS Servers, που το πρόγραμμα δεν έχει στη λίστα του και αυτή τη στιγμή που γράφεται το παρόν είναι πιθανόν καλύτεροι, κατεβάστε το αρχείο servers.zip από εδώ https://app.box.com/s/82as8dirpy0vc3y6r6dxmicne48ihuw6
και ανοίξτε το στο φάκελο που βάλατε το Public DNS. Θα αντικαταστήσει εκεί το αρχείο servers.ini

Ανοίξτε κατόπιν ξανά το πρόγραμμα Public DNS Server Tool.
Τώρα η λίστα των servers θα πρέπει να είναι έτσι:

Από τη λίστα οι επιλογές 1-9 που έχω σημειώσει έχουν τις εξής δυνατότητες:

  • OpenDNS Home: γρήγοροι servers με συχνές ανανεώσεις και βασική προστασία από κακόβουλα link (δεν κόβει κάποιο περιεχόμενο)
  • OpenDNS FamilyShield: το ίδιο όπως παραπάνω με επιπλέον φίλτρο για να κόβει site ακατάλληλα για ανηλίκους (να γνωρίζεται πως το να κοπεί το 100% αυτών των site είναι εξαιρετικά δύσκολο από όλους του DNS Server)
  • CleanBrowsing Security Filter: βασική προστασία από κακόβουλα link (δεν κόβει κάποιο περιεχόμενο)
  • CleanBrowsing Adult Filter: προστασία από κακόβουλα link και κόψιμο πορνογραφικού περιεχομένου
  • CleanBrowsing Family Filter: προστασία από κακόβουλα link και πολύ αυστηρό κόψιμο πορνογραφικού περιεχομένου (κόβει και site που ενδεχομένως να φιλοξενούν ακατάλληλο περιεχόμενο όπως το Reddit)
  • Quad9: βασική προστασία από κακόβουλα link (δεν κόβει κάποιο περιεχόμενο)
  • Norton ConnectSafe A: βασική προστασία από κακόβουλα link (δεν κόβει κάποιο περιεχόμενο)
  • Norton ConnectSafe B: ότι και το παραπάνω “Α” με επιπλέον φίλτρο για πορνογραφία
  • Norton ConnectSafe C: ότι και το παραπάνω “Β” (δλδ. κακόβουλα link, πορνογραφία) με επιπλέον φίλτρο για site βίας, ναρκωτικών, αλκοόλ, διαμοιρασμού αρχείων κ.α.

Μπορείτε να επιλέξετε κάποιο από τα παραπάνω λοιπόν αναλόγως τι θέλετε να κόψετε από περιεχόμενο π.χ. αν θέλετε απλή προστασία και καλούς DNS Server επιλέξτε το CleanBrowsing Security Filter ή το OpenDNS Home.

Φροντίστε στο πρόγραμμα να είναι επιλεγμένο το πεδίο “Select All”.
Αφού πατήσετε το κουμπί Change στο πρόγραμμα θα δείτε το παρακάτω μήνυμα επιβεβαίωσης και τους αριθμούς των server που επιλέξατε στο πεδίο Current DNS.

Αν έχουν γίνει όλα σωστά ο υπολογιστής σας θα χρησιμοποιεί πλέον τους νέους DNS Servers και καλό θα ήταν εδώ να κάνετε μια επανεκκίνηση στον υπολογιστή ώστε να σβήσουν στοιχεία αποθηκευμένα από τους παλιούς DNS Servers.

Οποτεδήποτε θέλετε να ελέγξετε ποιους DNS Servers χρησιμοποιεί ο υπολογιστής σας αρκεί να ανοίξετε πάλι το Public DNS Server Tool.

[post in Greek] Εντοπισμός κινητού Android (ίσως μέρος 1ο)

Η Σοφία έχασε το κινητό της στο Άμστερνταμ. Της παράπεσε σε ένα πάρκο. Ευτυχώς δεν της το έκλεψαν. Δυστυχώς δεν είχε ενεργοποιημένη την “Εύρεση συσκευής”. Και δυστυχώς δεν ήξερε καν τι είναι η “Εύρεση συσκευής”.

Το κείμενο αυτό είναι για τη Σοφία, μια φίλη μου. Δεν την ξέρετε.

Όχι, το κείμενο αυτό είναι για την “Εύρεση συσκευής” της Google στα κινητά Android. Ελπίζω αυτή τη φορά η Σοφία να το διαβάσει.

Τα smartphone δυστυχώς ή ευτυχώς έχουν γίνει προεκτάσεις του εαυτού μας. Καμιά φορά όμως τα ξεχνάμε. Μας ξεφεύγουν (ίσως για να απαλλαγούν που τα ζαλίζουμε από το πρωί έως ενίοτε το άλλο πρωί). Καμιά φορά μας τα κλέβουν. Έτσι είναι η ζωή.

Και μετά είμαστε κάπως έτσι:

Στις Android συσκευές (προφανώς και στου άλλου μεγάλου κατασκευαστή κινητών υπάρχει κάτι αντίστοιχο) η Google έχει ενσωματώσει τη λειτουργία “Εύρεση συσκευής” ώστε να μπορούμε να την εντοπίσουμε από μακρυά αν έχουμε πρόσβαση σε έναν υπολογιστή ή σε ένα άλλο smartphone.

Και κάπου εδώ σας προσγειώνω λέγοντας πως φυσικά ούτε αυτή η λειτουργία είναι 100% αξιόπιστη (και γι’αυτό υπάρχουν και άλλα apps για αυτή τη δουλειά, πιο πολύπλοκα). Αλλά είναι ότι πιο εύκολο μπορείτε να κάνετε γρήγορα και δωρεάν.
Επίσης πρέπει ΠΑΝΤΑ να έχουμε ενεργοποιημένο το αυτόματο κλείδωμα της συσκευής μετά ορισμένο χρόνο (π.χ. 1 λεπτό) με κωδικό PIN ή με pattern (μοτίβο).

Για να λειτουργήσει η “Εύρεση συσκευής” πρέπει στη συσκευή μας να έχουμε ενεργοποιημένο το GPS (που τα περισσότερα κινητά το έχουν εξ’ ορισμού) και να έχει κάποια σύνδεση με το δίκτυο την ώρα που το αναζητούμε (WiFi, 3G/4G data).

Η “Εύρεση συσκευής” ενεργοποιείται ως εξής:
(τα παρακάτω στιγμιότυπα οθόνης είναι από εκδόσεις του Android 5.x και 6.x. Το μενού που μας ενδιαφέρει Google –> Ασφάλεια λογικά έχει μετακινηθεί στο “Ασφάλεια και τοποθεσία” των γενικών ρυθμίσεων σε μεγαλύτερες εκδόσεις του λειτουργικού)

Αφού εντοπίσουμε τις ρυθμίσεις της Google για το λογαριασμό μας

Επιλέγουμε το “Ασφάλεια”

και στη συνέχεια το “Εύρεση συσκευής”

Στην επόμενη οθόνη φροντίζουμε η επιλογή να δείχνει “Ενεργό”

Ως εδώ ήταν οι ρυθμίσεις από τη μεριά του κινητού. Επειδή η Google αλλά και οι κατασκευαστές (π.χ. Samsung, Sony, Huawei, Xiaomi κλπ.) έχουν την κακιά συνήθεια να αλλάζουν κατά καιρούς τη θέση των μενού και των ρυθμίσεων μην απογοητευτείτε αν δε το βρείτε με την πρώτη. Ψάξτε στο δίκτυο για το δικό σας κινητό.

Τώρα απομένει μόνο να συνδεθούμε και να ενεργοποιήσουμε το απομακρυσμένο κλείδωμα και διαγραφή του κινητού.

Σε έναν υπολογιστή πηγαίνουμε στη διεύθυνση: https://www.android.com/find
όπου θα χρειαστεί να κάνουμε login με το Google account που έχουμε ως κύριο στο κινητό μας

Στην επόμενη οθόνη θα δείτε ότι μας εμφανίζει το κινητό που έχουμε μαζί με κάποια στοιχεία και το χάρτη αν μας έχει εντοπίσει.

Οι επιλογές ενδέχεται να σας εμφανίζονται στα Ελληνικά.

Η δεύτερη επιλογή “ENABLE SECURE & ERASE” είναι αυτή που πρέπει να ενεργοποιήσουμε τώρα πατώντας εκεί οπότε και η οθόνη θα αλλάξει ως εξής:

AYTO HTAN! Απίστευτο μεν αλλά ναι.

Αν χρειαστεί να εντοπίσουμε το κινητό μας τώρα αρκεί να πάμε στη διεύθυνση: https://www.android.com/find , να κάνουμε login και να δούμε την τοποθεσία του ή να επιλέξουμε μια από τις άλλες λειτουργίες.

Επεξηγηματικά η λειτουργία “PLAY SOUND” παίζει έναν ήχο ώστε να ακούσουμε το κινητό αν είμαστε κοντά (παίζει για 5 λεπτά ακόμα και αν το έχουμε στο αθόρυβο αλλά όχι αν έχουμε συνδεδεμένα ακουστικά).

Η λειτουργία “SECURE DEVICE” μας επιτρέπει να κλειδώσουμε τη συσκευή από μακρυά εμφανίζοντας ένα μήνυμα στην οθόνη (όπως είπα παραπάνω πρέπει ΠΑΝΤΑ να έχουμε ενεργοποιημένο το κλείδωμα της συσκευής με κωδικό PIN ή με pattern) και αν βάλουμε έναν αριθμό τηλεφώνου στο δεύτερο πεδίο να δώσουμε τη δυνατότητα σε όποιον το βρει να μας καλέσει

Η λειτουργία “ERASE DEVICE” είναι το τελευταίο πράγμα που μπορείτε να κάνετε αν έχετε βεβαιωθεί πως δεν πρόκειται να βρείτε ξανά το κινητό σας. Αν την ενεργοποιήσετε θα διαγραφούν από το κινητό σας όλα τα στοιχεία του λογαριασμού σας, οι ρυθμίσεις, η εσωτερική μνήμη αλλά όχι ότι έχετε αποθηκευμένο στην κάρτα SD αν το κινητό σας διαθέτει τέτοια (φυσικά αν σας το έχει κλέψει κάποιος πιθανότατα θα ξέρει τι να κάνει οπότε το Erase δε θα δουλέψει, αλλά δε χάνετε τίποτα).

Στο Play store υπάρχει και το app “Εύρεση συσκευής” (Find My Device) με το οποίο μπορείτε να κάνετε τις ίδιες λειτουργίες όπως στην web έκδοση (στην ουσία είναι ένα front end της web σελίδας https://www.android.com/find ) ή να εξυπηρετήσετε κάποιο φίλο σας που έχει χάσει το κινητό του με την επιλογή “Σύνδεση ως επισκέπτης”.

οδηγίες της Google για όλα τα παραπάνω:
https://support.google.com/android/answer/3265955?hl=el

https://support.google.com/accounts/answer/6160491?hl=el

Κι ένα εξαιρετικό animation, αν φτάσατε μέχρι εδώ, (τίτλος Life Smartphone) από τον Chenglin Xie για τη ζωή μας με τα κινητά
το επίσημο trailer

και ολόκληρο στο link https://www.videoman.gr/en/77637

[post in Greek] Ransomware: όταν το backup πρέπει να γίνει καθημερινότητα

(ακολουθεί μεγάλο κείμενο, αν βαριέστε εσείς χάνετε αλλιώς φτιάξτε καφέ)
(απευθύνεται κυρίως σε χρήστες λειτουργικού Windows. φυσικά backup πρέπει να κάνετε όλοι)

Ransomware

Ransomware, μια λέξη που ακούγεται αρκετά τελευταία. Για τους περισσότερους χρήστες υπολογιστών απλά ένα ακόμα είδος ιού.
Ransomware είναι μια κατηγορία malware (κακόβουλου λογισμικού) που κρυπτογραφεί τα αρχεία του υπολογιστή σας (όχι τα αρχεία που χρειάζονται για να λειτουργήσει ο υπολογιστής αλλά τα προσωπικά σας αρχεία π.χ. έγγραφα, φωτογραφίες, βάσεις δεδομένων) και σας ζητάει λύτρα για να σας αφήσει να τα ανακτήσετε.

Τα ran$omware δεν είναι νέα κατηγορία ιών απλά τα τελευταία χρόνια λόγω διαφόρων εξελίξεων στην κρυπτογράφηση, στις ευπάθειες των λειτουργικών συστημάτων που έγιναν γνωστές αλλά και στην ψηφιακή οικονομία (bitcoins, ψηφιακά νομίσματα) έχουν εξελιχθεί σε μια απειλή πολλών εκατομμυρίων (εικάζεται δισεκατομμυρίων) παγκοσμίως.

Screenshots όπως τα παρακάτω, κλειδωμένων υπολογιστών, είναι πλέον συνηθισμένα

Όπως λέω σε φίλους το τι μπορεί να κάνει ο καθένας μας για να προστατευτεί είναι λίγο πολύ συγκεκριμένο. Και βαρετό ίσως. Αλλά μόνο έτσι μπορούμε να αποφύγουμε καταστάσεις:
– “Νίκο, έχω ιό..”
– “να τον χαίρεσαι.. να σου ζήσει! α! τι εννοείς..;;”

Επίσης λύσεις όπως οι παρακάτω δεν λειτουργούν. Τις έχουμε / έχετε δοκιμάσει.



 
Τα δεδομένα μας – συμβουλές είναι τα εξής:

  • 100% προστασία δεν υπάρχει
  • βάλτε antivirus! Αν αγοράσετε και κάποιο αξιόπιστο (2-3 είναι τα καλά) ακόμα καλύτερα
  • μην ανοίγετε email που σας φαίνονται ύποπτα και ακόμα περισσότερο μην ανοίγετε attachments των email αν δεν είστε σίγουροι για το τι είναι
  • προσοχή στα site που επισκέπτεστε. Κανείς δεν δίνει δωρεάν αεροπορικά εισιτήρια, κανείς δεν δίνει δωρεάν κινητά. Μην είστε χαζοί. Αυτοί δεν είναι
  • αλλάξτε DNS Servers στο δίκτυο σας
  • την ίδια και παραπάνω προσοχή στα links από το Facebook. Ειδικά αυτά που σας υπόσχονται δώρα και δωρεάν πράγματα. Λυπάμαι. Τίποτα δεν είναι δωρεάν σε αυτή τη ζωή
  • απενεργοποιήστε το Remote Desktop των Windows (disable remote desktop)
  • ως πρόσθετο μέτρο προστασίας μαζί με το antivirus μπορείτε να εγκαταστήσετε κάποιο πρόγραμμα όπως το Ransomfree της Cybereason που δημιουργεί ψεύτικα αρχεία Word, Excel κλπ και τα παρακολουθεί. Αν τα δείτε στο σκληρό σας μη τα σβήσετε. Ένα άλλο πρόγραμμα επίσης δωρεάν, λίγο πιο πολύπλοκο, είναι το Acronis Ransomware Protection
  • αν σας χτυπήσει κάποιο ransomware πριν κάνετε οτιδήποτε κρατήστε φωτογραφίες από την οθόνη του υπολογιστή σας και σημειώσεις του κειμένου. Έτσι μπορεί σε ειδικά site (https://id-ransomware.malwarehunterteam.com/ , https://www.nomoreransom.org/ ) να αναγνωρίσετε το συγκεκριμένο είδος και ίσως να ανακτήσετε τα αρχεία σας
  • και το κερασάκι: BACKUP

Backup

Αυτό είναι κάτι που όλοι μας συνήθως αμελούμε και που θα έπρεπε να είναι καθημερινότητα όπως το βούρτσισμα των δοντιών μας που επίσης αμελούμε.

Backup των αρχείων μας δεν έχει νόημα να κάνουμε μόνο (ή και καθόλου εκεί) σε κάποιο 2ο εσωτερικό σκληρό του υπολογιστή μας.
Πολύ γενικά υπάρχουν δύο τύποι 1. onsite – offline και 2. offsite – online. Σε πολύ απλά λόγια το πρώτο είναι ένας εξωτερικός σκληρός στο σπίτι/γραφείο μας που όμως δεν είναι μόνιμα συνδεδεμένος με τον υπολογιστή μας και το δεύτερο είναι σε κάποιο απομακρυσμένο server μέσω δικτύου (π.χ. cloud υπηρεσία όπως το Dropbox ή το Onedrive, το MEGA ή κάποιος δικός μας server με ftp).

– Offsite-online backup
Αν τα αρχεία σας (φωτογραφίες, έγγραφα) είναι λίγα και μπορούν να χωρέσουν στο δωρεάν χώρο μιας υπηρεσίας όπως το Dropbox ή αν έχετε κάποια συνδρομή με περισσότερο διαθέσιμο χώρο και εμπιστεύεστε αυτές τις υπηρεσίες τότε τουλάχιστον φροντίστε τα προγράμματα συγχρονισμού που έχουν να μην “τρέχουν” συνέχεια στον υπολογιστή σας όπως συνήθως έχουν προεπιλογή. Μπορείτε μια φορά τη μέρα να ανοίγετε το πρόγραμμα συγχρονισμού να κάνει sync τα αρχεία και να το κλείνετε.

Ο λόγος είναι απλός. Ένας ιός ή πιο συγκεκριμένα ένα ransomware δεν θα σας δείξει εξ’ αρχής πως έχετε μολυνθεί. Θα περάσουν ώρες ή και μέρες. Προφανώς αν βρει πρόσβαση στο online backup σας θα κρυπτογραφήσει και εκείνα τα αρχεία οπότε δε θα έχετε πια backup.

– Onsite-offline backup
Μια λύση για τους περισσότερους από εμάς.

Επενδύστε σε έναν ή σε δύο (ή σε τρεις :p ) εξωτερικούς σκληρούς δίσκους μεγαλύτερους από αυτούς που έχετε στον υπολογιστή σας.

Η διαδικασία που θα πρέπει να γίνει συνήθεια είναι η στην αρχή της ίδια. Μια φορά την ημέρα (ΟΚ! κάθε X μέρες), και αφού δεν έχουμε δει τίποτα πολύ ύποπτο στον υπολογιστή μας, συνδέουμε τον εξωτερικό σκληρό και αντιγράφουμε τα αρχεία μας (αυτά που έχουν αλλάξει για πιο γρήγορα). ΔΕΝ τον έχουμε μόνιμα συνδεδεμένο στον υπολογιστή μας!

Σε αυτού του είδους τα backup οι τρόποι συγχρονισμού των αρχείων είναι διάφοροι αλλά εμάς εφόσον μας ενδιαφέρει ένα αντίγραφο ασφαλείας για περίπτωση ανάγκης το μοντέλο που μας εξυπηρετεί είναι το mirroring. Δηλαδή όλες οι αλλαγές από τον κύριο σκληρό δίσκο (source) αντιγράφονται στον δεύτερο (destination) και από τον δεύτερο διαγράφονται αρχεία που δεν υπάρχουν πια στον κύριο. Έτσι έχουμε ένα ακριβές αντίγραφο.

Προγράμματα για αντίγραφα ασφαλείας υπάρχουν ευτυχώς πολλά. Και αρκετά είναι δωρεάν και άλλα είναι επιπλέον και open source.

Ένα από τα δωρεάν που υπάρχουν (η εταιρεία έχει και επαγγελματικές εκδόσεις με περισσότερες λειτουργίες) είναι το SyncBackFree.

Ας δούμε λίγο πως λειτουργεί σε mirror backup.

Αφού το εγκαταστήσετε αλλάξτε τη γλώσσα σε Αγγλικά (για να συνεννοούμαστε :p ).

Η κεντρική του οθόνη είναι η εξής:

Το πρόγραμμα, όπως και τα περισσότερα του είδους, λειτουργεί με τη δημιουργία προφίλ. Δηλαδή αποθηκεύει το τι είδους backup θέλετε να κάνετε, από ποιο σκληρό σε ποιον και άλλες λεπτομέρειες ώστε να μην χρειάζεται να τις περνάτε κάθε φορά.

Για να φτιάξετε ένα νέο προφίλ επιλέγετε από το μενού Profiles -> New και δίνετε ένα όνομα ώστε να ξέρετε για ποιο είδος backup πρόκειται.

Στη συνέχεια επιλέγετε το είδος (Mirror) και το κουμπί “Done”

Στην επόμενη οθόνη που θα ανοίξει πρέπει να επιλέξετε τους σκληρούς δίσκους source και destination για τα αντίγραφα ασφαλείας. Προφανώς πρέπει να έχετε συνδέσει στον υπολογιστή σας τον εξωτερικό σκληρό δίσκο.

Αφού τελειώσετε με την επιλογή source και destination επιλέγετε “OK”.

Θα δούμε ένα warning ότι το προφίλ που δημιουργήσατε είναι ικανό να διαγράφει αρχεία.

Αυτό είναι αναμενόμενο εφόσον στον εξωτερικό σκληρό θα διαγράφονται όσα αρχεία δεν υπάρχουν πια στον κύριο σκληρό δίσκο. Αν αυτή η λειτουργία σας φοβίζει τότε το mirroring backup δεν είναι επιλογή για εσάς.

Στη συνέχεια το πρόγραμμα θα σας ρωτήσει αν θέλετε να τρέξετε το προφίλ που δημιουργήσατε δοκιμαστικά (simulated run) ώστε να δείτε τι αλλαγές θα γίνουν στον εξωτερικό σκληρό σε περίπτωση που το τρέχατε κανονικά.

Μπορείτε αν θέλετε να το τρέξετε για να δείτε τη λειτουργία του backup αλλιώς επιλέξτε “No”.

To προφίλ για το backup σας είναι έτοιμο. Θα το δείτε με το όνομα που δώσατε στην κεντρική οθόνη του προγράμματος όπου μπορείτε να το επιλέξετε και να το τρέξετε με το “Run”. Θα σας δείχνει κάθε φορά τις αλλαγές που πρόκειται να κάνει στον εξωτερικό σκληρό μας και αν συμφωνείτε επιλέγετε το “Continue Run”.

Κάποιες άλλες ρυθμίσεις του προγράμματος που μπορείτε (και καλό είναι) να επιλέξετε:

Στην κεντρική οθόνη στο μενού Preferences να απο-επιλέξετε το “Minimize To Tray” καθώς και το “Minimize On Close” και να επιλέξετε το “Disable Hibernate/Standby”.

Επίσης μια ενδιαφέρουσα λειτουργία που έχει το συγκεκριμένο πρόγραμμα είναι μια υποτυπώδης προστασία από ransomware ;) .
Δημιουργήστε ένα έγγραφο κειμένου σε ένα σημείο στον σκληρό σας δίσκο (π.χ. ένα κείμενο Word με όνομα mytextfile.doc) και φροντίστε 1. να μην το σβήσετε ποτέ και 2. να μην το ανοίξετε ή αλλάξετε ξανά.
Πηγαίνοντας στο μενού του προγράμματος Preferences –> Options στο δεύτερο tab “Expert” μπορείτε να επιλέξετε στην περιοχή Ransomware detection το παραπάνω αρχείο και να πατήσετε το “OK”.


To SyncBackFree θα παρακολουθεί αυτό το αρχείο και αν τροποποιηθεί τότε θα μπλοκάρει τα προφίλ backup που έχετε δημιουργήσει θεωρώντας πως κάποιο ransomware έχει αρχίσει να κρυπτογραφεί τα αρχεία σας και προστατεύοντας έτσι τα backup σας. Αν σας συμβεί αυτό αποσυνδέστε τον εξωτερικό σκληρό δίσκο μέχρι να σιγουρευτείτε ότι όλα είναι καλά.

Και κλείνουμε με την απαραίτητη σοβαρή και έγκυρη είδηση:

PIR sensor alarm with esp8266 and IFTTT webhooks (maker)

Making a cheap alarm with web notifications through IFTTT is relatively simple with a passive infrared motion sensor (PIR) such as HC-SR501 and an esp8266.

You can install a few of these and monitor your home or office (provided power and WiFi of course). Future expansions could include a SIM GPRS module for SMS alarm messages.

The HC-SR501 module is one of the most common sold for Arduino/IoT based installments. Here’s a nice blog post describing a lot of interesting things about this sensor: http://henrysbench.capnfatz.com/henrys-bench/arduino-sensors-and-input/arduino-hc-sr501-motion-sensor-tutorial/

Problem #1:
As most this kind of sensor requires 5v to work reliably. In 3.3v it is proven that gives false positives or no detection of movement. So in a setup with esp8266 (or a NodeMCU board like I used) you must have a 5v output just for the PIR sensor.
Thankfully someone has found a solution without modifying the sensor as most propose (this is tested for the sensor working in repeat mode). Studying the schematics it is shown that instead of connecting the 5v power to the standard VDC input you can connect 3.3v directly to the lower pin of the High/Low trigger selection pin. You can read about this in the following blog post https://techgurka.blogspot.gr/2013/05/cheap-pyroelectric-infrared-pir-motion.html

Problem #2:
Interference! PIR sensor acts crazy when in close proximity with esp8266/NodeMCU’s WiFi producing a lot of false alarms.
The solution is to put the WiFi of esp8266 to sleep until there is a movement trigger from the sensor with this code:

void stopWiFiAndSleep() {
  WiFi.disconnect();
  WiFi.mode(WIFI_OFF);
  WiFi.forceSleepBegin();
  delay(1);
}

Problem solved!

As mentioned you’ll need an IFTTT account and a webhooks (former maker) key to use in the code. So each time PIR sensor detects motion esp8266 connects to WiFi and fires a webhook event. For example a Pushbullet notification in your phone.

The schematic connecting PIR with a NodeMCU is the following:

An ON/OFF switch is also added to stop sending the alarms when needed.

The code for the above setup is uploaded here: https://github.com/nikant/PIR-ESP-ALARM

[Greek/English] Φραγή, αποκλεισμός κλήσεων σε Android (5+) / Blacklist – Call blocker

Jump to English section

Ενοχλητικές κλήσεις, κλήσεις με υψηλές χρεώσεις επανάκλησης, απατεώνες, διαφημιστικές εταιρείες που καλούν μέσα στο μεσημέρι.. Λίγο πολύ γνωστά περιστατικά σε όλους μας.

Για το σταθερό τηλέφωνο υπάρχουν κάποια μηχανήματα αποκλεισμού / απόρριψης κλήσεων (πιθανότατα θα χρειαστεί να αγοράσετε από εξωτερικό αν θέλετε κάτι τέτοιο).
Για τα κινητά iOS/Android υπάρχουν πολλές εφαρμογές που προσφέρουν τη δυνατότητα δημιουργίας Blacklist ανεπιθύμητων κλήσεων.

Συγκεκριμένα για το Android που με ενδιαφέρει υπάρχουν δεκάδες εφαρμογές στο Google Play. Οι περισσότερες λειτουργούν σωστά κλείνοντας την κλήση στον ανεπιθύμητο. Τα “προβλήματα” που είχα ήταν περίπου τα ίδια. Πολλά αδικαιολόγητα permissions σε κάθε εφαρμογή, ανάγνωση του τηλεφωνικού μου καταλόγου και κυρίως η Blacklist με τα νούμερα που ήθελα αποθηκευόταν μέσα σε κάθε εφαρμογή χωριστά ώστε αν ήθελα να αλλάξω εφαρμογή έχανα ότι είχα περάσει.


Enter “Nick’s Blacklist – Call Blocker“. Μια εφαρμογή από εμένα (αρχικά για προσωπική χρήση και είπα να βγει και στο Play Store δωρεάν).

Τα τηλεφωνικά νούμερα προς αποκλεισμό δεν αποθηκεύονται μέσα στην εφαρμογή αλλά σε ένα Group στα Google Contacts (τις Επαφές του κινητού σας). Συγκεκριμένα ένα group με όνομα “Phone Blacklist Group” (πρέπει να το δημιουργήσετε, χωρίς quotes). Σε αυτό το Group απλά προσθέστε επαφές που δε θέλετε να σας ενοχλούν.

Αν πρόκειται για τυχαία νούμερα που δεν έχετε στις επαφές σας (διαφημιστικές κλπ.) μπορείτε να δημιουργήσετε μια επαφή με όνομα SPAM με όλα αυτά τα νούμερα και αυτή να την προσθέσετε στο Phone Blacklist Group.
Έτσι η λίστα ανεπιθύμητων θα συγχρονιστεί με τις επαφές σας στη Google και υπάρχει πάντα στη διάθεση σας.

Άλλες λειτουργίες που έχει η εφαρμογή είναι:
•• αποκλεισμός καλούντων με απόκρυψη

•• επιλογή να λαμβάνετε κλήσεις μόνο από τις αποθηκευμένες επαφές σας (όχι φυσικά αυτές που έχετε στο Phone Blacklist Group)

•• αποκλεισμός αριθμών που αρχίζουν από όποιο πρόθεμα ορίσετε εσείς
π.χ. αν δε θέλετε να σας καλούν από Μαλδίβες (γιατί έχετε τσακωθεί με κάποιους Μαλδιβέζους βρε αδερφέ..) στην λειτουργία Prefix # block θα προσθέσετε το πρόθεμα +960 και 00960 (για να είστε σίγουροι). ΠΡΟΣΟΧΗ να μην βάλετε κάτι λάθος στην επιλογή αυτή.

Εννοείται πως αν έχετε στο κινητό σας RAM cleaners, battery optimizations όπως π.χ. το Doze mode του Android (6+) θα πρέπει να προσθέσετε την εφαρμογή στην allow list για να λειτουργεί σωστά.

——————————————–

 

Nuisance calls, high rate spam calls, advertisers.. Well known problems nowadays.

There are some call blocking / blacklist devices for landlines from two or three companies in the market. There are also numerous iOS/Android apps for call blocking.

I tried many apps in Play Store. Most of them are OK blocking calls. “Problems” I had where more or less the same. Many unjustified permissions, reading my contacts in full and the main problem was that the blacklist with the numbers I desired to be blocked was stored in every app thus it was deleted when that app was uninstalled for whatever reason.


Enter “Nick’s Blacklist – Call Blocker“. An app I made for personal use now completely free (and ad free) in Google Play.

Numbers that are to be blocked are not stored inside the app but in a Group in Google Contacts (your phone Contacts). Specifically in a group named “Phone Blacklist Group” (you have to create it, without quotes). Simply add unwanted callers in that group.

If unwanted callers aren’t stored in your contacts you can for example create a SPAM contact, add that in Phone Blacklist Group and in that contact add every nuisance number you like.
That way your blacklist callers will be synced with Google contacts and always at your disposal.

Other functions of the app:
•• block hidden / private numbers

•• allow calls only from your Contacts (the ones in Phone Blacklist Group excluded)

•• prefix number block
i.e. if you don’t want to receive international calls from Nigeria you can add the prefix +234 and 00234 (depending on how your carrier represents international calls). BE CAREFUL not to make a mistake since this function blocks whole area codes.

Of course you have to exclude Nick’s Blacklist – Call Blocker from RAM cleaners if you have any in your phone or battery optimizations like Android Doze mode (6+) in order for the app to function correctly.

update THE433: Home Automation

It was about time to somewhat clean the code, update the README with instructions and also provide a demo Android app for my THE433 Home Automation

It’s a self contained ESP8266 RF433 Interface to control RF sockets from afar (with your personal IP or a DDNS service). No need for external services and servers (no MQTT, right now I prefer it that way..) and its main feature is that you can set RF signals to fire in the future or repeat over time.

The updated with instructions code: https://github.com/nikant/THE433

and also in GitHub you’ll find the demo Android app made with MIT-App-Inventor-2: https://github.com/nikant/THE433/tree/master/THE433%20Control%20Android%20demo%20app

AfraidDDNS updater

With all the IoT devices around Arduino, esp8266 etc. a hostname is often needed. https://freedns.afraid.org/ offers DDNS subdomains that are updatable through a special URL.

So this is a simple function that does just that.

Simply place files “afraidddns.h” and “afraidddns.ino” use
#include "afraidddns.h"
in your main program and call updateAfraid(); when needed

code: https://github.com/nikant/AfraidDDNS

You will need your afraid.org subdomain hash which you can get by logging in https://freedns.afraid.org/dynamic/ and checking the URL at the bottom of the page where it says Direct URL.
i.e. h++ps://freedns.afraid.org/dynamic/update.php?VxxxxxxxxxxFDGxxxxxxxxxx1xxxxxRTTxxxxxESP8

Forecast Jar

There are a lot of IoT projects out there dealing with weather / weather conditions etc. I’ve been tinkering with some as it’s a great way to learn things around microcontroller boards like Arduino.

After playing around with some designs I wanted something simple for my room to check tomorrow’s weather forecast at a glance.

So this is the Forecast Jar.

Design is simple component side. An esp8266, two RGB common anode leds and a DHT22 sensor for local weather conditions.


The code (is a mess but “Hey! It compiles!”) uses Weather Underground API in its free version which offers enough daily requests for this project.

Of course Forecast Jar has a web interface (esp8266 ;)) in which you can check local conditions reported from DHT22 sensor and, more importantly, you can change the location of the Forecast Jar with latitude and longitude so it can request the correct conditions from Weather Underground.

Also in the web interface there is the color legend for the forecast conditions

The Forecast Jar (in code) is also connected to IFTTT Maker if needed and reports it’s DHT22 data to a ThingSpeak channel so we can have pretty graphs of our room temperature and humidity :)