亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? chntpw.c

?? 修改NT密碼的程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* * chntpw.c - Offline Password Edit Utility for NT 3.51 & 4.0 SAM database. * 1999-feb: Now able to browse registry hives. (write support to come) * 2000-jan: Attempt to detect and disable syskey *  * Copyright (c) 1997-2000 Petter Nordahl-Hagen. * Freely distributable in source or binary for noncommercial purposes. *  * Uses (links with) DES SSL Library by Eric Young (eay@mincom.oz.au) * and MD4 routines by RSA. *  * Part of some routines, information and ideas taken from * pwdump by Jeremy Allison. * * Some stuff (like proto.h) from NTCrack by Jonathan Wilkins. *  * Please see the COPYING file for more details on * copyrights & credits. *   * THIS SOFTWARE IS PROVIDED BY PETTER NORDAHL-HAGEN `AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ #include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <ctype.h>#include <stdlib.h>#include <string.h>/* #include <unistd.h> *//* These are from the DESlib & MD packages, see Makefile & README */#include <des.h>#include <mddriver/global.h>#include <md4/md4.h>#include "proto.h"#include "ntreg.h"const char chntpw_version[] = "chntpw version 0.98.1 000607, (c) Petter N Hagen";extern char *val_types[REG_MAX+1];#define MAX_HIVES 10#define H_SAM 0#define H_SYS 1#define H_SEC 2/* Array of loaded hives */struct hive *hive[MAX_HIVES+1];int no_hives = 0;int syskeyreset = 0;int dirty = 0;/* * of user with RID 500, because silly MS decided * to localize the bloody admin-username!! AAAGHH! */char admuser[129]="StupidMS";/* ============================================================== *//* Crypto-stuff & support for what we'll do in the V-value *//* Zero out string for lanman passwd, then uppercase * the supplied password and put it in here */void make_lanmpw(char *p, char *lm, int len){   int i;      for (i=0; i < 15; i++) lm[i] = 0;   for (i=0; i < len; i++) lm[i] = toupper(p[i]);}/* * Convert a 7 byte array into an 8 byte des key with odd parity. */void str_to_key(unsigned char *str,unsigned char *key){	void des_set_odd_parity(des_cblock *);	int i;	key[0] = str[0]>>1;	key[1] = ((str[0]&0x01)<<6) | (str[1]>>2);	key[2] = ((str[1]&0x03)<<5) | (str[2]>>3);	key[3] = ((str[2]&0x07)<<4) | (str[3]>>4);	key[4] = ((str[3]&0x0F)<<3) | (str[4]>>5);	key[5] = ((str[4]&0x1F)<<2) | (str[5]>>6);	key[6] = ((str[5]&0x3F)<<1) | (str[6]>>7);	key[7] = str[6]&0x7F;	for (i=0;i<8;i++) {		key[i] = (key[i]<<1);	}	des_set_odd_parity((des_cblock *)key);}/* * Function to convert the RID to the first decrypt key. */void sid_to_key1(unsigned long sid,unsigned char deskey[8]){	unsigned char s[7];	s[0] = (unsigned char)(sid & 0xFF);	s[1] = (unsigned char)((sid>>8) & 0xFF);	s[2] = (unsigned char)((sid>>16) & 0xFF);	s[3] = (unsigned char)((sid>>24) & 0xFF);	s[4] = s[0];	s[5] = s[1];	s[6] = s[2];	str_to_key(s,deskey);}/* * Function to convert the RID to the second decrypt key. */void sid_to_key2(unsigned long sid,unsigned char deskey[8]){	unsigned char s[7];		s[0] = (unsigned char)((sid>>24) & 0xFF);	s[1] = (unsigned char)(sid & 0xFF);	s[2] = (unsigned char)((sid>>8) & 0xFF);	s[3] = (unsigned char)((sid>>16) & 0xFF);	s[4] = s[0];	s[5] = s[1];	s[6] = s[2];	str_to_key(s,deskey);}/* DES encrypt, for LANMAN */void E1(uchar *k, uchar *d, uchar *out){  des_key_schedule ks;  des_cblock deskey;  str_to_key(k,(uchar *)deskey);#ifdef __FreeBSD__  des_set_key(&deskey,ks);#else /* __FreeBsd__ */  des_set_key((des_cblock *)deskey,ks);#endif /* __FreeBsd__ */  des_ecb_encrypt((des_cblock *)d,(des_cblock *)out, ks, DES_ENCRYPT);}/* Decode the V-struct, and change the password * vofs - offset into SAM buffer, start of V struct * rid - the users RID, required for the DES decrypt stage *       If rid==0 it will try to extract the rid out of the V struct *       else the supplied one will be used * * Some of this is ripped & modified from pwdump by Jeremy Allison *  */char *change_pw(char *buf, int rid, int vlen, int stat){      uchar x1[] = {0x4B,0x47,0x53,0x21,0x40,0x23,0x24,0x25};   char magic[] = {0x24, 0, 0x44 };   int pl,ridofs,vend;   char *vp;   static char username[128],fullname[128];   char comment[128],homedir[128],md4[32],lanman[32];   char newunipw[34], newp[20], despw[20], newlanpw[16], newlandes[20];   char yn[4];   int username_offset,username_len;   int fullname_offset,fullname_len;   int comment_offset,comment_len;   int homedir_offset,homedir_len;   int ntpw_len,lmpw_len,ntpw_offs,lmpw_offs,i;   des_key_schedule ks1, ks2;   des_cblock deskey1, deskey2;   MD4_CTX context;   unsigned char digest[16];   vp = buf;   username_offset = get_int(vp + 0xC);   username_len = get_int(vp + 0x10);    fullname_offset = get_int(vp + 0x18);   fullname_len = get_int(vp + 0x1c);   comment_offset = get_int(vp + 0x24);   comment_len = get_int(vp + 0x28);   homedir_offset = get_int(vp + 0x48);   homedir_len = get_int(vp + 0x4c);   lmpw_offs = get_int(vp + 0x9c);   lmpw_len = get_int(vp + 0xa0);   ntpw_offs = get_int(vp + 0xa8);   ntpw_len = get_int(vp + 0xac);#if 0   printf("lmpw_offs: 0x%x, lmpw_len: %d (0x%x)\n",lmpw_offs,lmpw_len,lmpw_len);   printf("ntpw_offs: 0x%x, ntpw_len: %d (0x%x)\n",ntpw_offs,ntpw_len,ntpw_len);#endif   *username = 0;   *fullname = 0;   *comment = 0;   *homedir = 0;      if(username_len <= 0 || username_len > vlen ||      username_offset <= 0 || username_offset >= vlen ||      comment_len < 0 || comment_len > vlen   ||      fullname_len < 0 || fullname_len > vlen ||      homedir_offset < 0 || homedir_offset >= vlen ||      comment_offset < 0 || comment_offset >= vlen ||      lmpw_offs < 0 || lmpw_offs >= vlen)     {	if (stat != 1) printf("Not a legal struct? (negative lengths)\n");	return(NULL);     }   /* Offsets in top of struct is relative to end of pointers, adjust */   username_offset += 0xCC;   fullname_offset += 0xCC;   comment_offset += 0xCC;   homedir_offset += 0xCC;   ntpw_offs += 0xCC;   lmpw_offs += 0xCC;      cheap_uni2ascii(vp + username_offset,username,username_len);   cheap_uni2ascii(vp + fullname_offset,fullname,fullname_len);   cheap_uni2ascii(vp + comment_offset,comment,comment_len);   cheap_uni2ascii(vp + homedir_offset,homedir,homedir_len);   #if 0   if (!rid) {      printf("No RID supplied, doing some magic to find it.\n");      ridofs = find_in_buf(buf, magic,3, 0);      if (!ridofs || ridofs > vlen) {	 printf("No RID found in struct..\n");	 rid = 0;      } else {	 rid = get_int(buf+ridofs+0x1e);      }   }#endif#if 0   /* Reset hash-lengths to 16 if syskey has been reset */   if (syskeyreset && ntpw_len > 16 && !stat) {     ntpw_len = 16;     lmpw_len = 16;     ntpw_offs -= 4;     (unsigned int)*(vp+0xa8) = ntpw_offs - 0xcc;     *(vp + 0xa0) = 16;     *(vp + 0xac) = 16;   }#endif   if (stat) {      printf("RID: %04x, Username: <%s>%s\n",	     rid, username,  ( !rid ? ", account locked?" : (ntpw_len < 16) ? ", *BLANK password*" : "")  );      return(username);   }   printf("RID     : %04d [%04x]\n",rid,rid);   printf("Username: %s\n",username);   printf("fullname: %s\n",fullname);   printf("comment : %s\n",comment);   printf("homedir : %s\n\n",homedir);      if (ntpw_len < 16) {      printf("** This user _probably_ has a BLANK password! (Unable to change it, let NT do it instead :)\n\n");      return(0);   }      if (!rid) {     printf("No RID given. Unable to change passwords..\n");     return(0);   }      hexprnt("Crypted NT pw: ",(vp+ntpw_offs),16);   hexprnt("Crypted LM pw: ",(vp+lmpw_offs),16);   /* Get the two decrpt keys. */   sid_to_key1(rid,(unsigned char *)deskey1);   des_set_key((des_cblock *)deskey1,ks1);   sid_to_key2(rid,(unsigned char *)deskey2);   des_set_key((des_cblock *)deskey2,ks2);      /* Decrypt the NT md4 password hash as two 8 byte blocks. */   des_ecb_encrypt((des_cblock *)(vp+ntpw_offs ),		   (des_cblock *)md4, ks1, DES_DECRYPT);   des_ecb_encrypt((des_cblock *)(vp+ntpw_offs + 8),		   (des_cblock *)&md4[8], ks2, DES_DECRYPT);   /* Decrypt the lanman password hash as two 8 byte blocks. */   des_ecb_encrypt((des_cblock *)(vp+lmpw_offs),		   (des_cblock *)lanman, ks1, DES_DECRYPT);   des_ecb_encrypt((des_cblock *)(vp+lmpw_offs + 8),		   (des_cblock *)&lanman[8], ks2, DES_DECRYPT);         hexprnt("MD4 hash     : ",md4,16);   hexprnt("LANMAN hash  : ",lanman,16);      pl = fmyinput("\nPlease enter new password\nor nothing to leave unchanged: ",newp,16);      /*   printf("password: [%s] have length %d\n",newp,pl); */   if (!pl) { printf("Nothing changed.\n"); return(0); }      cheap_ascii2uni(newp,newunipw,pl);      make_lanmpw(newp,newlanpw,pl);   /*   printf("Ucase Lanman: %s\n",newlanpw); */      MD4Init (&context);   MD4Update (&context, newunipw, pl<<1);   MD4Final (digest, &context);      hexprnt("\nNEW MD4 hash    : ",digest,16);      E1(newlanpw,   x1, lanman);   E1(newlanpw+7, x1, lanman+8);      hexprnt("NEW LANMAN hash : ",lanman,16);      /* Encrypt the NT md4 password hash as two 8 byte blocks. */   des_ecb_encrypt((des_cblock *)digest,		   (des_cblock *)despw, ks1, DES_ENCRYPT);   des_ecb_encrypt((des_cblock *)(digest+8),		   (des_cblock *)&despw[8], ks2, DES_ENCRYPT);   des_ecb_encrypt((des_cblock *)lanman,		   (des_cblock *)newlandes, ks1, DES_ENCRYPT);   des_ecb_encrypt((des_cblock *)(lanman+8),		   (des_cblock *)&newlandes[8], ks2, DES_ENCRYPT);         hexprnt("NEW DES crypt   : ",despw,16);   hexprnt("NEW LANMAN crypt: ",newlandes,16);     fmyinput("\nDo you really wish to change it? (y/n) [n] ",yn,2);   /* Reset hash length to 16 if syskey enabled, this will cause    * a conversion to syskey-hashes upon next boot */   if (syskeyreset && ntpw_len > 16) {     ntpw_len = 16;     lmpw_len = 16;     ntpw_offs -= 4;     (unsigned int)*(vp+0xa8) = ntpw_offs - 0xcc;     *(vp + 0xa0) = 16;     *(vp + 0xac) = 16;   }   if (*yn == 'y') {      for (i = 0; i < 16; i++) {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆freexxxx性91精品| 亚洲国产va精品久久久不卡综合| 美女视频网站久久| 91麻豆精品国产91久久久 | 在线视频一区二区三区| 一区二区三区在线视频免费| 欧美亚洲综合在线| 免费不卡在线视频| 国产欧美一区二区三区在线看蜜臀| 国产一区欧美日韩| 国产精品成人午夜| 精品视频在线看| 久久国产人妖系列| 中文一区二区完整视频在线观看| 91丨九色porny丨蝌蚪| 亚洲成a人在线观看| 精品国产一区二区三区忘忧草| 国产成人精品www牛牛影视| 亚洲女人小视频在线观看| 51精品国自产在线| 国产aⅴ精品一区二区三区色成熟| 亚洲欧美另类久久久精品| 日韩一级片网址| 成人精品视频一区二区三区尤物| 亚洲一区二区三区美女| 精品处破学生在线二十三| 91蝌蚪porny| 美女精品自拍一二三四| 亚洲视频电影在线| 精品免费一区二区三区| 91蜜桃在线观看| 韩国女主播成人在线观看| 亚洲精品综合在线| 久久综合久久久久88| 欧美影片第一页| 成人免费福利片| 免费在线观看日韩欧美| 国产精品成人在线观看| 欧美成人午夜电影| 欧美性色黄大片| eeuss鲁片一区二区三区 | 日韩精品一区二区三区在线观看| 成人性色生活片免费看爆迷你毛片| 亚洲午夜久久久久久久久久久| 久久综合色天天久久综合图片| 91福利视频在线| 国产成人综合视频| 日本成人在线一区| 亚洲一区二区在线免费观看视频| 国产香蕉久久精品综合网| 在线91免费看| 欧美日韩亚洲综合| 色婷婷香蕉在线一区二区| 国产iv一区二区三区| 国产在线精品一区在线观看麻豆| 午夜精品视频在线观看| 亚洲精品写真福利| 国产精品不卡一区二区三区| 久久亚洲欧美国产精品乐播| 欧美一级黄色片| 欧美久久一区二区| 欧美三级日韩三级国产三级| 91美女在线观看| 99久久久无码国产精品| 成人精品免费视频| 国产不卡在线视频| 国产精品一区免费视频| 久久成人免费网站| 激情综合色播五月| 欧美a一区二区| 久色婷婷小香蕉久久| 日韩成人一区二区| 秋霞午夜鲁丝一区二区老狼| 日韩专区在线视频| 蜜臀av一区二区在线观看| 午夜不卡av免费| 日韩精品91亚洲二区在线观看| 午夜久久久久久电影| 日韩不卡手机在线v区| 美腿丝袜亚洲色图| 精品系列免费在线观看| 韩国一区二区视频| 国产大陆精品国产| 99国内精品久久| 一本大道综合伊人精品热热| 色婷婷精品大视频在线蜜桃视频| 色女孩综合影院| 欧美日韩国产一级片| 欧美精品一二三| 欧美一区二区三区男人的天堂| 日韩欧美国产成人一区二区| 精品福利一二区| 国产精品久久久久久久久快鸭| 中文字幕一区二区三区乱码在线| 亚洲日韩欧美一区二区在线| 亚洲一区二区三区四区的| 日本在线不卡一区| 国产精品伊人色| 99re成人在线| 91麻豆精品国产综合久久久久久| 555www色欧美视频| 国产精品美女久久福利网站| 欧美三级视频在线播放| 91精品国产黑色紧身裤美女| 日韩欧美综合在线| 中文字幕免费不卡| 亚洲高清在线精品| 韩日av一区二区| 91网上在线视频| 欧美一级生活片| 中文字幕在线不卡| 午夜国产精品一区| 国产成人午夜电影网| 91视频免费看| 日韩免费视频一区二区| 国产精品天干天干在线综合| 亚洲午夜免费电影| 国产一区二区福利| 欧美色综合网站| 久久精品欧美日韩精品| 亚洲图片有声小说| 成人妖精视频yjsp地址| 欧美日韩精品福利| 国产精品麻豆一区二区| 日韩av中文字幕一区二区| 成人国产电影网| 91精品国产欧美一区二区成人| 国产欧美日韩麻豆91| 亚洲成a人v欧美综合天堂| 成人综合婷婷国产精品久久免费| 欧美区在线观看| 国产精品免费丝袜| 韩国午夜理伦三级不卡影院| 欧美专区在线观看一区| 中文字幕欧美国产| 麻豆一区二区三区| 欧美色图第一页| 成人欧美一区二区三区1314| 国产在线视视频有精品| 欧美日本在线播放| 亚洲免费av高清| 大尺度一区二区| 亚洲精品一线二线三线| 视频一区视频二区中文字幕| 91网址在线看| 国产精品区一区二区三| 久久se精品一区精品二区| 欧美日韩第一区日日骚| 亚洲六月丁香色婷婷综合久久 | 欧美日韩一区二区三区不卡| 欧美国产成人精品| 久久99国产精品久久99果冻传媒| 欧美色图在线观看| 亚洲激情图片小说视频| 91丝袜国产在线播放| 日本一区二区三区视频视频| 国产综合久久久久久鬼色| 精品免费国产一区二区三区四区| 日韩精品福利网| 777色狠狠一区二区三区| 亚洲一线二线三线视频| 一本到高清视频免费精品| 综合激情网...| 99久久国产综合精品女不卡| 国产精品理论片在线观看| 风间由美一区二区三区在线观看 | 亚洲成国产人片在线观看| 在线观看一区二区视频| 亚洲人成网站在线| 色网综合在线观看| 欧美一区二区三区喷汁尤物| 在线视频综合导航| 伊人一区二区三区| 欧美在线观看一二区| 亚洲大型综合色站| 欧美一区二区三区在线视频| 石原莉奈一区二区三区在线观看| 欧美剧情片在线观看| 七七婷婷婷婷精品国产| 欧美成人乱码一区二区三区| 捆绑紧缚一区二区三区视频 | 成人美女视频在线观看18| 中文字幕乱码久久午夜不卡| 成人妖精视频yjsp地址| ...av二区三区久久精品| 亚洲国产高清aⅴ视频| 成人激情文学综合网| 国产精品久久毛片| 欧美在线你懂得| 奇米一区二区三区av| 久久影视一区二区| 成人国产在线观看| 一区二区国产视频| 日韩小视频在线观看专区| 国产精品18久久久久久vr| 国产精品久久久久天堂| 欧美群妇大交群中文字幕| 美女www一区二区| 中文字幕一区三区| 欧美日韩视频一区二区|