Intercepting API calls of your iOS app

When you work with APIs, you rely on the vendors API documentation.
However, API documentation is often not up to date or might be missing the latest API changes.

In this blog, I will describe how to intercept API calls from an iOS app.

What you need to get started:

Let’s get started:

  1. Install and start Charles Proxy
  2. Configure proxy settings in Charles Proxy

    Charles Proxy – Settings
  3. Configure the proxy on your iPhone (Settings -> Wi-Fi -> Wi-Fi name -> Set HTTP PROXY to Manual

    iPhone Proxy Settings
    iPhone Proxy Settings
  4. Start recording in Charles Proxy

    Charles Proxy Start Recording
    Charles Proxy – Start Recording
  5. Start using your iOS app and see all HTTP & HTTPS calls being populated under Structure
    Charles Proxy - Results
    Charles Proxy – Results

    You can open up each result and take a look at most of the details including any responses.

    TIP: Depending on the number of apps on your iPhone, you might want to filter for a specific URL like in Charles Proxy’s recording settings. This will greatly reduce the number of intercepted calls.

Top 4 – ESXi one-liner scripts

bash-148836_960_720I have caught myself quiet a few times running a bunch of one-liner scripts on ESXi.
Whether I setup ESXi, troubleshoot something or just test a feature, one-liners can often simplify whatever task you’re trying to complete.

Below is the list of one-liner scripts, which I use at least once a week.

Read More

Corrupt Snapshot Causing View Composer Service Crash

Error during provisioning:Unexpected VC fault from View Composer

The above error might show up in Horizon View, if you try to use a corrupt snapshot for the deployment of new VMs.

How To Identify If  A Corrupt Snapshot Is The Cause?

  • Look at the Microsoft System Event Log on your View Composer
    • You should see something like this:

      The VMware View Composer service terminated unexpectedly. M It has done this 2 time(s).  The following corrective action will be taken in 60000 milliseconds: Restart the service.


  • Search for FATAL messages in the vmware-viewcomposer.log
    • The following message will indicate a corrupt snapshot

      2015-10-06 17:52:53,956 | WFE thread 9 | FATAL | ServiceCore.WorkflowEngine.WorkflowEngine – Unexpected exception occurred.Error reading single property ‘config.hardware.device’ from managed object: snapshot-15587


Read More

Ultimate Bash Guide For Beginners

bashEveryone who is new to scripting always doesn’t know where to start. There’s countless websites and blog posts out there with endless number of commands and bash guides. I don’t want to share all those super complex commands which are difficult to understand when you first start out with writing some scripts. Instead, I am providing a short bash guide for beginners. This post will cover the basics, some good manners and some more advanced commands.

One of the reasons why I started to write scripts in bash is because bash was just the language I knew due to Linux distros. However, I’m by no means an expert in writing scripts. If someone would ask me about my level of expertise in this area, I would rate myself with a “C”, maybe a C+.

Even though I am not an expert, I think it will be useful to share my experience and the commands which I have used most often. Below some general tips and commands which have helped me in the past and I still sue every day for some basic scripting.

General tips and tricks

Use clear and precise comments.
This will allow other users to easily read and understand your code.

User proper indention
Indention will make your code easier readable. If your code is easily readable, it will be even easier to maintain it in the future.

Let your script bail out if any command fails
For debugging of your script, you should use set -e at the beginning of your script.
Using set -e ensures that your script exists as soon as any of the lines is failing.

Every bash script has to start with it
The first line in every bash script has to be #!/bin/bash
This will tell your terminal which interpreter to run.

Common Commands

Declare a timestamp function
For all my scripts I declare a function which stores the current timestamp when it is called.
I mainly use the timestamp variable for logging of events.

The output will look like this:

Use $? to check the previous command
You can use $? to verify whether the previous commands returned 0 or 1.
0 = successful | 1 = failed

If the script was able to create the file it will return:

Read a file with comma separated values and act on it
When querying a database and saving the results as a CSV file, each results will be stored in a line and each value will be comma separated. Below is s simple script which scans a CSV file for the 4th value in every line and prints it, if it is not empty.

How To Backup osTicket?

A friend of mine is using osTicket for his small support team and was wondering how he could backup osTicket. I did some online search and expected to find thousands of threads and hundreds of scripts.

Lot’s of people suggested to use mysqldump and backup your webserver but I couldn’t find a quick an easy script, which would help my friend.

I create a basic bash script which you can add to a cronjob to make sure it will regularly backup your system.


 The following of the script needs to be modified with your settings:

The backup.log is very easy to ready and a successful backup will look like this:

How to restore from my backups?

  1. Untar backup file
    1. tar -zxvf backup_file.tar
  2. Restore your DB_file.dump
    1. mysql -u root -p[root_password] database_name < DB_file.dump
  3. Restore your ost-config.php
    1. cp ost-config.php /srv/www/htdocs/include/ (or to wherever osTicket is installed)

Refresh your browser and you should be able to see all your restored data.

If you have any feature requests or bugs, please do not hesitate yo reach out to me. My contact details are in the script header.