Your forum username:
Do you already have an account?
Forgot your password?
  • Log in or Sign up


    Welcome to Sky User - The Unofficial Support Forum for everything Sky! - Proudly helping over 65k members.


    Advertisement

    Results 1 to 8 of 8

    DG934G recovery image

    This is a discussion on DG934G recovery image within the Asking for help forums, part of the Broadband Technical Help category; Hello! I have a Netgear DG934G that I'd like to rejuvenate, but I seem to have lost the CD somewhere ...

    1. #1
      Mattyjim's Avatar
      Mattyjim is offline Sky User Member
      Exchange:
      Broadband ISP: Sky Broadband Unlimited
      Router: Netgear V2 DG934G
      Sky TV: Sky Basic
      Join Date
      Feb 2012
      Posts
      1
      Thanks
      1
      Thanked 0 Times in 0 Posts

      DG934G recovery image

      Hello!


      I have a Netgear DG934G that I'd like to rejuvenate, but I seem to have lost the CD somewhere along the way.

      I'm pretty sure that I just need a copy of DG934G-1SKUKS_V1.02.26.img (or some other compatible version), as I've managed to locate the recovery utility just by browsing the web.

      Does anybody know where I can download this file (DG934G-1SKUKS_V1.02.26.img)? I can't seem to find it anywhere.




      Thanks!!


    2. Advertisement
    3. #2
      NewsreadeR's Avatar
      NewsreadeR is offline Site Founder
      Exchange: Marshalls Cross
      Broadband ISP: Sky Broadband Unlimited
      Router: Sagem F@ST 2504n
      Sky TV: Sky+HD box
      Join Date
      Aug 2006
      Location
      St Helens
      Posts
      22,227
      Thanks
      108
      Thanked 390 Times in 314 Posts
      Blog Entries
      48

      Re: DG934G recovery image

      Quote Originally Posted by Mattyjim View Post
      Hello!


      I have a Netgear DG934G that I'd like to rejuvenate, but I seem to have lost the CD somewhere along the way.

      I'm pretty sure that I just need a copy of DG934G-1SKUKS_V1.02.26.img (or some other compatible version), as I've managed to locate the recovery utility just by browsing the web.

      Does anybody know where I can download this file (DG934G-1SKUKS_V1.02.26.img)? I can't seem to find it anywhere.




      Thanks!!

      PM me with an email address?
      ~ Never, ever, argue with an idiot. They'll drag you down to their level and beat you with experience ~

    4. The Following User Says Thank You to NewsreadeR For This Useful Post:

      Mattyjim (19-02-12)

    5. #3
      stapps's Avatar
      stapps is offline Sky User Member
      Exchange: 0208985
      Broadband ISP: Sky Max
      Router: Netgear V2 DG934G
      Sky TV: Sky Basic
      Join Date
      Feb 2009
      Posts
      2
      Thanks
      1
      Thanked 0 Times in 0 Posts

      Re: DG934G recovery image

      I need to do exactly as the original post requsted, could I possibly be offered similar assistance please.

      Many Thanks
      Andy

    6. #4
      NewsreadeR's Avatar
      NewsreadeR is offline Site Founder
      Exchange: Marshalls Cross
      Broadband ISP: Sky Broadband Unlimited
      Router: Sagem F@ST 2504n
      Sky TV: Sky+HD box
      Join Date
      Aug 2006
      Location
      St Helens
      Posts
      22,227
      Thanks
      108
      Thanked 390 Times in 314 Posts
      Blog Entries
      48

      Re: DG934G recovery image

      Quote Originally Posted by stapps View Post
      I need to do exactly as the original post requsted, could I possibly be offered similar assistance please.

      Many Thanks
      Andy
      As long as you do what I suggested.
      ~ Never, ever, argue with an idiot. They'll drag you down to their level and beat you with experience ~

    7. The Following User Says Thank You to NewsreadeR For This Useful Post:

      stapps (29-03-12)

    8. #5
      stapps's Avatar
      stapps is offline Sky User Member
      Exchange: 0208985
      Broadband ISP: Sky Max
      Router: Netgear V2 DG934G
      Sky TV: Sky Basic
      Join Date
      Feb 2009
      Posts
      2
      Thanks
      1
      Thanked 0 Times in 0 Posts

      Re: DG934G recovery image

      Many Thanks

    9. #6
      falloutphil's Avatar
      falloutphil is offline Sky User Member
      Exchange:
      Broadband ISP: Sky Broadband Unlimited
      Router: Netgear V2 DG934G
      Sky TV: Sky+HD box
      Join Date
      Aug 2010
      Location
      London
      Posts
      4
      Thanks
      1
      Thanked 0 Times in 0 Posts

      Re: DG934G recovery image

      Hi,

      I'm looking for the same file - DG934G-1SKUKS_V1.02.26.img

      I have no idea where my original install CD and looking around the net, I can't find any working downloads.

      Would really appreciate if someone could post a link or PM me if you want to send directly to me.

      Thanks,

      Phil.

    10. #7
      Isitme's Avatar
      Isitme is offline Sky User Moderator
      Exchange: Bannockburn
      Broadband ISP: Sky Fibre Unlimited
      Router: Sky Hub SR102
      Sky TV: Sky+ HD
      Join Date
      Dec 2006
      Location
      Central Scotland
      Posts
      34,254
      Thanks
      65
      Thanked 1,655 Times in 1,616 Posts

      Re: DG934G recovery image

      PM me your email address and I will send you it.

      TomD


      Please note the views and recommendations in my posts are my own and in no way reflect the views of SkyUser.


      Useful Utilites

      https://www.nirsoft.net/utils/wifi_information_view.html/ TCPOptimiser /Test Socket

      Note - When downloading always select the Custom install or you will end up with stuff you don't want.





    11. The Following User Says Thank You to Isitme For This Useful Post:

      falloutphil (16-09-13)

    12. #8
      falloutphil's Avatar
      falloutphil is offline Sky User Member
      Exchange:
      Broadband ISP: Sky Broadband Unlimited
      Router: Netgear V2 DG934G
      Sky TV: Sky+HD box
      Join Date
      Aug 2010
      Location
      London
      Posts
      4
      Thanks
      1
      Thanked 0 Times in 0 Posts

      Re: DG934G recovery image

      Thanks v much to isitme!

      I thought I'd share this. In my impatiance last night, I continued to play around to find another way of flashing the router.

      I have no Win XP install and am primarily a Mac and Linux user.

      A VirtualBox of Win7 running the Netgear recovery tool (swapping the firmware files trick) gave me the same grief that many others have commented on - doesn't play ball in Win7.

      And my router had a too recent version of the firmware to support flashing of non-Sky images (e.g. Netgear 834v3 images) using the router's web portal (hence my original request above!).

      ...But there is a third way. I did this from a VirtalBox of a recent Linux Mint 64-bit distro running on a Mac. Frankly I was suprised it worked as there was a lot of unknowns I was introducing (virtualisation, no confirmation of it working for the DG934G, etc). But - no guts no glory, so I gave it a whirl.

      Use at your own risk of course! I make no promises it is safe to do this!

      Get yourself a distro of Linux - VirtualBox works fine, make sure you set en0 to be a bridged ethernet adaptor in the OS settings. This will save you the hassle of actually installing a Linux distro proper.

      Compile the hacked version of nftp with the security/saftey switches taken out.

      Taken from here:
      Unlocking Sky DG834GT

      It compiles simply as:
      gcc -o nftp nftp.c

      And use as suggested by command line help. It will warn you it's dangerous before asking if you want to continue... in my limited expreience, it wasn't!

      I stuck in the 4.01.28 UK firmware in:
      DG834v3/DG834Gv3 Firmware Version 4.01.28UK & 4.01.27WW

      Remember - the instructions for using nftp on the web are all for the 843GT router, but you will probably brick your DG934G if you pick up the wrong firmware - make sure you're using DG834Gv3 firmware!!!


      Code:
      /*****************************************************************************\
      *                                                                             *
      *  nftp                                                                       *
      *                                                                             *
      *  Upload a firmware image to a bricked Netgear router using raw Ethernet     *
      *  frames.                                                                    *
      *                                                                             *
      *  Only tested with a DG834Gv4. Don't blame me if this breaks your router!    *
      *                                                                             *
      *  First version written by matteo (aka rootkit). I tried upslug2 but it      *
      *  didn't work and eventually uploaded something that still didn't make the   *
      *  router boot.                                                               *
      *                                                                             *
      *  After looking at a packet dump of a proper upgrade done using the Windows  *
      *  tool, I figured enhancing this program would be easier than trying to      *
      *  understand how upslug2 is supposed to work. I don't like C++.              *
      *                                                                             *
      *  This code isn't pretty, but I hacked it together quickly to get the job    *
      *  done. Hope it'll help someone.                                             *
      *                                                                             *
      *  Wilmer van der Gaast. <wilmer@gaast.net>                                   *
      *                                                                             *
      \*****************************************************************************/
      
      #include <stdio.h>
      #include <stdlib.h>
      #include <string.h>
      #include <sys/ioctl.h>
      #include <sys/socket.h>
      #include <linux/if_packet.h>
      #include <linux/if_ether.h>
      #include <linux/if_arp.h>
      #include <arpa/inet.h>
      
      #include <sys/types.h>
      #include <sys/stat.h>
      #include <fcntl.h>
      #include <unistd.h>
                           
      #define NFTP_PROBE_LEN		0x40
      #define NFTP_MAX_PKT_LEN	1600
      #define NFTP_PROBE_RESP_LEN	0x66
      #define ETH_P_NFTP		0x8888
      
      #define NFTP_BLOCK_SIZE		1024
      #define IMG_VERIFY_BUF		65536
      #define IMG_VERIFY_STRING	"sercomm"
      
      typedef enum {
      	NFTP_TYPE_HWINFO = 0,
      	NFTP_TYPE_UPGRADESTART = 1,
      	NFTP_TYPE_UPGRADEDATA = 2,
      	NFTP_TYPE_REBOOT = 3,
      	NFTP_TYPE_UPGRADEVERIFY = 4,
      } nftp_type_t;
      
      #define DEBUG
      
      #ifdef DEBUG
      	#define D(x, ...) fprintf(stderr, x"\n", __VA_ARGS__)
      #else
      	#define D(...)
      #endif
      
      void usage(char *arg0)
      {
      	fprintf(stderr, "Usage: %s -u/-v iface file.img\n"
      			"Example:\n\t %s -u eth0 firmware.img\n", arg0, arg0);
      	exit(1);
      }
      
      int sockfd;
      unsigned char src_mac[ETH_ALEN];
      unsigned char dst_mac[ETH_ALEN] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
      struct sockaddr_ll socket_address;
      unsigned char pkt_buffer[NFTP_MAX_PKT_LEN];
      unsigned char *etherhead = pkt_buffer;
      unsigned char *data = pkt_buffer + 14;
      uint16_t *nftp_type = (uint16_t*) (pkt_buffer + 14);
      uint16_t *nftp_sequence = (uint16_t*) (pkt_buffer + 16);
      uint16_t *nftp_offset = (uint16_t*) (pkt_buffer + 18);
      uint16_t *nftp_chunk = (uint16_t*) (pkt_buffer + 20);
      uint16_t *nftp_payload_len = (uint16_t*) (pkt_buffer + 22);
      unsigned char *nftp_payload = pkt_buffer + 24;
      int send_pkt_len;
      int recv_pkt_len;
      
      int nftp_send()
      {
      	int st;
      
      	/*set the frame header*/
      	memcpy((void*)pkt_buffer, (void*)dst_mac, ETH_ALEN);
      	memcpy((void*)(pkt_buffer+ETH_ALEN), (void*)src_mac, ETH_ALEN);
      	((struct ethhdr*)etherhead)->h_proto = ETH_P_NFTP;
      
      	socket_address.sll_halen = ETH_ALEN;
      	memcpy(socket_address.sll_addr, dst_mac, ETH_ALEN);
      
      	(*nftp_sequence)++;
      	send_pkt_len = (*nftp_payload_len) + 24;
      
      	st = sendto(sockfd, pkt_buffer, send_pkt_len, 0,
      		(struct sockaddr*)&socket_address, sizeof(socket_address));
      
      	if (st == -1) {
      		perror("sendto");
      		/* Rules of proper programming don't apply in a hack like this. :-P */
      		exit(1);
      	}
      }
      
      int nftp_recv()
      {
      	uint16_t st;
      	
      	do {
      		recv_pkt_len = recvfrom(sockfd, pkt_buffer, NFTP_PROBE_RESP_LEN, 0, NULL, NULL);
      		if (recv_pkt_len == -1) {
      			perror("recvfrom");
      			return 1;
      		}
      	} while (((struct ethhdr*)etherhead)->h_proto != ETH_P_NFTP);
      	
      	if (*nftp_payload_len == 2) {
      		st = *(uint16_t*)(nftp_payload);
      	} else {
      		st = 0;
      	}
      	
      	return st;
      }
      
      int nftp_sendrecv()
      {
      	uint16_t sequence;
      	int st;
      	
      	nftp_send();
      	sequence = *nftp_sequence;
      	
      	while (1) {
      		st = nftp_recv();
      		
      		if (*nftp_sequence != sequence) {
      			D("Received unexpected packet seq=%d (expected %d)",
      			  *nftp_sequence, sequence);
      			continue;
      		} else if (st != 0) {
      			fprintf(stderr, "Received non-0 response from router, aborting.\n");
      			exit(1);
      		}
      		
      		return st;
      	}
      }
      
      int nftp_sendfile(int imgfd, int imgsize, char *status)
      {
      	int imgoffset;
      	
      	lseek(imgfd, 0, SEEK_SET);
      	*nftp_chunk = imgoffset = 0;
      	while (read(imgfd, nftp_payload, NFTP_BLOCK_SIZE) == NFTP_BLOCK_SIZE) {
      		*nftp_payload_len = NFTP_BLOCK_SIZE;
      		nftp_sendrecv();
      		*nftp_chunk += (NFTP_BLOCK_SIZE >> 4);
      		imgoffset += NFTP_BLOCK_SIZE;
      		fprintf( stderr, "\r%s: %10d/%d bytes",status, imgoffset, imgsize );
      	}
      }
      
      int main(int argc, char *argv[])
      {
      	int send_result = 0, res, imgfd, upgrade = 0;
      	struct stat imginfo;
      	struct ifreq iface;
      	char *buf, *s;
      
      	if(argc < 3)
      		usage(argv[0]);
      
      	if (strcmp(argv[1], "-u") == 0) {
      		upgrade = 1;
      	} else if (strcmp(argv[1], "-v") != 0) {
      		usage(argv[0]);
      	}
      
      	/* Initialize the raw socket stuff. Most of this can be reused during
      	   the whole session. */
      	sockfd = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
      	if (sockfd == -1) {
      		if(geteuid() != 0) {
      			fprintf(stderr, "You should probably run this program as root.\n");
      		}
      		perror("socket");
      		return 1;
      	}
      	seteuid(getuid());
      	strncpy(iface.ifr_name, argv[2], IFNAMSIZ);
      
      	imgfd = open(argv[3], O_RDONLY);
      	fstat(imgfd, &imginfo);
      	if (imginfo.st_size % NFTP_BLOCK_SIZE) {
      		fprintf(stderr, "File size should be a multiple of %d.\n", NFTP_BLOCK_SIZE);
      		return 1;
      	}
      
      	res = ioctl(sockfd, SIOCGIFHWADDR, &iface);
      	if(res < 0){
      		perror("ioctl");
      		exit(1);
      	}
      
      	/*our MAC address*/
      	memcpy(src_mac, iface.ifr_hwaddr.sa_data, ETH_ALEN);
      	D("Sending frame on %s (%x:%x:%x:%x:%x:%x)", iface.ifr_name,
      	  src_mac[0], src_mac[1], src_mac[2], src_mac[3], src_mac[4], src_mac[5]);
      
      	/*RAW communication*/
      	socket_address.sll_family   = PF_PACKET;
      	/*we don't use a protocoll above ethernet layer
      	*   ->just use anything here*/
      	socket_address.sll_protocol = htons(ETH_P_NFTP);
      
      	/*index of the network device
      	* see full code later how to retrieve it*/
      	res = ioctl(sockfd, SIOCGIFINDEX, &iface);
      	if(res < 0){
      		perror("ioctl");
      		exit(1);
      	}
      	socket_address.sll_ifindex  =iface.ifr_ifindex;
      
      	/* ARP hardware identifier is ethernet */
      	socket_address.sll_hatype   = ARPHRD_ETHER;
      
      	/* target is another host */
      	socket_address.sll_pkttype  = PACKET_OTHERHOST;
      
      	*nftp_type = NFTP_TYPE_HWINFO;
      	send_pkt_len = NFTP_PROBE_LEN;
      
      	nftp_send();
      	nftp_recv();
      
      	/* Now we know where to talk to, stop broadcasting! */
      	memcpy(dst_mac, pkt_buffer + ETH_ALEN, ETH_ALEN);
      	D("Found a router at %x:%x:%x:%x:%x:%x", dst_mac[0], dst_mac[1], dst_mac[2], dst_mac[3], dst_mac[4], dst_mac[5]);
      	D("Router is a %s", pkt_buffer + 0x1C);
      	D("Current version is %x%x", pkt_buffer[0x4A], pkt_buffer[0x4B]);
      	D("Max upgrade size is %d kb", (pkt_buffer[0x16] | (pkt_buffer[0x17] << 8) | (pkt_buffer[0x18] << 16)) - 20);
      
      	/* Some kind of verification of the firmware image. This really is
      	   just some guess work based on what I saw in upslug2 and the images
      	   for my router (not compatible with upslug2). */
      	buf = malloc(IMG_VERIFY_BUF);
      	lseek(imgfd, -IMG_VERIFY_BUF, SEEK_END);
      	read(imgfd, buf, IMG_VERIFY_BUF);
      	s = (char*) memmem(buf, IMG_VERIFY_BUF, nftp_payload, (size_t) (*nftp_payload_len));
      	if (s == NULL ||
      	    strncasecmp(s - strlen(IMG_VERIFY_STRING), IMG_VERIFY_STRING, strlen(IMG_VERIFY_STRING)) != 0 ||
      	    strncasecmp(s + *nftp_payload_len, IMG_VERIFY_STRING, strlen(IMG_VERIFY_STRING)) != 0) {
      		fprintf(stderr, "Could not find \"magic hardware header\" in this image.\n"
      		                "Uploading this is not recommended but press Enter if you wish to continue.\n");
      		read(0, buf, 1);
      	}
      	
      	*nftp_type = NFTP_TYPE_UPGRADESTART;
      	*nftp_offset = 0;
      	*nftp_chunk = 0;
      	*nftp_payload_len = 0;
      
      	nftp_sendrecv();
      
      	if (upgrade) {
      		/* When the first packet comes in, the router will start
      		   erasing flash before it sends an ACK. Keep the user
      		   updated in the meantime. */
      		printf("Erasing flash, this will take around ten seconds...\n");
      		*nftp_type = NFTP_TYPE_UPGRADEDATA;
      		nftp_sendfile(imgfd, imginfo.st_size, "Upgrading");
      		printf("\nUpload completed, will now verify:\n");
      	}
      	
      	*nftp_type = NFTP_TYPE_UPGRADEVERIFY;
      	nftp_sendfile(imgfd, imginfo.st_size, "Verifying");
      
      	if (upgrade) {
      		*nftp_type = NFTP_TYPE_REBOOT;
      		*nftp_payload_len = 0;
      		nftp_sendrecv();
      	}
      
      	printf("\nFirmware updated/verified successfully!\n");
      	
      	return 0;
      }
      Last edited by falloutphil; 17-09-13 at 11:42 AM.

     

     

    Tags for this Thread

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •  
    SkyUser - Copyright © 2006-2020. SatDish and NewsreadeR | SkyUser is in no way affiliated with Sky Broadband / BSkyB
    RIPA NOTICE: NO CONSENT IS GIVEN FOR INTERCEPTION OF PAGE TRANSMISSION