Skip to content

Instantly share code, notes, and snippets.

View drygdryg's full-sized avatar

Victor Golovanenko drygdryg

View GitHub Profile
@drygdryg
drygdryg / B.py
Last active December 6, 2019 08:46
Решение задачи B городской олимпиады по информатике (г. Луганск, 2019 г.)
from collections import Counter
M, N = [int(i) for i in input().split()]
members = Counter()
for _ in range(M):
member = input()
members[member] += 1
members = list(filter(lambda x: x[1] >= N, members.most_common()))
members = sorted(members, key=lambda x: (-x[1], x[0]))
if members:
for member in members:
@drygdryg
drygdryg / D.py
Last active December 9, 2019 09:57
Решение задачи D городской олимпиады по информатике (г. Луганск, 2019 г.)
n, s = map(int, input().split())
def dfs(graph, start, visited=set()):
if start not in visited:
visited.add(start)
for node in graph[start]:
dfs(graph, node, visited)
return visited
graph = dict()
for i in range(n):
graph[i+1] = []
@drygdryg
drygdryg / A.py
Created December 9, 2019 10:37
Решение задачи A городской олимпиады по информатике (г. Луганск, 2019 г.)
s, p = map(int, input().split())
res = 'NO SOLUTION'
for x in range(10001):
y = s - x
if x * y == p:
x, y = sorted([x, y])
res = '{} {}'.format(x, y)
print(res)
@drygdryg
drygdryg / C.py
Created December 30, 2019 10:04
Решение задачи C городской олимпиады по информатике (г. Луганск, 2019 г.)
n, k = map(int, input().split())
table = [[True]*n, [False]*n]
for i in range(2, n + 1):
table.append([])
for j in range(n):
temp = True
m = i if (j + 2) > i else (j + 2)
for s in range(m):
temp &= table[i-s-1][s]
table[i].append(not temp)
@drygdryg
drygdryg / WPSPINdict.py
Last active January 18, 2020 13:18
WPS PIN dictionary generator
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
def WPSchecksum(pin):
'''
Standard WPS checksum algorithm.
@pin — A 7 digit pin to calculate the checksum for.
Returns the checksum value.
'''
@drygdryg
drygdryg / PMKIDgen.py
Last active May 31, 2022 07:21
Fake WPA PMKID generator
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from hashlib import pbkdf2_hmac, sha1
import hmac
import subprocess
essid = input('ESSID: ')
passphrase = input('Passphrase: ')
bssid = input('BSSID: ').lower().replace(':', '').replace('-', '').replace('.', '')
sta_mac = input('Client MAC: ').lower().replace(':', '').replace('-', '').replace('.', '')
@drygdryg
drygdryg / oneshot2rs.py
Last active June 9, 2020 00:44
Convert OneShot report files to single Router Scan CSV table easily
import argparse
import csv
from datetime import datetime
if __name__ == '__main__':
table_header = ['IP Address', 'Port', 'Time (ms)', 'Status',
'Authorization', 'Server name / Realm name / Device type',
'Radio Off', 'Hidden', 'BSSID', 'ESSID', 'Security',
'Key', 'WPS PIN', 'LAN IP Address', 'LAN Subnet Mask',
'WAN IP Address', 'WAN Subnet Mask', 'WAN Gateway',
@drygdryg
drygdryg / rsmerge.py
Last active December 31, 2020 06:40
Merging Router Scan CSV report files
import sys
import os
import csv
try:
core_file = sys.argv[1]
except IndexError:
print('Использование: {} файлназначения.csv'.format(sys.argv[0]))
exit(1)
@drygdryg
drygdryg / solution.nim
Last active June 22, 2020 16:44
Codeforces task solution. https://i.imgur.com/iLLPRBq.jpg
from strutils import parseInt, split, join
let n = uint8(parseInt(readLine(stdin)))
var x_roads_asphalted: seq[uint8]
var y_roads_asphalted: seq[uint8]
var days: seq[uint8]
var counter: uint8 = 1
for i in uint8(1)..(n * n):
let t = split(readLine(stdin), ' ')
var x_road = uint8(parseInt(t[0]))
@drygdryg
drygdryg / wps_checksum.py
Created July 1, 2020 06:59
Validating and calculating WPS PIN checksum
# -*- coding: utf-8 -*-
def checksum(pin):
'''
Standard WPS checksum algorithm.
@pin — A 7 digit pin to calculate the checksum for.
Returns the checksum value.
'''
accum = 0
while pin:
accum += (3 * (pin % 10))