рдЧрд┐рддреБрдм рдкрд░ рдЦреЛрдЬ рд╕рдорд╛рдзрд╛рди рдЕрдиреБрдХреВрд▓рди

рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЯрд░реНрдирдХреА рд╕рдорд╛рдзрд╛рди рдЙрдзрд╛рд░ рд▓реЗрдиреЗ рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рд╕рдордп рдФрд░ рдирд┐рд╡реЗрд╢рдХ рдХреЗ рдкреИрд╕реЗ рдХреА рдПрдХ рдмрдбрд╝реА рд░рд╛рд╢рд┐ рдмрдЪрддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рднрдВрдбрд╛рд░ рджреВрд░ рдЧреАрдереВрдм рджреНрд╡рд╛рд░рд╛ рд╣реИред

рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЪрд╛рд▓ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЬреАрдердм рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдФрд░ рдЪреБрдирдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдПрдХ рдмрдбрд╝реЗ OSINT рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдЧрд┐рдердм рдкрд░ рдЙрдкрд▓рдмреНрдз рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдСрд╕рд┐рдВрдЯ рдХреАрд╡рд░реНрдб рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдЧреНрд▓реЛрдмрд▓ рдЬреАрдердм рд╕рд░реНрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо 1124 рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдирд┐рд╖реНрдкрд╛рджрди рднрд╛рд╖рд╛ рджреНрд╡рд╛рд░рд╛ рдХреАрд╡рд░реНрдб рд╕рд░реНрдЪ (рдХреЛрдб, рдХрдорд┐рдЯ, рдЗрд╕реН рдпреВ, рдЖрджрд┐) рдХреЗ рд╕реНрдерд╛рди рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЫрд╛рдБрдЯреЗрдВ (рдЬреИрд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ / рд╕рдмрд╕реЗ рдХрдо рд╢реБрд░реВ, рдХрд╛рдВрдЯреЗ, рдЖрджрд┐)ред

рдирд┐рд░реНрдгрдп рдХрдИ рдорд╛рдирджрдВрдбреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛, рд╕рд┐рддрд╛рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдорд░реНрдерди, рд╡рд┐рдХрд╛рд╕ рднрд╛рд╖рд╛ред

рдЫрд╡рд┐

рдЬрд┐рди рдирд┐рд░реНрдгрдпреЛрдВ рдореЗрдВ рдореЗрд░реА рджрд┐рд▓рдЪрд╕реНрдкреА рдереА, рдЙрдиреНрд╣реЗрдВ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд╣рд╛рдБ рдКрдкрд░ рджрд┐рдП рдЧрдП рдлрд╝реАрд▓реНрдб рднрд░реЗ рдЧрдП рдереЗ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдкрдпреБрдХреНрдд рдиреЛрдЯреНрд╕ рдмрдирд╛рдП рдЧрдП рдереЗред

рдЗрд╕ рджреГрд╢реНрдп рдХрд╛ рдиреБрдХрд╕рд╛рди, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдПрдХ рд╕рд╛рде рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдХрдореА рд╣реИред

Api_github рдФрд░ python3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╣рдо рдПрдХ рд╕рд░рд▓ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреНрдпрд╛рдЬ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ csv рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рддреА рд╣реИред

#!/usr/bin/env python3 from requests import get from sys import argv def print_to_csv(out_file,massive): open(out_file,'a').writelines('id;name;full_name;language;description;created_at;updated_at;html_url;homepage;fork' ';pushed_at;stargazers_count;has_wiki;has_pages;archived;license;score;stargazers_count\n') for i in massive: open(out_file,'a').writelines(i+'\n') def string_to_csv_string(my_dict): csv_string='' keys=['id', 'name', 'full_name','language', 'description','created_at', 'updated_at', 'html_url', 'homepage','fork', 'pushed_at', 'stargazers_count','has_wiki', 'has_pages', 'archived', 'license', 'score','stargazers_count'] for i in keys: csv_string+=(str(my_dict[i])+';') return csv_string def dicts_to_dictsString(dicts): strings=set() for dict in dicts: string=string_to_csv_string(dict) strings.add(string) return strings def search_to_git(keyword): item_all=set() req=get('https://api.github.com/search/repositories?q={}&per_page=100&sort=stars'.format(keyword)) item_all=item_all|dicts_to_dictsString(req.json()['items']) page_all=req.json()['total_count']/100 if page_all>=10: page_all=10 for i in range(2,int(page_all)+1): req = get('https://api.github.com/search/repositories?q={}&per_page=100&sort=stars&page={}'.format(keyword,i)) try: item_all=item_all|dicts_to_dictsString(req.json()['items']) except KeyError: return item_all return item_all if __name__ == '__main__': try: strings=list(search_to_git(argv[1])) print_to_csv(argv[1]+'.csv',strings) except IndexError: print('''exemple: ./git_search_info keyword_for_search out_file ''') 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ

 python3 git_repo_search.py osint 

рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ

рдЫрд╡рд┐

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕реНрддрдВрднреЛрдВ рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

рдпрд╣рд╛рдБ рдХреЛрдб

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдХрд╛рдо рдЖрдПрдЧрд╛ред

Source: https://habr.com/ru/post/hi477268/


All Articles