Categories
All

How to write hidden text into image

—= EXIF =—
Exchangeable image file format (officially Exif, according to JEIDA/JEITA/CIPA specifications) is a standard that specifies the formats for imagessound, and ancillary tags used by digital cameras (including smartphones), scanners and other systems handling image and sound files recorded by digital cameras. The specification uses the following existing file formats with the addition of specific metadata tags: JPEG discrete cosine transform (DCT)[1] for compressed image files, TIFF Rev. 6.0 (RGB or YCbCr) for uncompressed image files, and RIFF WAV for audio files (Linear PCM or ITU-T G.711 μ-Law PCM for uncompressed audio data, and IMAADPCM for compressed audio data).[2] It is not used in JPEG 2000 or GIF.

This standard consists of the Exif image file specification and the Exif audio file specification.

wikipedia
duck.png

there are many tools, in this post I will use exiftool Linux tool:

$ exiftool duck.png
ExifTool Version Number         : 11.65
 File Name                       : duck.png
 Directory                       : .
 File Size                       : 22 kB
 File Modification Date/Time     : 2020:03:13 05:49:30+02:00
 File Access Date/Time           : 2020:03:13 05:53:21+02:00
 File Inode Change Date/Time     : 2020:03:13 05:49:38+02:00
 File Permissions                : rw-r--r--
 File Type                       : PNG
 File Type Extension             : png
 MIME Type                       : image/png
 Image Width                     : 512
 Image Height                    : 512
 Bit Depth                       : 8
 Color Type                      : RGB with Alpha
 Compression                     : Deflate/Inflate
 Filter                          : Adaptive
 Interlace                       : Noninterlaced
 Significant Bits                : 8 8 8 8
 Image Size                      : 512x512
 Megapixels                      : 0.262

Let’s add some text “secret text for you 😉” into duck.png image metadata.

$ exiftool -Comment="secret text for you ;)" duck.png

Let’s check metadata again:

$ exiftool duck.png
ExifTool Version Number         : 11.65
File Name                       : duck.png
Directory                       : .
File Size                       : 22 kB
File Modification Date/Time     : 2020:03:13 05:58:51+02:00
File Access Date/Time           : 2020:03:13 05:58:51+02:00
File Inode Change Date/Time     : 2020:03:13 05:58:51+02:00
File Permissions                : rw-r--r--
File Type                       : PNG
File Type Extension             : png
MIME Type                       : image/png
Image Width                     : 512
Image Height                    : 512
Bit Depth                       : 8
Color Type                      : RGB with Alpha
Compression                     : Deflate/Inflate
Filter                          : Adaptive
Interlace                       : Noninterlaced
Significant Bits                : 8 8 8 8
Comment                         : secret text for you ;)
Image Size                      : 512x512
Megapixels                      : 0.262

As you can see text added:

Comment: secret text for you ;) 

In windows you can check metadata and it will looks something like this


You can save and extract Geo location lat & long from media files and more details too.

Note: most famous social media extract or removes(or in fact compress media files while uploading which cause exif data removal) but other many websites DONOT ex. flickr @_@

Understand Flickr EXIF data

EXIF data reveals the story behind a photo. Info like the camera type, settings, and location are automatically added by the device when it’s captured. You can see any photographer’s EXIF data if they’ve made it public.
Show or Hide EXIF data
– Click any photo to open it.
-Below the photo, click Show EXIF.

You can hide the EXIF data by clicking Hide EXIF.
Manage your EXIF data
– Keep EXIF data secret – Update your Privacy Settings to hide your own EXIF visibility.
– Missing EXIF data – Some image editing apps delete this upon saving.

https://help.flickr.com/en_us/understand-flickr-exif-data-r1ge02Xo1X

Which means if your smartphone camera enabled to save the Geo-location and you just capture video and upload it online.. that means your current physical Geo-location and more other details about you will be available online to the public.

Categories
All

Reset Root Password in MySQL ^8.*

  1. Add below code to the end of /etc/mysql/my.cnf file.
    [mysqld]
    skip-grant-tables
  2. Restart service:
    sudo systemctl restart mysql
  3. Login into mysql:
    sudo mysql -uroot
  4. Remove root password:
    UPDATE mysql.user SET authentication_string=null WHERE User='root'; FLUSH PRIVILEGES; exit;
  5. Comment below code at the end of /etc/mysql/my.cnf file by add # in front of each line.
    # [mysqld]
    # skip-grant-tables
  6. Restart service:
    sudo systemctl restart mysql
  7. Login into mysql:
    sudo mysql -uroot

Done! 🙂

Categories
All

Simple System With GraphGL, Reactjs, PHP

simple system with GraphQL, Reactjs, PHP

Tools used: PHP v7.3^ , Symfony 4.4^ , React 16^ , VPS, SQL , Docker , overblog/GraphQLBundle

Preview:

as gif – video

note: this is my first time to use GraphQL & Reactjs

GraphiQL:

Example Query:

query {
buyer(id: 20){
id,
name,
authToken
},
products{
id,
name
},
buyers{
name
}
}

Example Mutation: 
Note: entered buyerID and productsIDs must be existed to create order!

mutation {
createOrder(buyerID: "20", productsIDs: ["26", "24"]){
id,
buyer{
name
},
products{
name,
id
}
}
}

Install & run:
  • $ git clone git@github.com:khaledalam/simple-system-with-graphql-react-php.git $ cd simple-system-with-graphql-react-php
  • Update DB info in .env file:DATABASE_URL=mysql://USERNAME:PASSWORD@127.0.0.1:PORT/DB_NAME
  • $ composer install # press (a) to accept all recipes $ yarn install $ php bin/console doctrine:database:create $ php bin/console doctrine:schema:update --force -n $ php bin/console doctrine:fixtures:load -n # add dummy buyers&products
  • $ php bin/console server:start
Assumptions:
  • I assume order can contain multi-products instead of a single product.
  • I assume we can use any ready jwt sandbox app (ex. example)
    • host jwt sandbox on any server
    • inject it throw register, login and retrieving buyer’s orders processes via HTTPexample: – curl -H “Authorization: jwt+[TOKEN]” http://jwt_server/getBuyerIdOfThisToken – compare returnedId with current buyer id – if equal then fetch all current buyer’s orders
  • I assume all current urls available only for admins
  • I assume validations are very basic annotation constraints
  • I assume we use symfony environment (ex. this docker-symfony)
  • I assume more improvements will be done (ex. decrease redundant codes, reducing repetition logic)
  • I assume using another toolkit that supports editing HTTP headers for graphql instead of playground(since I used symfony not laravel and no stable symfony bundle similar to mll-lab/laravel-graphql-playground)

GitHub: https://github.com/khaledalam/simple-system-with-graphql-react-php

Categories
All

Firebase Logger

Firebase Logger is a simple firebase PHP logger package to monitor and save the users activities.

Installation

Use composer to install firebase-logger:
composer require khaledalam/firebase-logger

Preview

Usage

example.php

<?php
// PHP 7.1^
//error_reporting(0);

include_once './FirebaseLogger.php';

$serviceFile = __DIR__ . '/serviceAccountKey.json';
$databaseUri = 'https://{EDIT_THIS}.firebaseio.com';

$firebaseLogger = new FirebaseLogger([
    'service_account_key_json' => $serviceFile,
    'database_uri' => $databaseUri,
    'database_realtime_name' => 'Logger',
]);

if ($_POST['search'])
{
    echo "<h2>Log saved!</h2>";
    $data = [
        'action' => 'search action',
        'value' => $_POST['search'],
    ];
    $firebaseLogger->log($data);
}
?>

<center>
    <form action="./example.php" method="post">
        <input type="text" placeholder="search text" name="search">
        <input type="submit" value="search">
    </form>
</center>

Check the config section in README file and files on GitHub: https://github.com/khaledalam/firebase-logger

Packagist: https://packagist.org/packages/khaledalam/firebase-logger

Categories
All

Amazon Job Hiring Related Email

Amazon-Jobs

Amazon Jobs Apps that help the user to check if some email relates to any AMAZONIAN hrs, recruiters, interviewees, interviewers, talents, candidates and so on..

  • – check hiring-related emails,
  • – get job post recruiter details,
  • – get more statistics about job posts,
  • – search jobs globally with more deep filters

Preview:




Mobile App:


Web App:
https://khaledalam.net/amazon

GitHub:



Screens: