2023年7月31日发(作者:)

其它以字典的⽅式暴⼒破解压缩⽂件密码

背景  以前加密了⼀个压缩⽂件,⾥⾯全是回忆的照⽚,结果密码搞忘记了,我勒个去,然后就在⽹上下载了个软件暴⼒破解,结果很明显,没有破解出来。然后⾃⼰就思索怎么破解。  ⼀开始是加QQ群,让别⼈帮忙破解,仍然没有破解出来,别个还帮我跑了100g的字典,还是挺感谢他的,再说⼀声 谢谢了哈,没有收我钱,全凭热⼼。  然后⾃⼰就寻思着,看怎么破解,暴⼒破解估计没戏,除⾮搭建云,⽤N多电脑协同破解,这⽅法对我⽽⾔不可取。  接着就想,还是字典破解吧,然后字典就很重要了撒,聪明的⿊客,不可能什么都暴⼒破解,肯定会根据⽤户信息,⽣成特定的密码,这样破解的概率是最⼤的。这压缩⽂件的密码⼜是我⾃⼰设定的,那么根据我的习惯得出⾃⼰的密码应该还是不难,就在⽹上找⽣成密码的算法,其实就是个数学⾥⾯的排列组合,⽤C#实现。然后就是把密码给搞出来,把常⽤密码拆分⼀下就可以了,根据⾃⼰的习惯来。⽐如,我喜欢⽤guxingyue这个密码,然后我就拆分为gu、xing、yue,还有喜欢⽤guxingy这个密码,这密码是⼀个整体

下⾯是我的原始字典

经过排序组合,变成这个样⼦:

解释⼀下哈,有1个密码的组合,有2个密码的组合,有3个密码的组合,有4个密码的组合排列。总共就只有4个最基本的密码。⽣成的密码数量就是这样多。这样⽣成后的密码,就可以做为字典⽤于暴⼒破解了。

⽤到的代码:1、排列组合: public class PermutationAndCombination { ///

/// 交换两个变量 /// /// 变量1 /// 变量2 public static void Swap(ref T a, ref T b) { T temp = a; a = b; b = temp; } /// /// 递归算法求数组的组合(私有成员) /// /// 返回的范型 /// 所求数组 /// 辅助变量 /// 辅助变量 /// 辅助数组 /// 辅助变量M private static void GetCombination(ref List list, T[] t, int n, int m, int[] b, int M) { for (int i = n; i >= m; i--) { b[m - 1] = i - 1; if (m > 1) { GetCombination(ref list, t, i - 1, m - 1, b, M); } else { if (list == null) { list = new List(); } T[] temp = new T[M]; for (int j = 0; j < ; j++) { temp[j] = t[b[j]]; } (temp); } } } /// /// 递归算法求排列(私有成员) /// /// 返回的列表 /// 所求数组 /// 起始标号 /// 结束标号 private static void GetPermutation(ref List list, T[] t, int startIndex, int endIndex) { if (startIndex == endIndex) { if (list == null) { list = new List(); } T[] temp = new T[]; (temp, 0); (temp); } else { for (int i = startIndex; i <= endIndex; i++) { Swap(ref t[startIndex], ref t[i]); GetPermutation(ref list, t, startIndex + 1, endIndex); Swap(ref t[startIndex], ref t[i]); } } } /// /// 求从起始标号到结束标号的排列,其余元素不变 /// /// 所求数组 /// 起始标号 /// 结束标号 /// 从起始标号到结束标号排列的范型 public static List GetPermutation(T[] t, int startIndex, int endIndex) { if (startIndex < 0 || endIndex > - 1) { return null; } List list = new List(); GetPermutation(ref list, t, startIndex, endIndex); return list; } /// /// 返回数组所有元素的全排列 /// /// 所求数组 /// 全排列的范型 public static List GetPermutation(T[] t) { return GetPermutation(t, 0, - 1); } /// /// 求数组中n个元素的排列 /// /// 所求数组 /// 元素个数 /// 数组中n个元素的排列 public static List GetPermutation(T[] t, int n) { if (n > ) { return null; } List list = new List(); List c = GetCombination(t, n); for (int i = 0; i < ; i++) { List l = new List(); GetPermutation(ref l, c[i], 0, n - 1); ge(l); } return list; } /// /// 求数组中n个元素的组合 /// /// 所求数组 /// 元素个数 /// 数组中n个元素的组合的范型 public static List GetCombination(T[] t, int n) { if ( < n) { return null; } int[] temp = new int[n]; List list = new List(); GetCombination(ref list, t, , n, temp, n); return list; } }View Code

2、⽣成密码: public void test4() { //排列组合 ⽣成密码 StringBuilder sb = new StringBuilder(); var strContent = lText("02 "); List list = (strContent, "rn").ToList();//⼀个sheet包含的所有⾏,⾏与⾏之间⽤回车分隔 //这⾥的1234,就是组合的个数 new List { 1, 2, 3, 4 }.ForEach(num => { List ListCombination = PermutationAndCombination.GetPermutation(y(), num); //求全部的3-3组合 foreach (var arr in ListCombination) { string pwd = "";//排列组合后的密码 foreach (var item in arr) { pwd += item; } (pwd + "rn"); } ine($"num:{num} count:{}"); }); llText("", ng()); }View Code

⽂件解释:02 ⾥⾯存的是最基本的密码,就是⽤于组合排列的那⼏个基本元素,数学⾥⾯叫什么忘记了,突然感觉⾼中就像⽩学了⼀样,这都能忘!!还是没有经常⽤到的缘故吧  ⾥⾯存的是排序组合后的密码

⽤到的破解⼯具:  都是百度搜索的,这⾥鄙视⼀下百度,搜索经常是⼴告⼀连串,真是⽆聊。简直跟⾕歌⽆法⽐,⾕歌游览器装个插件⼀样能⽤⾕歌搜索,这个插件叫:⾕歌访问助⼿,不是打⼴告,好⽤的东西要分享,我也是我们公司的跟我讲才知道的,⼀直都以为需要挂vpn才能FQ,游览器装个插件就可以了,关键是还免费。

  ARPR_gr(我⽤的是这个哈 在电脑上找到的 都不知道什么时候下载的 破解类型 选择字典破解,不要选暴⼒破解哈)       补充:Advanced RAR Password Recovery(ARPR)  Advanced Office Password Recovery  (这个之前下来是准备破解Excel密码的,我哥哥的Excel密码忘记了,找我,然后下的)  hashcat  (这个是之前 那个群⾥的好⼈ 帮我破解⽤的软件,他因为帮我免费破解,估计是抢了群主的⽣意,群主还把他踢了,唉 不想说什么 挺感谢的 哥们)

破解软件界⾯截图:

最后再说⼀下哈,我不是教别个破解。只是⾃⼰遇到了忘记密码,把⾃⼰的破解过程记录⼀下。还有就是现在很多破解的群好坑,其它的不想多说

具体的操作步骤:  之前公司的电脑硬盘坏了,就当重新复习⼀下吧  复制到迅雷⾥⾯下载就可以了,或者直接点击“压缩⽂件地址”这⼏个字就可以了  下载之后解压⼀下,看下图的说明:  

  ⼀、⽣成字典的步骤:    1、下载压缩⽂件    2、解压⽂件    3、打开⽂件“02 ”,编写⾃⼰的密码元素,每个密码元素以“回车”隔开    4、执⾏⽂件“”    5、⽂件“”就是⽣成的密码字典了

  ⼆、使⽤密码字典的步骤:    2、准备⼀个需要解密的压缩⽂件,⽤于测试          3、解压⽂件“ARPR_”,找到⽂件“”,双击打开      在选择过程中,如果就执⾏了破解了,你就点⼀下“Stop”就可以了,      等全部选择好后,再点⼀下“Start”就可以了。      

      

    5、破解成功后会出现这个界⾯:      这种⽅式破解的关键在于字典的精准程度,你需要把⾃⼰的基础密码整理好,程序仅仅只是帮你组合排列密码给。    

    6、最后附上程序的源码,代码其实都贴出来的,⽤vs2015+就可以打开了:

2023年7月31日发(作者:)

其它以字典的⽅式暴⼒破解压缩⽂件密码

背景  以前加密了⼀个压缩⽂件,⾥⾯全是回忆的照⽚,结果密码搞忘记了,我勒个去,然后就在⽹上下载了个软件暴⼒破解,结果很明显,没有破解出来。然后⾃⼰就思索怎么破解。  ⼀开始是加QQ群,让别⼈帮忙破解,仍然没有破解出来,别个还帮我跑了100g的字典,还是挺感谢他的,再说⼀声 谢谢了哈,没有收我钱,全凭热⼼。  然后⾃⼰就寻思着,看怎么破解,暴⼒破解估计没戏,除⾮搭建云,⽤N多电脑协同破解,这⽅法对我⽽⾔不可取。  接着就想,还是字典破解吧,然后字典就很重要了撒,聪明的⿊客,不可能什么都暴⼒破解,肯定会根据⽤户信息,⽣成特定的密码,这样破解的概率是最⼤的。这压缩⽂件的密码⼜是我⾃⼰设定的,那么根据我的习惯得出⾃⼰的密码应该还是不难,就在⽹上找⽣成密码的算法,其实就是个数学⾥⾯的排列组合,⽤C#实现。然后就是把密码给搞出来,把常⽤密码拆分⼀下就可以了,根据⾃⼰的习惯来。⽐如,我喜欢⽤guxingyue这个密码,然后我就拆分为gu、xing、yue,还有喜欢⽤guxingy这个密码,这密码是⼀个整体

下⾯是我的原始字典

经过排序组合,变成这个样⼦:

解释⼀下哈,有1个密码的组合,有2个密码的组合,有3个密码的组合,有4个密码的组合排列。总共就只有4个最基本的密码。⽣成的密码数量就是这样多。这样⽣成后的密码,就可以做为字典⽤于暴⼒破解了。

⽤到的代码:1、排列组合: public class PermutationAndCombination { ///

/// 交换两个变量 /// /// 变量1 /// 变量2 public static void Swap(ref T a, ref T b) { T temp = a; a = b; b = temp; } /// /// 递归算法求数组的组合(私有成员) /// /// 返回的范型 /// 所求数组 /// 辅助变量 /// 辅助变量 /// 辅助数组 /// 辅助变量M private static void GetCombination(ref List list, T[] t, int n, int m, int[] b, int M) { for (int i = n; i >= m; i--) { b[m - 1] = i - 1; if (m > 1) { GetCombination(ref list, t, i - 1, m - 1, b, M); } else { if (list == null) { list = new List(); } T[] temp = new T[M]; for (int j = 0; j < ; j++) { temp[j] = t[b[j]]; } (temp); } } } /// /// 递归算法求排列(私有成员) /// /// 返回的列表 /// 所求数组 /// 起始标号 /// 结束标号 private static void GetPermutation(ref List list, T[] t, int startIndex, int endIndex) { if (startIndex == endIndex) { if (list == null) { list = new List(); } T[] temp = new T[]; (temp, 0); (temp); } else { for (int i = startIndex; i <= endIndex; i++) { Swap(ref t[startIndex], ref t[i]); GetPermutation(ref list, t, startIndex + 1, endIndex); Swap(ref t[startIndex], ref t[i]); } } } /// /// 求从起始标号到结束标号的排列,其余元素不变 /// /// 所求数组 /// 起始标号 /// 结束标号 /// 从起始标号到结束标号排列的范型 public static List GetPermutation(T[] t, int startIndex, int endIndex) { if (startIndex < 0 || endIndex > - 1) { return null; } List list = new List(); GetPermutation(ref list, t, startIndex, endIndex); return list; } /// /// 返回数组所有元素的全排列 /// /// 所求数组 /// 全排列的范型 public static List GetPermutation(T[] t) { return GetPermutation(t, 0, - 1); } /// /// 求数组中n个元素的排列 /// /// 所求数组 /// 元素个数 /// 数组中n个元素的排列 public static List GetPermutation(T[] t, int n) { if (n > ) { return null; } List list = new List(); List c = GetCombination(t, n); for (int i = 0; i < ; i++) { List l = new List(); GetPermutation(ref l, c[i], 0, n - 1); ge(l); } return list; } /// /// 求数组中n个元素的组合 /// /// 所求数组 /// 元素个数 /// 数组中n个元素的组合的范型 public static List GetCombination(T[] t, int n) { if ( < n) { return null; } int[] temp = new int[n]; List list = new List(); GetCombination(ref list, t, , n, temp, n); return list; } }View Code

2、⽣成密码: public void test4() { //排列组合 ⽣成密码 StringBuilder sb = new StringBuilder(); var strContent = lText("02 "); List list = (strContent, "rn").ToList();//⼀个sheet包含的所有⾏,⾏与⾏之间⽤回车分隔 //这⾥的1234,就是组合的个数 new List { 1, 2, 3, 4 }.ForEach(num => { List ListCombination = PermutationAndCombination.GetPermutation(y(), num); //求全部的3-3组合 foreach (var arr in ListCombination) { string pwd = "";//排列组合后的密码 foreach (var item in arr) { pwd += item; } (pwd + "rn"); } ine($"num:{num} count:{}"); }); llText("", ng()); }View Code

⽂件解释:02 ⾥⾯存的是最基本的密码,就是⽤于组合排列的那⼏个基本元素,数学⾥⾯叫什么忘记了,突然感觉⾼中就像⽩学了⼀样,这都能忘!!还是没有经常⽤到的缘故吧  ⾥⾯存的是排序组合后的密码

⽤到的破解⼯具:  都是百度搜索的,这⾥鄙视⼀下百度,搜索经常是⼴告⼀连串,真是⽆聊。简直跟⾕歌⽆法⽐,⾕歌游览器装个插件⼀样能⽤⾕歌搜索,这个插件叫:⾕歌访问助⼿,不是打⼴告,好⽤的东西要分享,我也是我们公司的跟我讲才知道的,⼀直都以为需要挂vpn才能FQ,游览器装个插件就可以了,关键是还免费。

  ARPR_gr(我⽤的是这个哈 在电脑上找到的 都不知道什么时候下载的 破解类型 选择字典破解,不要选暴⼒破解哈)       补充:Advanced RAR Password Recovery(ARPR)  Advanced Office Password Recovery  (这个之前下来是准备破解Excel密码的,我哥哥的Excel密码忘记了,找我,然后下的)  hashcat  (这个是之前 那个群⾥的好⼈ 帮我破解⽤的软件,他因为帮我免费破解,估计是抢了群主的⽣意,群主还把他踢了,唉 不想说什么 挺感谢的 哥们)

破解软件界⾯截图:

最后再说⼀下哈,我不是教别个破解。只是⾃⼰遇到了忘记密码,把⾃⼰的破解过程记录⼀下。还有就是现在很多破解的群好坑,其它的不想多说

具体的操作步骤:  之前公司的电脑硬盘坏了,就当重新复习⼀下吧  复制到迅雷⾥⾯下载就可以了,或者直接点击“压缩⽂件地址”这⼏个字就可以了  下载之后解压⼀下,看下图的说明:  

  ⼀、⽣成字典的步骤:    1、下载压缩⽂件    2、解压⽂件    3、打开⽂件“02 ”,编写⾃⼰的密码元素,每个密码元素以“回车”隔开    4、执⾏⽂件“”    5、⽂件“”就是⽣成的密码字典了

  ⼆、使⽤密码字典的步骤:    2、准备⼀个需要解密的压缩⽂件,⽤于测试          3、解压⽂件“ARPR_”,找到⽂件“”,双击打开      在选择过程中,如果就执⾏了破解了,你就点⼀下“Stop”就可以了,      等全部选择好后,再点⼀下“Start”就可以了。      

      

    5、破解成功后会出现这个界⾯:      这种⽅式破解的关键在于字典的精准程度,你需要把⾃⼰的基础密码整理好,程序仅仅只是帮你组合排列密码给。    

    6、最后附上程序的源码,代码其实都贴出来的,⽤vs2015+就可以打开了: