Tips & tricks костыль к winrar

дело было вечером, делать было есть чего. xD
Собственно, запускать пассворд рековери под вайном идея неприличная. набросал небольшой скриптец. перебор паролей по словарю. пароль я, кстати, так и не подобрал =\

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys, os, string

class BruteForce():
  def __init__(self, filename=None):
    self.fn = filename
    self.dnd = "default.txt"
    self.pswd = 0

  def extract(self):
    cmd="/usr/bin/unrar e -p"+str(self.pswd.strip())+" "+str(self.fn)+" > /dev/null 2>&1"
    return os.system(cmd)

  def bf_dict(self, dictname = None):
    if dictname is None:
      self.dictname = open(self.dnd)
    else:
      self.dictname = open(dictname)
    for self.pswd in self.dictname:
      if self.extract() is 0:
	print "password: ", self.pswd
	self.dictname.close()
	sys.exit(0)


if __name__ == "__main__":
  if len(sys.argv) < 2:
    print "Usage: ", sys.argv[0], " name.rar  --dict[=name dict]\n"
    sys.exit(0)
  bf = BruteForce(sys.argv[1])
  if len(sys.argv) == 3:
      key = sys.argv[2].split("=")
      if key[0] == "--dict":
	if len(key) > 1:
	  bf.bf_dict(key[1])
	else:
	  bf.bf_dict()
  else:
   bf.bf_dict()
  • +2
  • 31 января 2010, 22:22
  • dbsh

Комментарии (7)

RSS свернуть / развернуть
+
0
перенеси лучше в блог tips&tricks
avatar

BlackTass

  • 31 января 2010, 22:25
+
0
сделал. хотя в личном я думал собрать большинство своих скриптов написанных в прошлом году.
avatar

dbsh

  • 31 января 2010, 22:29
+
0
ну подобное лучше все же в коллективные блоги, ибо там искать проще. В личный блог лучше что0нить выбивающееся из формата, либо действительно личное, ну там вопрос какой-нить
avatar

BlackTass

  • 31 января 2010, 22:34
+
0
Для вопросов есть блог «Есть вопрос!»
avatar

Vass

  • 31 января 2010, 23:31
+
0
кстати, а какой самый оптимальный алгоритм посимвольного перебора? я бы брут дописал бы, хотя бы чтоб можно было вести перебор слов до 9 символов. дальше, как мне кажется, по времени не реально
avatar

dbsh

  • 1 февраля 2010, 03:31
+
+1
начинай копать отсюда прямо:
ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9_%D0%BF%D0%B5%D1%80%D0%B5%D0%B1%D0%BE%D1%80
в вики кстати как раз таблица есть, сколько символов за сколько лет посчитается при определенной скорости.

И еще вот интересное обсуждение:
www.rsdn.ru/forum/alg/3489540.flat.aspx
avatar

Vass

  • 1 февраля 2010, 10:46
+
+1
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys, os 

def unrar(filename, test_str) :
	cmd="/usr/bin/unrar e -p"+test_str+" "+filename+" > /dev/null 2>&1"
	return os.system(cmd)

if len(sys.argv) != 3 :
	print "Usage: ", sys.argv[0], "name.rar dict.txt"
else :
	dict = open(sys.argv[2], "r")
	for i in dict :
		if unrar(sys.argv[1], i[:-1]) is 0 :
			print "passw: ", i
			sys.exit(0)
avatar

Troy

  • 6 февраля 2010, 09:44

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.