Skip to main content

Paratek AI Speech Generator

Today I focused on a popular a paranormal hunting application called ParaTek. It uses random AI status bars, and magnetic field readings to show any fluctuations. 

Dictionary Type:
    -> Hard coded word list. (View here)

Dictionary Source Used:
    -> Ovilus Word List. (https://www.digitaldowsing.com/word-list/)

Developed with:
    -> App Inventor. (https://appinventor.mit.edu/)

To keep this short, I'll refer to AppInventors main website, displaying examples of how you can use a list of words to be randomly selected from, then have it speak to you out loud. Here is the example: https://appinventor.mit.edu/explore/ai2/magic-8-ball. In this example tutorial, they demonstrate creating a "list" of words, and having it select random items from it and speak out the results to the users using a text to speech engine.

Now, to the actual code that is decompiled.

For the random "AI" status bars that are shown:

    public Object AICLOCKSPPED$Timer() {
        runtime.setThisForm();
        runtime.setAndCoerceProperty$Ex(Lit2979, Lit1410, runtime.callYailPrimitive(strings.string$Mnappend, LList.list3("AI  : CLK : ", runtime.callYailPrimitive(runtime.random$Mninteger, LList.list2(Lit3241, Lit3242), Lit3243, "random integer"), " %"), Lit3244, "join"), Lit1412);
        runtime.setAndCoerceProperty$Ex(Lit2980, Lit1410, runtime.callYailPrimitive(strings.string$Mnappend, LList.list3("AI 1 : ", runtime.callYailPrimitive(runtime.random$Mninteger, LList.list2(Lit3245, Lit3242), Lit3246, "random integer"), " %"), Lit3247, "join"), Lit1412);
        runtime.setAndCoerceProperty$Ex(Lit2981, Lit1410, runtime.callYailPrimitive(strings.string$Mnappend, LList.list3("AI 2 : ", runtime.callYailPrimitive(runtime.random$Mninteger, LList.list2(Lit3025, Lit3242), Lit3248, "random integer"), " %"), Lit3249, "join"), Lit1412);
        return runtime.setAndCoerceProperty$Ex(Lit2982, Lit1410, runtime.callYailPrimitive(strings.string$Mnappend, LList.list3("AI 3 : ", runtime.callYailPrimitive(runtime.random$Mninteger, LList.list2(Lit3241, Lit3242), Lit3250, "random integer"), " %"), Lit3251, "join"), Lit1412);
    }

Here we can clearly see that it is using AppInventors "Random Integer" command to randomly choose integers and display them as a percentage. No real usage of the phones hardware in terms of magnetic fields or any real progression at all.

Next, we look at the way the built in dictionaries are handled:

    static Object lambda50() {
        SimpleSymbol simpleSymbol = Lit4;
        ModuleMethod moduleMethod = runtime.yail$Mnlist$Mnpick$Mnrandom;
        ModuleMethod moduleMethod2 = runtime.make$Mnyail$Mnlist;
        Pair list1 = LList.list1(runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DADDY"), Lit1356, "downcase"));
        LList.chain1(LList.chain4(LList.chain4(LList.chain4(LList.chain4(LList.chain4(LList.chain4(LList.chain4(LList.chain4(LList.chain4(LList.chain4(list1, runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DAN"), Lit1357, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DARKNESS"), Lit1358, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DASH"), Lit1359, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DATE"), Lit1360, "downcase")), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DAVE"), Lit1361, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DAVID"), Lit1362, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DAWN"), Lit1363, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DAY"), Lit1364, "downcase")), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DEAD"), Lit1365, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DEAL"), Lit1366, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("STUDY"), Lit1367, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DEATH"), Lit1368, "downcase")), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DEBBIE"), Lit1369, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DEBRA"), Lit1370, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DECEIT"), Lit1371, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DECEMBER"), Lit1372, "downcase")), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DECIDED"), Lit1373, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DECOMPOSE"), Lit1374, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DEEP"), Lit1375, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DEMAND"), Lit1376, "downcase")), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DEMON"), Lit1377, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DENSITY"), Lit1378, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DEPLETE"), Lit1379, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DESCRIBE"), Lit1380, "downcase")), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DESERT"), Lit1381, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DESIGNATE"), Lit1382, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DESOLATE"), Lit1383, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DETAILS"), Lit1384, "downcase")), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DETERMINE"), Lit1385, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DEVELOPED"), Lit1386, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DEVICE"), Lit1387, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DEVIL"), Lit1388, "downcase")), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DIABLO"), Lit1389, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DICTION"), Lit1390, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DIED"), Lit1391, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DIFFERENT"), Lit1392, "downcase")), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DIFFICULT"), Lit1393, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DO NOT"), Lit1394, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DOUBT"), Lit1395, "downcase"), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DRIVE"), Lit1396, "downcase")), runtime.callYailPrimitive(runtime.string$Mnto$Mnlower$Mncase, LList.list1("DUG"), Lit1397, "downcase"));
        runtime.addGlobalVarToCurrentFormEnvironment(simpleSymbol, runtime.callYailPrimitive(moduleMethod, LList.list1(runtime.callYailPrimitive(moduleMethod2, list1, Lit1398, "make a list")), Lit1399, "pick random item"));
        return runtime.callComponentMethod(Lit28, Lit29, LList.list1(runtime.lookupGlobalVarInCurrentFormEnvironment(Lit4, runtime.$Stthe$Mnnull$Mnvalue$St)), Lit1400);
    }

This is one of many hard coded entries. Now you'll notice it's using a list to connect all the word entries together. The part we want to focus on here is the fact that it's using, once again, the "pick random item" function. This is shown in the examples on AppInventors website posted above. 

I have seen no use of the sensors in your phone, other than the graph it generates to give you a false sense of "how it's actually working.".

Conclusion: 10/10 FAKE.

Decompiled Source: HERE.

Comments

Popular Posts

ITC Paralus

Today I checked out  ITC Paralus . Not much to say here as this is just a different copy of ParaTek. It's actually created by ParaTek, as seen in the source here . I did update the wordlist, as it's slightly different, but barely. UPDATE: Looks like they deleted this app from the play store. Unsure as to why, but either way it's no longer a valid link.  Dictionary Type:     -> Hard coded word list. ( View here ) Dictionary Source Used:     -> Ovilus Word List. ( https://www.digitaldowsing.com/word-list/) Developed with:     -> App Inventor. ( https://appinventor.mit.edu/ ) Conclusion: 10/10 FAKE. Decompiled Source: HERE .