In today’s fast-paced world, staying fit and healthy is more important than ever. With the Runtastic Promo Code for Windows Phone users, getting fit has never been more affordable. This innovative app offers a range of features and tools to help you achieve your fitness goals, from tracking your workouts to providing expert advice and support. Whether you’re a seasoned athlete or just starting out on your fitness journey, Runtastic has everything you need to get fit for less. So why wait? Download the app today and start living your best life!

What is Runtastic?

Runtastic is a fitness app that helps users track their workouts, set goals, and stay motivated to reach their fitness goals.

How can Windows Phone users benefit from Runtastic promo codes?

Windows Phone users can use Runtastic promo codes to get discounts on premium features, such as personalized training plans and advanced statistics.

Are there any limitations to using Runtastic on Windows Phone?

No, Runtastic is fully functional on Windows Phone devices and offers the same features as the app on other platforms.

Can Runtastic help me achieve my fitness goals?

Yes, Runtastic provides users with personalized training plans and tracks progress to help them reach their fitness goals.

Is Runtastic easy to use?

Yes, Runtastic has a user-friendly interface that makes it easy for anyone to track their workouts and stay motivated.

2. The app provides personalized workout plans, tracks your progress, and offers motivational tips to help you achieve your fitness goals.

If you want to create a backup of your data or switch to another application, you have to export your activities one by one using the web interface, which is quite a slow process. Because I wanted to have backup of my data, and also automate the backup process, I decided to reverse the API that Runtastic application is using, and to write a nice little program to archive all of my activities. To do such a thing for mobile applications, you have to install HTTP proxy software on your computer, and configure the phone to connect to the computer instead of directly connecting to the internet. After configuring the device to connect to Burp, we can now try to sync the activities. When you swipe the screen to do that, application starts making bunch of HTTP requests, but only two of them are to Runtastic servers. We can see that request number 12 is the one that asks the server for the latest activities. We will log out from the application and monitor outgoing requests to see how the application is logging in. If the credentials are correct, the server will respond with the user ID and access token that we need. Now we are going to try to replicate the request without using the application, to see if we can repeat the login process. After playing for a few minutes with the Burp Suite, I discovered one really nice feature called Repeater. In the HTTP history tab, you can right-click on any request and send it to Repeater, from which you can resend the request as many times as you want, with all its associated headers and query parameters. You can also play with the request in different ways. If we try to change the date or the app key, but use the same auth token, server will reject our request. That probably means auth token calculation is somehow combining at least the date and the app key. App key always stays the same at. If we take a closer look at auth token, we can see that it contains 40 bytes of hex data, which is 20 bytes of actual data. The usual way of combining multiple values into fixed size output is by using a hash function, and 20 bytes is the output size of SHA1 function. Hash functions can be called directly, or as a part of some MAC construction that takes secret key as an additional parameter. Armed with this knowledge, I tried to do a few obvious things, like concatenating the date and the app key and hashing them, calling the HMAC with app key as secret key and date as data to be authenticated, etc. Since I am most experienced with. My next attempt was to see if Windows Store on desktop has the Runtastic application, because Windows Store applications are also. NET applications. After searching for Runtastic, I got the following results. There was no Runtastic running application, but I assumed that all of them are probably using the same authentication process, so I installed Runtastic Six Pack. NET decompiler. What was happening there? It turned out that applications targeting Windows 10 are compiled to native code using. Now I had to find out if any of the remaining Runtastic applications in the list could be decompiled. This applications had a lot of dlls, but only few of them looked promising. Among them were. I loaded them all into dotPeek and started looking for code that is generating the auth token. I started with the Runtastic. Common and Runtastic. Util namespace with the following method. All that was left to do was to find the secret value, and it was somewhere in NetworkSettings class. Private constructor for NetworkSettings class looks like this. I started by trying to retrieve the list of all of my activities from the server, but this time without the Runtastic application. After doing that with the values for the PushUps app, server said that I was still unauthorized. That meant server will give me list of running activities only if I log in from the running application. It probably does that by comparing the app key with the list of all known app keys for the running applications. Now I had a problem, because there was no. NET version of running application that I could decompile, which left me with only one more option – to try to decompile Runtastic application for Android. Because I already knew at this moment how to generate the auth token using app key, app secret and date, this step was not that complicated. I only needed to find app key and app secret for the Android application. After searching Google on how to decompile Android apps, I found Apktool. No Android phone was necessary to extract the application file, because all applications are mirrored on bunch of sites on the internet. I found Runtastic 6. After calling apktool with the application file, I got hundreds of. With that, the sync process was finally working. After retrieving the list of activities, application is making a new request for each one of them to retrieve the GPS data. At this moment, I could have tried to decode that data, but I thought that there must be and easier way to do what I needed.