Hi, When setting up an Android device with Fiddler on the host machine, you need to set up proxy settings on Android Wi-Fi giving the IP address shown on Fiddler (Online) as host and port as 8888. After that, you need to visit http://ipv4.fiddler:8888 on your browser to download the Fiddler Root Certificate. However, when visiting the http://ipv4.fiddler:8888 on the Android browser, you might get ERR_CONNECTION_ TIMED_OUT. This could be due to many reasons.
Reasons and Solutions:
- If you are connecting your Android with Fiddler for the first time recheck the settings on Fiddler. Goto -> Tools -> Options -> Connection -> Tick “Allow remote computers to connect”. To allow HTTPS decryption, ensure you have ticked “Decrypt HTTPS traffic” under Options-> HTTPS, and then install the root certificate.
- If you are trying to reconnect you Android with Fiddler which was working with a different host, and now getting ERR_CONNECTION_ TIMED_OUT on the Android browser,
- You can first try removing current certificates on the Fiddler host machine and try reinstalling the certificates..
- First, Goto -> Tools -> Options -> HTTPS-> Untick “Decrypt HTTPS traffic”.
- Then, select ‘Actions’ on the same dialog -> select “Remove interception certificates”
- Then follow the normal procedure to enable HTTPS traffic decryption
- The ultimate try is to uninstall and reinstall the Fiddler from the beginning on your host machine. After that, your Android browser can visit http://ipv4.fiddler:8888 and download a new Fiddler Root Certificate.
Even after successfully installing the Fiddler root certificate on your Android device, if you are not able to capture the HTTTPS traffic. It might be that you are using an older fiddler root certificate or a certificate you installed when working with a different Fiddle r host machine. Hence, remove the current installed certificate from your android device. After that, try reconnecting with the Fiddler host to reinstall the new root certificate.
rm < current root certificate e.g. e5c3944b.0>
In the worst case It may be due to certificate pinning used in the application you are trying to test. In that case, you may have to use an instrumentation tool like Xposed to bypass such conditions.
Cheers ! 🙂
Hi, I have tried to install mongod from the apt-get install on my Kali Linux machine. However, it couldn’t find a package with that name. Hence, I decided to install mongod binaries specified at in their documentation as follows.
- Donwload mongod package and extract the content
- Add the location of mongod in the PATH variable
Goto home directory -> Ctrl+H -> Find the .bashrc file -> open and paste following-> Save
- Create data/db directory. (Since I use the root user not needed to set permissions)
mkdir -p /data/db
- Now open terminal and use mongod to start the server
- Use mongo command to use the database
Cheers ! 🙂
Hi, In this post I explain how to create a GUI application for Python using Qt. Qt is a cross-platform software development framework. It provides PySide to support creating GUI applications for Python. There is also PyQt another python package supporting the same functionality. This post explains the differences between the two packages. They are basically alternatives. So, in this post I’m using PySide2 the latest version of PySide supporting the Qt 5.14 version. In brief, you can first generate the layout using QtCreator tool. Then export that into your Python application for adding functionalities to the UI components.
Step 1: Install QtCreator/QtDesigner
There are two version of the QtCreator is available. You can use the open source version.
sudo apt-get install build-essential libgl1-mesa-dev
- Download the installer: from https://www.qt.io/offline-installers. I installed qt-opensource-linux-x64-5.14.1.run.
- Installing: The installer can be directly executed on linux machine (I’m using Kali Linux 2020) when provide access to execute. It will prompt to create a user account through the installer. Then verify your email and continue. Once installed the application can be find through the application searching as qt.
Step 2: Create an Qt Application using the QtCreator
- Select Qt Widget application -> Provide the name and location -> select qtmake as the build system -> Next, you can edit class name information -> Next, select Kit Selection as ‘Desktop’ -> Finish
- When you install for the first time there won’t be any kits available.
Hence, you need to do the following steps first.
sudo apt-get install qt5-default
- At the QtCreator Select Tools -> Options -> at Kits goto Qt Versions -> Maual -> Add -> give qmake file of qt5 location (usr/lib/x86_64-linux-gnu/qt5/bin/qmake)
- Then at the Kits window –> Select Desktop -> Update the Qt Version to the added Qt version.
- Now, you can create the Qt Widget application as described above.
- When you created the Qt application you can use the ‘Design’ View to add the layouts and the components as desired.
Step 3: Export your designed mainWindow.ui as mainWindow.py
The mainWindow.ui is an xml file.
You can covert it to a python file as folllows.
pip3 install PySide2
pyside2-uic mainwindow.ui -o mainWindow.py
The generated mainWindow.py:
Step 4: Create Python GUI Application
Now, you can create a python project including the mainWindow.py, and another python file app.py to refer the components in the mainWindow.py and provide functionalities.
you import the Ui_mainWindow from the ainWindow.py in app.py
from PySide2.QtGui import *
from PySide2.QtCore import *
from PySide2.QtWidgets import *
from path.to.mainWindow import Ui_mainWindow
class MainWindow(QMainWindow, Ui_mainWindow):
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWin = MainWindow()
ret = app.exec_()
sys.exit( ret )
You can refer to following tutorials for more information
Cheers ! 🙂
Hi, Today I’m introducing the Peekaboo Tracer available at GitHub. You can use it to obtain the sequence of instructions executed while running a program or function as a trace. A trace in general, is a sequence of events happened when performing a task. So, if any errors were occurred while performing the task, the trace can be analyzed to find the problem or the cause. Hence, the objective of Peekaboo is to help the users generate the traces.
Challenges in Tracing
The typical challenges in generating and managing a trace:
- Length of the trace is tool long: If a single trace file includes all the attributes of a instruction, then the file size becomes too big.
- Customized requirements: which attributes of the instructions are included in the trace (An instruction includes an instruction address, opcode, register value, memory value, memory address): If a single trace includes selected attributes for each instruction. Then reading the trace becomes difficult.
Solution by Peekaboo
In addressing the above challenges, Peekaboo introduces modularization. In precise, it generates a file for each attribute in a instruction such that each attribute file includes a sequence of attributes corresponding to the sequence of instructions executed. Hence, depending on the interest of the user, he can generates the trace including selected attributes.
Set up Peekaboo
Peekaboo is built on top of DynamoRIO instrumentation tool. Hence, we required to download the latest build of DynamoRIO to test the Peekaboo.
Next, following the guide in the Peekaboo documentation..
DynamoRIO_DIR=/path/to/DynamoRIO/DynamoRIO-Linux-7.91.18319 cmake ..
Generate the trace for executing ls command as follows.
path/to/DynamoRIO/DynamoRIO-Linux-7.91.18319/bin64/drrun -c /path/to/peekaboo/peekaboo_dr/build/libpeekaboo_dr.so -- ls
Results: Generated Trace Files
Cheers ! 🙂
Hi, To Connect With your School or Work Place Wi-Fi, you may use following settings in the “Advanced Network Configuration”.
Cheers ! 🙂
Hi, today I give a step by step guide to use mongoDB Atles with a python program. I decided to use the cloud version since it’s easy and as well as free. And most importantly I got ‘Unable to locate package mongodb-org/mongo’ error while trying to install on Kali 2020.1. If you still want to install mongodb on host please refer to this.
Step 1: Create an Account of MongoDB Atlas
Visit https://www.mongodb.com/download-center to create a free account.
Step 2: Next Create a New Cluster
You have to give the IP address that can access the cluster. It could be your device or can allow for anyone.
- Find IP of your device: On browser visit http://httpbin.org/ip
- The IP for anyone to access : 0.0.0.0/0 (Have security issues)
Next, give give the name and password for a DB user. These credentials later required to connect with the cluster from the python program.
Step 3. Connect the DB
Since I’m using the MongoDB within a Python program, I select as follows.
“Connect Your Application” -> Choose “Python” driver and version (3.6 or later) used in the program
Next, copy the generated String and replace the <password> with the given password when generating the DB user.
Step 4. Generate a Database and a Collection
Select ‘Collection’ –> It will prompt to create the database. Provide a name from Database and a Collection. –> Create
Step 5: Update Python Program
You should install the pymongo driver to use with the program.
from pymongo import MongoClient
client = MongoClient(<Past the generated String >)db = client.get_database('service')collection = db.get_collection('authdetails')