The Rigol DS1054Z is a very popular, entry level 4-channel Digital Storage Oscilloscope. It features a real-time sample rate of up to 1 GSa/s and a bandwidth of 50 MHz. The particularly large TFT color displays are very easy to read. Thanks to an intelligent system for displaying or masking information, the largest possible area is always available for displaying signals. The signal curves, the FFT display, and other functions can be shown simultaneously on the display.
Canoma 1.03D Serial Number Keygen for All Versions Find Serial Number notice: Canoma serial number, Canoma all version keygen, Canoma activation key, crack - may give false results or no results in search terms.
What many people might not know however is that it shares much of the same hardware as the more powerful DS1074Z and DS1104Z (the 75 MHz & 100 MHz variants). The primary difference between the scopes is the installed or upgraded software features which unlock the higher bandwidth and many software options such as I2C, Serial Decoding, Advanced Triggering, Memory Options and etc.
If you are a frequenter of the EEVBlog Forum, you will no doubt have come across the multitude of posts talking about hacking the software features to unlock all of the options of the most expensive counterparts. Since all of these options are just software upgrades using a generated key, someone has already hacked the Rigol's installation.
This is where the Riglol key generation utility comes in. You can visit the following website http://www.gotroot.ca/rigol/riglol/ in order to generate your own software upgrade key. Here are the steps to Hack and Upgrade your Rigol DS1054Z Digital Oscilloscope.
** rigol keygen / cybernet & the-eevblog-users
** to compile this you need MIRACL from [url]https://github.com/CertiVox/MIRACL[/url]
** download the master.zip into a new folder and run 'unzip -j -aa -L master.zip'
** then run 'bash linux' to build the miracle.a library
** BUILD WITH:
** gcc riglol.c -I../MIRACL ../MIRACL/miracl.a -o riglol
** adapt -I and path to miracl.a to your environment
** more info: http://www.eevblog.com/forum/testgear/sniffing-the-rigol's-internal-i2c-bus/
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
char DP832_private_key[]='5C393C30FACCF4';
char DSA815_private_key[]='80444DFECE903E';
char prime1[]='AEBF94CEE3E707';
char curve_a[]='2982';
char point1[]='7A3E808599A525';
/*
** take serial and options make sha1 hash out of it
staticvoid hashing(char*opt_str, big hash){
char h[20];
sha sh;
p = opt_str;
while(*p){
p++;
bytes_to_big(20, h, hash);
** sign the secret message (serial + opts) with the private key
void ecssign(char*serial,char*options,char*privk,char*lic1,char*lic2){
int k_offset =0;// optionally change ecssign starting offset (changes lic1; makes different licenses)
shs_init(&sha1);
char*ptr = serial;
ptr = options;
shs_hash(&sha1, h);
bytes_to_big(20, h, hash);
big a = mirvar(0);
big b = mirvar(0);
big p = mirvar(0);
big q = mirvar(0);
big Gx = mirvar(0);
big Gy = mirvar(0);
big d = mirvar(0);
big k = mirvar(0);
big s = mirvar(0);
big zero = mirvar(0);
big f1 = mirvar(17);
big f3 = mirvar(905461);
epoint *kG = epoint_init();
epoint_set(Gx, Gy,0, G);
for(;;){
if(divisible(k, f1)|| divisible(k, f2)|| divisible(k, f3)|| divisible(k, f4))
epoint_get(kG, r, r);
continue;
xgcd(k, q, k1, k1, k1);
mad(s, k1, k1, q, q, s);
if(!divisible(s, f1)&&!divisible(s, f2)&&!divisible(s, f3)&&!divisible(s, f4))
}
cotstr(r, lic1);
}
/*
*/
char*newstr,*p;
while((*p++=toupper(*p)));
}
/*
*/
int i;
for(i =strlen(str); i >=0; i--){
}
str[0]=*c;
}
/*
** convert hex-ascii-string to rigol license format
void map_hex_to_rigol(char*io){
int i =0;
'A','B','C','D','E','F','G','H',
'S','T','U','V','W','X','Y','Z',
};
/* hex2dez */
if(io[i]>='0'&& io[i]<='9'){
}elseif(io[i]>='A'&& io[i]<='F'){
}elseif(io[i]>='a'&& io[i]<='f'){
}
i++;
io[i]= map[b &0x1F];
b >>=5;
}
void show_help(char*cmd){
printf(' <sn> serial number of device (D............)n');
printf(' <opts> device options, 4 characters, see belown');
printf('n');
printf(' first character: D = official, V = trialn');
printf(' third character: A = DS2000, H = DS4000n');
printf(' last character : your options, use the following table to generate for DS2000:n');
printf(' --------- A B C D E F G H J K L M N P Q R S T U V W X Y Z 2 3 4 5 6 7 8 9n');
printf(' 100MHz ' ' ' ' ' ' ' ' * * * * * * * * ' ' ' ' ' ' ' ' * * * * * * * *n');
printf(' 200MHz ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' * * * * * * * * * * * * * * * *n');
printf(' Memory56M ' ' ' ' * * * * ' ' ' ' * * * * ' ' ' ' * * * * ' ' ' ' * * * *n');
printf(' Decode ' ' * * ' ' * * ' ' * * ' ' * * ' ' * * ' ' * * ' ' * * ' ' * *n');
printf(' Triggers ' * ' * ' * ' * ' * ' * ' * ' * ' * ' * ' * ' * ' * ' * ' * ' *n');
printf(' For DS4000, try DSH9, VSH9 to enable all options.n');
printf('DP832 device options:n');
printf(' first character: M = official, 5 = trialn');
printf(' MWTB - Accuracyn');
printf(' MWTE - Analyzer and Monitorn');
printf('DSA815 device options:n');
printf(' first character: A = official, S = trialn');
printf(' AAAC - adv measurement kitn');
printf(' AAAE - EMI/Quasi Peakn');
printf('n');
printf('MAKE SURE YOUR FIRMWARE IS UP TO DATE BEFORE APPLYING ANY KEYSn');
** the world ends here
int main(int argc,char*argv[0]){
char*chunk,*temp,*final;
char*serial;
if(!((argc 3|| argc 4))){
exit(-1);
serial = strtoupper((char*)argv[1]);
if(argc 4) priv_key =(char*)argv[3];
elseif(!strncmp(serial,'DS2',3)) priv_key = DS2000_private_key;
elseif(!strncmp(serial,'DS4',3)) priv_key = DS2000_private_key;
elseif(!strncmp(serial,'DS6',3)) priv_key = DS2000_private_key;
elseif(!strncmp(serial,'DSA',3)) priv_key = DSA815_private_key;
elseif(!strncmp(serial,'DP8',3)) priv_key = DP832_private_key;
show_help(argv[0]);
printf('nERROR: UNKNOW DEVICE WITHOUT PRIVATKEYn');
}
strtoupper(priv_key);
show_help(argv[0]);
exit(-1);
if(strlen(serial)<13){
printf('nERROR: INVALID SERIAL LENGTHn');
}
show_help(argv[0]);
exit(-1);
#ifdef DEBUG
printf('serial: %sn', serial);
#endif
/* sign the message */
lic2_code =calloc(64,1);
ecssign(serial, options, priv_key, lic1_code, lic2_code);
/* fix missing zeroes */
prepend('0', lic1_code);
while(strlen(lic2_code)<14){
}
printf('lic1-code: %sn', lic1_code);
#endif
/* combine lic1 and lic2 */
temp =calloc(128,1);
final =calloc(128,1);
strcat(lic_all,'0');
strcat(lic_all,'0');
printf('target-code: %sn', lic_all);
while(i <strlen(lic_all)){
map_hex_to_rigol(chunk);
i = i +5;
memcpy(final, temp ,1);
memcpy(final +2, temp +1,7);
memcpy(final +10, temp +8,7);
memcpy(final +18, temp +15,7);
memcpy(final +26, temp +22,4);
printf('----------------------------------------------------n');
#endif
if(i %70&& i >0)printf('-');
}
#ifdef DEBUG
printf('----------------------------------------------------n');
}