Understanding the RH/XV system

nix9

Inactive User
Joined
Aug 21, 2001
Messages
676
Reaction score
6
Location
UK
NOTE this is a copyrighted explanantion - please do not post copies (either in part or in whole) on other forums. Otherwise you will spoil it for all!!!


Now follows some basic info on how the RH/XV system works, put here for educational value, and worked out through observation and reading of unencrypted files.

XV/RH are broadcast unencrypted and use UK digital teletext (MHEG) to mask the services so that a PIN is required to view. With the right equipment, usually a PC DTT card, it is possible to read the MHEG stream and extract the numbers used to create a Viewer ID from a PIN, and thus be able to recreate a PIN for any Viewer ID (the number on the screen)

This post is NOT about how to obtain the files, nor how to enter any numbers in any "keygen" or other program

----

How the system works. The MHG tells the box to create a 4 digit PIN (using a RND function), and then using numbers in the file converts this to another 4-digit code which is the middle of the viewerID, its these Active Digits I will show you how to use to recreate a PIN. The 7 digit ViewerID is simply two date digits (a week number 0..3 and day number 0..6) followed by the 4 active digits, and finally a checksum.

The values used are from the vcg.mhg file and are labelled "internal reference 21" to "internal reference 31" (I'll call them ref21 .. ref31 for ease.

ref21 & ref 22 contain the first two digits of the ViewerID (so called month and week digits)

ref23 contains the algorithm instruction. Prior to June 1st this has always been a 3 digit number comprising of 1-3 e.g. 211, 321, or 133, but recently we have seen 4-digit numbers starting (e.g. 1231). This relates to the following three (or four) internal references. e.g. ref24, ref25, ref26. The remaing internal references currentlly have no effect.

Now to the meaning of numbers in ref23

A "1" states that it will be a 9 digit code where the numbers 0123456789 appear but once. This will be referred to a as a Look-up Table (or LUT) . There are 10 numbers in 1234567890, and so the LUT is completed by adding the missing digit to the end (making a 10-digit LUT)

A "2" states that it will be a 4 digit code where the numbers 1234 each appear only once. This describes the PIN Order when referring to the Active Digits of the VID.

A "3" states that it will be a 4 digit code that is used to manipulate (shift to the right) the LUT along.


Each number is done in turn and you can easily work it out on paper - thats where the fun is and I urge you to do it yourselves.

As an example take 1st June's codes
23 = 123
24 = 674508923
25 = 1243
26 = 1795

First the "1" (and use ref24)

We create a LUT by reordering ref24 into 01234... order (we do both rows to keep it the same e.g. look-up 5 then 4 on both sides - you'll get 3 then 2)

0123456789 => 4978230156
6745089231 => 0123456789

Next the "2" (and use ref25)

A "2" in ref23 dictates that a pin rotate is to be used. So if you have a VID of 0112341 instead of 1234 relating directly to 1234 of the PIN the digits need to be swopped, so the "2" may relate to the first, 2nd, 3rd or 4th pin digit. The number in the file vcg.mhg is not the pin order, to get that you need to do a reverse look-up

For example 10th May ref23 was 211, and ref24 was 4132, so we use this to find the pin order.
4132 => 1 2 3 4
1234 => 2 4 3 1

(SAME process as for LUT!!)

So for our example this is 1243

1243 => 1 2 3 4
1234 => 1 2 4 3

So ion this case it ends up the same number! Usually not the case


Next the "3" (and ref26)

This is a four digiti number saying how to shift right the LUT for each pin digit

4978230156 (shift 1)
4978230156 (shift 7)
4978230156 (shift 9)
4978230156 (shift 5)

Don't forget the pin order 1243 above. May as well do this now (so 1795 becomes 1759 - AND the numbers we look-up at the end is 1243)

0123456789 ======== 0123456789
============ = =============
4978230156 (shift 1) => 6497823015
4978230156 (shift 7) => 8230156497
4978230156 (shift 5) => 3015649782
4978230156 (shift 9) => 9782301564


So what of our viewerID 0012340?

read 1 off the 1st row = 4
read 2 off the 2nd row = 3
read 4 off the 3rd row = 6
read 3 off the 4th row = 2

Can you read off 0024680? Should be 9181

Do you understand?

Create tables from
23 = 123
24 = 210459876
25 = 1324
26 = 2074

and check
0112341 = 5802
0124681 = 2533

++++++++++++++++++++++++++++++++++++++
PLEASE DONT POST HERE ASKING FOR SOFTWARE OR SOLUTIONS TO ANY ONE CURRENT VIEWERID
++++++++++++++++++++++++++++++++++++++

Further examples are given in the posts below
 
Thanks for the info!

I've dumped the vcg.mhg file but having trouble finding something to read it... read it was encoded in ANS-1 format and you need to convert it to XML?!

A kick in the right direction would be appreciated ;)
 
SilentNinja said:
Thanks for the info!

I've dumped the vcg.mhg file but having trouble finding something to read it... read it was encoded in ANS-1 format and you need to convert it to XML?!

A kick in the right direction would be appreciated ;)

Code:
You don't have permission to view the code content. Log in or register now.

There are others but I simply use the online one there :)
 
Ok thought I would do this the old fashioned way and use a pen and paper you no work the brain cells a bit
but not getting very far anyone no what I am doing wrong this is my table so far would appreciate any help
as I keep getting the wrong pin.

24 INTEGER>530917428
25 INTEGER>1342
26 INTEGER>3274


LUT
0123456789
5309174286
>2471609583<

2471609583 (move 3) => 5832471609
2471609583 (move 7) => 1609583247
2471609583 (move 4) => 9583247160
2471609583 (move 2) => 8324716095
 
25 INTEGER>1342 also applies to order read ViewerID

say using xx3456x viewer ID

read off 3564 (reordered)
3 from first line = 2
5 from 2nd line = 8
6 from 3rd line = 7
4 from 4th line = 7

So xx3456x has Pin 2877
 
Thanks for the reply m8 this is the viewer id I got today
0278186 I did as you siad in your post still got wrong pin so I uesd the key gen and got pin 6696 this was the right pin what am I doing wrong any idea.
 
hi nix9
Ive spent hours following and working out how to get the pin using my brain and some paper, but i cant seem to get it right,
Ive posted this message after 11pm, so that u know that im not ask for you to give me todays code.
But using the viewer id that is now void could u or anybody give me advice.
viewer id 0236843
and using todays pin, look up and hash table
24) 530917428
25) 1342
26) 3274

0123456789-2471609583
5309174286-0123456789
Then i rearranged 3274 to 3742

2471609583

3)5832471609
7)1609583247
4)9583247160
2)8324716095

viewer id 3684 becomes 3846
1234 1342
and using the above table i came up with 2426, but this was wrong,
i followed each step and tried your example codes and got those right but
i tried 8 different id numbers and not a single one was right.
Any ideas ?

thanks
 
Right I missed explanation off of above (doing it all from memory rather than referring to my notes :) )

A "2" in ref23 dictates that a pin rotate is to be used. So if you have a VID of 0112341 instead of 1234 relating directly to 1234 of the PIN the digits need to be swopped, so the "2" may relate to the first, 2nd, 3rd or 4th pin digit. The number in the file vcg.mhg is not the pin order, to get that you need to do a reverse look-up

For example 10th May ref23 was 211, and ref24 was 4132, so we use this to find the pin order.
4132 => 1 2 3 4
1234 => 2 4 3 1

(SAME process as for LUT!!)

so 2431 is our pin order i.e. 0123455 we use 2 for the 4th pin, 3 for the 1st pin digit, 4 for the 3rd and 5 for the 4th.

For my iexample in the first post I'd automatically done it but wasn't explained
1243 => 1 2 3 4
1234 => 1 2 4 3

So doing todays, now expired, codes

23 INTEGER>123
24 INTEGER>530917428
25 INTEGER>1342
26 INTEGER>3274

Apply the "1"

LUT
0123456789 => 2471609583
5309174286 => 0123456789

Apply the 2 (25 integer)

1342=> 1234
1234=> 1423
&
Apply the "3" (26 integer)

i.e. 3274 => 3427

0123456789 ++++++ 0123456789
2471609583 shift 3 => 5832471609
2471609583 shift 4 => 9583247160
2471609583 shift 2 => 8324716095
2471609583 shift 7 => 1609583247

0278186 = 7818 pin rotate to 7881
Look up as 6696

ViewerID 0236843
3684 pin rotate to 3468
Look up as 2264

Hope that clears up the confusion
 
thanks for the extra info , ill try 2morrow and let you know if im sucessful.
cheers
Darren
 
nix9 thanks for the extra info will try this today and let you know how I get on.
 
A "2" in ref23 dictates that a pin rotate is to be used. So if you have a VID of 0112341 instead of 1234 relating directly to 1234 of the PIN the digits need to be swopped, so the "2" may relate to the first, 2nd, 3rd or 4th pin digit. The number in the file vcg.mhg is not the pin order, to get that you need to do a reverse look-up

For example 10th May ref23 was 211, and ref24 was 4132, so we use this to find the pin order.
4132 => 1 2 3 4
1234 => 2 4 3 1

(SAME process as for LUT!!)

so 2431 is our pin order i.e. 0123455 we use 2 for the 4th pin, 3 for the 1st pin digit, 4 for the 3rd and 5 for the 4th.

A great tutorial... can now calculate it with my eyes closed :D You might want to add the extra step (^^) into your original post for completness!

Thanks for the great post!
 
SilentNinja said:
A great tutorial... can now calculate it with my eyes closed :D You might want to add the extra step (^^) into your original post for completness!

Thanks for the great post!

Glad its appreciated. It is a simple system they are using, and whilst a keygen makes generating a pin easy, not as much fun as generating it yourself.
 
Your right there m8 got it going works great thanks again joe :Cheers:
 
Hi again , tried it today and it worked, i got a bit confused to start off with but i was making a simple mistake each time.
its been years since my brain worked this hard.
Cheers
Darren
 
very nice tutorial :)

i have stickied this for you, must have taken you a while to put it all together im sure all members are very greatful pal ;)

Regards
Mickie D
 
This is my first posting. I have been looking at the information on the codes for Xtraview
And have downloaded the pin gen program and the MS program required to run it. And it worked.(Thank you).
As someone said on a post shame about the programs.

I am now trying to understand the manual system used to generate a PIN.
I have read all the postings and one of the lights at home is on but the rest are just not plugged in. I shall stick with it and hope to understand it eventually.
 
Its really just a case of understanding each of the 3 methods ("1", "2", & "3") and working through a couple of examples.

Whilst the Keygen is good for ease of use on a day to day basis, it is good to simply have the ability to take the raw numbers and then solve the pin from the Viewer ID your box displays
 
REF23 problem

First of all thanks for your excellent tutorial.
This is my first post and I rather like working out the mathematics to get the answer rather than using a computer programme.
When the ref23=123 I had no problem in finding the correct solution.
Now when the Ref=312, I cannot get the correct solution.
Is it possible to explain with a worked solution .
Many thanks.
 
Back
Top