x
This website is using cookies. We use cookies to ensure that we give you the best experience on our website. More info. That's Fine
HPC:Factor Logo 
 
Latest Forum Activity

Conduits Pocket Browser license?

SopaXorzTaker Page Icon Posted 2017-08-20 4:21 PM
#
Avatar image of SopaXorzTaker
H/PC Newbie

Posts:
18
Location:
Israel
Status:
Since there's no way to purchase this program now and Conduits don't reply to any emails I've sent them, does anyone have a valid license that I can use (if legal)?

Seems like their website hasn't updated since 2012, so I highly doubt they support any of their software now.
 Top of the page
Rich Hawley Page Icon Posted 2017-08-21 12:47 AM
#
Avatar image of Rich Hawley
Global Moderator
H/PC Guru

Posts:
7,061
Location:
USA
Status:
I don't, but I have to wonder why? It's incomplete and terrible software by any standard today...and any version of IE is far better.
 Top of the page
SopaXorzTaker Page Icon Posted 2017-08-23 6:23 PM
#
Avatar image of SopaXorzTaker
H/PC Newbie

Posts:
18
Location:
Israel
Status:
Quote
Rich Hawley - 2017-08-21 12:47 AM

I don't, but I have to wonder why? It's incomplete and terrible software by any standard today...and any version of IE is far better.


Because it works better than the crappy Pocket IE 3.0.
 Top of the page
Rich Hawley Page Icon Posted 2017-08-23 8:06 PM
#
Avatar image of Rich Hawley
Global Moderator
H/PC Guru

Posts:
7,061
Location:
USA
Status:
Okay...that's different then...
 Top of the page
SopaXorzTaker Page Icon Posted 2021-08-21 4:08 PM
#
Avatar image of SopaXorzTaker
H/PC Newbie

Posts:
18
Location:
Israel
Status:
After getting my 680 somewhat operational again, I remembered about this thread, decompiled the MIPS (because the SuperH decompiler is quite lacking right now) binary of PocketBrowser 1.6 in Ghidra and was able to develop a keygen (in the form of a Python script).
Posting it here because PocketBrowser is effectively abandonware...

 
# Rules: the key is 20 digits long. 
 
# key[14] should be 2. 
# Another branch is activated when it's 1, but the registration number is not derived by that method. 
 
# The last digit of the key is chosen so that the sum of digits is 0 mod 10. 
# weirdHash(registrationNumber, reorderAndInvert(key[0:5]) + key[14:19], 9) 
#  should be equal to key[5:14] 
 
# Another rule applies. 
# int(key[15:17]) < 17 and int(key[17:19]) > 15 
 
def reorderAndInvert(digits): 
    assert len(digits) == 5 
    return "".join([chr(0x69 - ord(x)) for x in [digits[1], digits[0], digits[2], digits[3], digits[4]]]) 
 
def weirdHash(s1, s2, n): 
    def signedfix(x): 
        if x >= 2**31: 
            x = -(2**32 - x) 
 
        return x 
 
    total = 0 
 
    # Swap the strings if necessary... 
    if len(s1) < len(s2): 
        s1, s2 = s2, s1 
 
    for i in range(len(s1) - len(s2) + 1): 
        for j in range(len(s2)): 
            x = ord(s1[i + j]) * 0x5c47 * ord(s2[j]) 
            total = signedfix((total + x) & 0xffffffff) 
 
        total = signedfix((total * 0xe9) & 0xffffffff) 
 
    total = abs(total) % 10**n 
    return ("%%0%dd" % n) % total 
 
 
def testKey(registrationNumber, key): 
    assert len(key) == 20 
    if not key[14] == "2": 
        return False 
    if not sum(int(x) for x in key) % 10 == 0: 
        return False 
 
    # Digit condition. 
    if not (int(key[15:17]) < 17 and int(key[17:19]) > 15): 
        return False 
 
    return weirdHash(registrationNumber, reorderAndInvert(key[0:5]) + key[14:19], 9) == key[5:14] 
 
def makeKey(registrationNumber): 
    template = list("0" * 19) 
 
    # This should be 2. 
    template[14] = "2" 
 
    # This group should be less than 17. 
    template[15] = "1" 
    template[16] = "6" 
 
    # This group should be greater than 15. 
    template[17] = "1" 
    template[18] = "6" 
    template = "".join(template) 
 
    middle = weirdHash(registrationNumber, reorderAndInvert(template[0:5]) + template[14:19], 9) 
    key = template[0:5] + middle + template[14:19] 
    checkDigit = -sum(int(x) for x in key) % 10 
    key += str(checkDigit) 
    return key 
 
regNum = input("Enter a 5-digit registration number: ") 
if not len(regNum) == 5: 
    print("Error, the registration number should be 5 digits long") 
    exit(1) 
 
k = makeKey(regNum) 
assert testKey(regNum, k), "Verification error!" 
print("Key: ", k) 
 


Edited by SopaXorzTaker 2021-08-21 4:10 PM
 Top of the page
hpc:factor« View previous thread · Handheld PC Professional · View next thread »
Jump to forum:
Seconds to generate: 0.125 - Cached queries : 45 - Executed queries : 26
Server Time now is: Thursday, 23 September 2021 - 6:35