Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
daprofiler
GitHub Repository: daprofiler/DaProfiler
Path: blob/main/profiler.py
231 views
1
from colorama.initialise import init
2
3
from json import decoder
4
import threading, time, colorama, treelib, random, sys, os, argparse, json, requests, webbrowser, socketio, string
5
6
from tqdm import tqdm
7
from treelib import Node, Tree
8
from colorama import Fore, Back, Style, init
9
from statistics import mean
10
init(autoreset=True)
11
from modules.social_medias import wattpad_search
12
from modules.social_medias import skype_search
13
from modules.social_medias import copainsdavant_search
14
from modules.social_medias import instagram_search
15
from modules.social_medias import twitter_search
16
from modules.social_medias import facebook_search
17
from modules.social_medias import linkedin_search
18
from modules.official_documents import dirigeants_bfmtv
19
from modules.official_documents import death_records
20
from modules.official_documents import pagesblanches_search
21
from modules.mail import mail_gen
22
from modules.mail import scylla_sh
23
from modules.mail import mail_check
24
from modules.diplomes import last_diplomes
25
from modules.social_medias import soundcloud
26
from modules.visual import logging
27
from modules.api_modules import leakcheck_net
28
29
banner = False
30
# Opening json report template
31
data_file = open('modules/report.json','r')
32
data_export = json.load(data_file)
33
data_file.close()
34
35
36
# Affichage de la banniere
37
def banner():
38
if sys.platform == 'win32':
39
os.system('cls')
40
else:
41
os.system('clear')
42
43
print("""
44
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀
45
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠾⠛⢉⣉⣉⣉⡉⠛⠷⣦⣄⠀⠀⠀⠀
46
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠋⣠⣴⣿⣿⣿⣿⣿⡿⣿⣶⣌⠹⣷⡀⠀⠀
47
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⠁⣴⣿⣿⣿⣿⣿⣿⣿⣿⣆⠉⠻⣧⠘⣷⠀⠀
48
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡇⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠈⠀⢹⡇⠀
49
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⢸⣿⠛⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀⠀⠀⢸⡇⠀
50
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣷⠀⢿⡆⠈⠛⠻⠟⠛⠉⠀⠀⠀⠀⠀⠀⣾⠃⠀
51
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣧⡀⠻⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠃⠀⠀
52
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢼⠿⣦⣄⠀⠀⠀⠀⠀⠀⠀⣀⣴⠟⠁⠀⠀⠀
53
⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣦⠀⠀⠈⠉⠛⠓⠲⠶⠖⠚⠋⠉⠀⠀⠀⠀⠀⠀
54
⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
55
⠀⠀⠀⠀⣠⣾⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
56
⠀⠀⠀⣾⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
57
⠀⢀⣄⠈⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
58
⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
59
""")
60
print(" Get someone's digital identity anonymously 👻 ")
61
print(" Made by "+Style.BRIGHT+Fore.RED+"TheRealDalunacrobate "+Fore.RESET+Style.RESET_ALL+"with 💝")
62
banner()
63
64
# Get the arguments
65
parser = argparse.ArgumentParser()
66
parser.add_argument("-n", "--name", help="Victim name")
67
parser.add_argument('-ln','--lastname',help="Last name of victim")
68
parser.add_argument('-json','--json',help="Print result in json")
69
parser.add_argument('-zp','--zp',help="Zip code (Optional)")
70
71
args = parser.parse_args()
72
73
# Set the vars
74
name = (args.lastname)
75
pren = (args.name)
76
json_print = (args.json)
77
zip_code = (args.zp)
78
79
def randomString(length):
80
return ''.join(random.choice(string.ascii_letters) for i in range(length))
81
82
thisIsATmpTokenListener = randomString(25);
83
84
85
possible_usernames = []
86
folder_name = "{}_{}".format(pren,name)
87
88
personnal_life = []
89
social_medias = []
90
91
# Crraeate the folder for the reports
92
try:
93
os.mkdir('Reports')
94
except FileExistsError:
95
pass
96
try:
97
os.mkdir('Reports/{}'.format(folder_name))
98
except FileExistsError:
99
pass
100
101
# Main
102
try:
103
if pren and name is not None:
104
print("\n🎭 Finding and filtering online identities ...")
105
try:
106
copainsdavant_results = copainsdavant_search.copains_davant(name=name,pren=pren)
107
except:
108
copainsdavant_results = None
109
try:
110
facebook_results = facebook_search.facebook_search(name=name,pren=pren)
111
except:
112
facebook_results = None
113
114
try:
115
twitter_results = twitter_search.twitter_search(name=name,pren=pren)
116
except:
117
twitter_results = None
118
119
try:
120
official_linkedin_search_results = linkedin_search.official_linkedin_search(pren=pren,name=name)
121
except:
122
official_linkedin_search_results = None
123
124
try:
125
avis_deces_results = death_records.death_search(name=name,pren=pren)
126
except:
127
avis_deces_results = None
128
129
try:
130
bfmtv_results = dirigeants_bfmtv.bfmtv_search(name=name,pren=pren)
131
except:
132
bfmtv_results = None
133
134
135
try:
136
instagram_results = instagram_search.ig_search(name=name,pren=pren)
137
except:
138
instagram_results = None
139
140
try:
141
skype_results = skype_search.skype_searchh(name=name,pren=pren)
142
except:
143
skype_results = None
144
145
try:
146
diplome_bac = last_diplomes.last_diplomes_bac(name=name,pren=pren)
147
except:
148
diplome_bac = None
149
150
try:
151
if zip_code is not None:
152
pagesblanche = pagesblanches_search.adresse_search(name=name,pren=pren,zipc=str(zip_code))
153
else:
154
pagesblanche = pagesblanches_search.adresse_search(name=name,pren=pren,zipc=None)
155
except:
156
pagesblanche = None
157
158
159
try:
160
linkedin_results = linkedin_search.linkedin_search(name=name,pren=pren)
161
except:
162
linkedin_results = None
163
164
soundcloud.webdriver_usage(name=name,pren=pren)
165
wattpad_results = wattpad_search.wattpad_module(pren,name)
166
possible_mail = mail_gen.check(name=name,pren=pren)
167
skype2mail = mail_gen.skype2email(name=name,pren=pren)
168
pin2mail = mail_gen.pinterest2email(name=name,pren=pren)
169
elif len(pren) and len(name) == 0:
170
linkedin_results = None
171
facebook_results = None
172
twitter_results = None
173
avis_deces_results = None
174
bfmtv_results = None
175
instagram_results = None
176
copainsdavant_results = None
177
skype_results = None
178
pagesblanche = None
179
possible_mail = None
180
skype2mail = None
181
pren = ""
182
name = ""
183
else:
184
linkedin_results = None
185
facebook_results = None
186
twitter_results = None
187
avis_deces_results = None
188
bfmtv_results = None
189
instagram_results = None
190
copainsdavant_results = None
191
skype_results = None
192
pagesblanche = None
193
possible_mail = None
194
skype2mail = None
195
pren = ""
196
name = ""
197
except TypeError:
198
linkedin_results = None
199
facebook_results = None
200
twitter_results = None
201
avis_deces_results = None
202
bfmtv_results = None
203
instagram_results = None
204
copainsdavant_results = None
205
skype_results = None
206
pagesblanche = None
207
possible_mail = None
208
skype2mail = None
209
pren = ""
210
name = ""
211
212
average_age = []
213
214
215
tree = Tree()
216
tree.create_node(f"{pren} {name}", 1)
217
data_export['Name'] = pren
218
data_export['LastName'] = name
219
220
try:
221
diplome_bac = last_diplomes.last_diplomes_bac(name=name,pren=pren)
222
except:
223
diplome_bac = None
224
225
# Daprofiler check les deces
226
if avis_deces_results is not None:
227
tree.create_node("Death Records",41518181871541514778,parent=1)
228
for i in avis_deces_results[:5]:
229
tree.create_node('{} | {}\t| {}'.format(i['Age'],i['Name'],i['Loc']),parent=41518181871541514778)
230
data_export['DeathRecords']['Exists'] = True
231
data_export['DeathRecords']['Records'] = avis_deces_results[:5]
232
try:
233
average_age.append(int(i['Age']))
234
except ValueError:
235
pass
236
237
# Daprofiler check les linkedin
238
if linkedin_results is not None:
239
tree.create_node('LinkedIN Profile',15418911611515145145,parent=1)
240
tree.create_node(linkedin_results,parent=15418911611515145145)
241
try:
242
if official_linkedin_search_results is not None:
243
244
Loc = official_linkedin_search_results['Loc']
245
job = official_linkedin_search_results['Job']
246
email = official_linkedin_search_results['email']
247
urnid = official_linkedin_search_results['urnid']
248
url = official_linkedin_search_results['url']
249
twitters = official_linkedin_search_results['twitters']
250
birthdate = official_linkedin_search_results['birthdate']
251
phone_numbers = official_linkedin_search_results['phone_numbers']
252
253
tree.create_node('LinkedIN (Via API)',15458156411556562162,parent=1)
254
tree.create_node(f'UrnID : {urnid}',5151515155,parent=15458156411556562162)
255
tree.create_node(f'Url : {url}',55185514542335,parent=15458156411556562162)
256
if len(twitters) > 0:
257
tree.create_node('Twitters',25848145481514,parent=15458156411556562162)
258
for i in twitters:
259
tree.create_node(i,parent=25848145481514)
260
else:
261
pass
262
if len(phone_numbers) > 0:
263
tree.create_node('Phone Numbers',28945181781,parent=15458156411556562162)
264
for i in phone_numbers:
265
tree.create_node(i,parent=28945181781)
266
else:
267
pass
268
if Loc != False:
269
tree.create_node(f'Location : {Loc}',4561561510515656,parent=15458156411556562162)
270
if job is not None:
271
tree.create_node(f'Job : {job}',511515,parent=15458156411556562162)
272
if birthdate is not None:
273
tree.create_node(f'Birth Date : {birthdate}',5881981648,parent=1058151514851)
274
if email is not None:
275
tree.create_node(f'Email : {str(email)}',parent=15458156411556562162)
276
data_export['LinkedIN']['Exist'] = True
277
data_export['LinkedIN']['Job'] = job
278
data_export['LinkedIN']['urnid' ] = urnid
279
data_export['LinkedIN']['Url'] = url
280
data_export['LinkedIN']['Twitters'] = twitters
281
data_export['LinkedIN']['Birthdate'] = birthdate
282
data_export['LinkedIN']['PhoneNumbers'] = phone_numbers
283
except:
284
pass
285
if pagesblanche is not None:
286
personnal_life.append('.')
287
full_name = pagesblanche['Name']
288
adress = pagesblanche['Adress']
289
phone = pagesblanche['Phone']
290
sure_status = pagesblanche['Not_Sure']
291
292
data_export['AdressPhone']['Not_Sure'] = sure_status
293
data_export['AdressPhone']['Exists'] = True
294
data_export['AdressPhone']['FullName'] = full_name
295
data_export['AdressPhone']['Phone'] = phone
296
data_export['AdressPhone']['Adress'] = adress
297
if sure_status == True:
298
tree.create_node("Adress - Phone",2,parent=1)
299
else:
300
tree.create_node("Adress - Phone (You must verify this information)",2,parent=1)
301
tree.create_node("Full Name : {}".format(full_name),22,parent=2)
302
tree.create_node("Adress : {}".format(adress),33,parent=2)
303
tree.create_node("Phone : {}".format(phone),44,parent=2)
304
if pagesblanche['carrier'] is not None:
305
tree.create_node('Carrier : {}'.format(pagesblanche['carrier']),894,parent=44)
306
if pagesblanche['Loc_phone'] is not None:
307
tree.create_node('Localisation : {}'.format(pagesblanche['Loc_phone']),55,parent=44)
308
data_export['AdressPhone']['PhoneLocation'] = pagesblanche['Loc_phone']
309
if pagesblanche['Type_tel'] is not None:
310
tree.create_node('Type : {}'.format(pagesblanche['Type_tel']),66,parent=44)
311
312
if diplome_bac is not None:
313
if diplome_bac['Exists'] == True:
314
tree.create_node('DIPLOME BAC',58,parent=1)
315
tree.create_node('Bac : '+diplome_bac['Diplome'],848151541514,parent=58)
316
tree.create_node('Academy : '+diplome_bac['academie'],848151241514,parent=58)
317
tree.create_node('Mention : '+diplome_bac['mention'],848151341514,parent=58)
318
tree.create_node('City : '+diplome_bac['ville'],848151641514,parent=58)
319
tree.create_node('Source : '+diplome_bac['Link'],45994851726,parent=58)
320
321
data_export['Diploma_Bac']['Exists'] = True
322
data_export['Diploma_Bac']['Academie'] = diplome_bac['academie']
323
data_export['Diploma_Bac']['Mention'] = diplome_bac['mention']
324
data_export['Diploma_Bac']['City'] = diplome_bac['ville']
325
data_export['Diploma_Bac']['Diplome'] = diplome_bac['Diplome']
326
data_export['Diploma_Bac']['Link'] = diplome_bac['Link']
327
328
# Daprofiler check les copains davant
329
if copainsdavant_results is not None:
330
personnal_life.append('.')
331
data_export['CopainsDavant']['Exists'] = True
332
try:
333
tree.create_node("Copains d'avant",3,parent=1)
334
tree.create_node('Full Name : {}'.format(copainsdavant_results['full_name']),77,parent=3)
335
tree.create_node('Born Date : {}'.format(copainsdavant_results['born']),88,parent=3)
336
tree.create_node('Location : {}'.format(copainsdavant_results['localisation']),99,parent=3)
337
tree.create_node('Url : {}'.format(copainsdavant_results['url_full']),111,parent=3)
338
339
data_export['CopainsDavant']['FullName'] = copainsdavant_results['full_name']
340
data_export['CopainsDavant']['BornDate'] = copainsdavant_results['born']
341
data_export['CopainsDavant']['ProfileUrl'] = copainsdavant_results['url_full'].replace('https://','')
342
data_export['CopainsDavant']['Location'] = copainsdavant_results['localisation']
343
344
if copainsdavant_results['Other_locations'] is not None:
345
chars = "abcdefghijklmnopqrstuvwxyz1234567890"
346
number_sk = random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)
347
tree.create_node('Other Locations',number_sk,parent=3)
348
for i in copainsdavant_results['Other_locations']:
349
if i != copainsdavant_results['localisation']:
350
tree.create_node(i,parent=number_sk)
351
data_export['CopainsDavant']['OtherLocations'] = copainsdavant_results['Other_locations']
352
if copainsdavant_results['pdp'] != "None":
353
try:
354
tree.create_node('Profile Picture : {}'.format(copainsdavant_results['pdp']),151515454545,parent=3)
355
data_export['CopainsDavant']['ProfilePicUrl'] = copainsdavant_results['pdp'].replace('https://','')
356
except:
357
pass
358
if copainsdavant_results['Job'] != "None":
359
try:
360
tree.create_node('Job : {}'.format(copainsdavant_results['Job']),154156132489411,parent=3)
361
data_export['CopainsDavant']['Job'] = copainsdavant_results['Job']
362
except:
363
pass
364
if copainsdavant_results['familial_situation'] != "None":
365
try:
366
tree.create_node('Familial Situation : {}'.format(copainsdavant_results['familial_situation'].strip()),44984154114515,parent=3)
367
data_export['CopainsDavant']['FSituation'] = copainsdavant_results['familial_situation']
368
except:
369
pass
370
if copainsdavant_results['nb_enfants'] != "None":
371
try:
372
tree.create_node('Number of kids : {}'.format(copainsdavant_results['nb_enfants']),1654518948741,parent=3)
373
data_export['CopainsDavant']['NbKids'] = copainsdavant_results['nb_enfants']
374
except:
375
pass
376
except TypeError:
377
pass
378
379
# Daprofiler check BFMtv
380
if bfmtv_results is not None:
381
personnal_life.append('.')
382
data_export['Work']['Exists'] = True
383
data_export['Work']['FullName'] = bfmtv_results['full_name']
384
data_export['Work']['BornDate'] = bfmtv_results['naissance']
385
data_export['Work']['Company'] = bfmtv_results['company']
386
data_export['Work']['Function'] = bfmtv_results['fonction']
387
data_export['Work']['Warrant'] = bfmtv_results['mandats']
388
data_export['Work']['Link'] = bfmtv_results['link'].replace('https://','')
389
data_export['Work']['Capital'] = bfmtv_results['Capital']
390
data_export['Work']['Desc'] = bfmtv_results['Desc']
391
392
tree.create_node("Work - Job",4,parent=1)
393
tree.create_node('Full Name : {}'.format(bfmtv_results['full_name']),222,parent=4)
394
tree.create_node('Born Date : {}'.format(bfmtv_results['naissance']),333,parent=4)
395
tree.create_node('Adress : {}'.format(bfmtv_results['addr']),888,parent=4)
396
tree.create_node('Company : {}'.format(bfmtv_results['company']),777,parent=4)
397
tree.create_node('Desc : {}'.format(bfmtv_results['Desc']),78285,parent=4)
398
tree.create_node('Capital : {}'.format(bfmtv_results['Capital']),84566,parent=4)
399
tree.create_node('Link : {}'.format(bfmtv_results['link']),666,parent=4)
400
tree.create_node('Function : {}'.format(bfmtv_results['fonction']),444,parent=4)
401
tree.create_node('Warrant : {}'.format(bfmtv_results['mandats']),555,parent=4)
402
# Daprofiler check twitter
403
if twitter_results is not None:
404
social_medias.append('.')
405
data_export['Twitter']['Exists'] = True
406
data_export['Twitter']['Accounts'] = twitter_results
407
tree.create_node('Twitters',665847555858,parent=1)
408
for i in twitter_results:
409
temp = []
410
chars = "abcdefghijklmnopqrstuvwxyz1234567890"
411
number_sk = random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)
412
domain_list = ['@gmail.com','@hotmail.fr','@hotmail.com','@orange.fr','@outlook.com','@outlook.fr']
413
for domain in domain_list:
414
a = mail_check.verify(i.replace('@','')+domain)
415
if a == "True":
416
temp.append(i.replace('@','').lower()+domain)
417
if len(temp) == 0:
418
tree.create_node(i,parent=665847555858)
419
else:
420
tree.create_node(i,number_sk,parent=665847555858)
421
for temp_mail in temp:
422
tree.create_node(temp_mail,parent=number_sk)
423
# Daprofiler check skype
424
if skype_results is not None:
425
social_medias.append('.')
426
data_export['Skype']['Exists'] = True
427
data_export['Skype']['AccountList'] = skype_results
428
if len(skype_results) == 0:
429
pass
430
else:
431
tree.create_node("Skype",6,parent=1)
432
tree.create_node("Accounts : {}".format(str(len(skype_results))),12,parent=6)
433
for i in skype_results:
434
chars = "abcdefghijklmnopqrstuvwxyz1234567890"
435
number_sk = random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)
436
tree.create_node(i,number_sk,parent=12)
437
438
# Diploma printing
439
440
try:
441
try:
442
diplomess = last_diplomes.last_diplomes_brevet(name=name,pren=pren)
443
except :
444
diplomess = None
445
if diplomess is not None:
446
tree.create_node('BREVET DES COLLEGES',452,parent=1)
447
tree.create_node('Name : {}'.format(diplomess['Name']),1816864648,parent=452)
448
tree.create_node('Diploma : {}'.format(diplomess['Diplome']),45855887,parent=452)
449
tree.create_node('Details : {}'.format(diplomess['mention']),45855847,parent=452)
450
tree.create_node('Academy : {}'.format(diplomess['academie']),45855687,parent=452)
451
tree.create_node('Location : {}'.format(diplomess['ville']),45855881,parent=452)
452
tree.create_node('Source : {}'.format(diplomess['Link']),45896472,parent=452)
453
454
data_export['Diploma_Brevet']['Name'] = diplomess['Name']
455
data_export['Diploma_Brevet']['Exists'] = True
456
data_export['Diploma_Brevet']['Academie'] = diplomess['academie']
457
data_export['Diploma_Brevet']['Mention'] = diplomess['mention']
458
data_export['Diploma_Brevet']['City'] = diplomess['ville']
459
data_export['Diploma_Brevet']['Link'] = diplomess['Link']
460
except NameError:
461
pass
462
# Daprofiler check instagram
463
464
if instagram_results is not None:
465
if len(instagram_results) == 0:
466
pass
467
else:
468
social_medias.append('.')
469
data_export['Instagram']['Exists'] = True
470
tree.create_node("Instagram",7,parent=1)
471
tree.create_node('Accounts : {}'.format(str(len(instagram_results))),13,parent=7)
472
acc_json_list = []
473
for i in instagram_results:
474
chars = "abcdefghijklmnopqrstuvwxyz1234567890"
475
username = i
476
number_ski = random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)
477
bio_infos = instagram_search.getInstagramEmailFromBio(username)
478
tree.create_node(i,number_ski,parent=13)
479
try:
480
data = instagram_search.get_extra_data(username)
481
if data is None:
482
ob_phone = False
483
ob_mail = False
484
pass
485
else:
486
if data != {}:
487
if data['obfuscated_email'] is not None:
488
ob_mail = data['obfuscated_email']
489
tree.create_node("Obfuscated Email -> "+ob_mail,parent=number_ski)
490
else:
491
ob_mail = False
492
if data['obfuscated_phone'] is not None:
493
ob_phone = data['obfuscated_phone']
494
tree.create_node("Obfuscated Phone -> "+ob_phone,parent=number_ski)
495
else:
496
ob_phone = False
497
else:
498
ob_phone = False
499
ob_mail = False
500
finally:
501
pass
502
503
acc_json_list.append({"Username":username,'obfuscated_phone':ob_phone,'obfuscated_email':ob_mail})
504
505
bio_emails = bio_infos['emails']
506
paypal_bio = bio_infos['paypal']
507
city_loc = bio_infos['city_list']
508
is_lgbt = bio_infos['lgbt_points']
509
schoolname = bio_infos['school']
510
bestfriend = bio_infos['best_friend']
511
love_date = bio_infos['love_date']
512
age_bio = bio_infos['age']
513
ethnicity = bio_infos['origins']
514
facebook_l = bio_infos['fb_list']
515
twitter_l = bio_infos['twitter_list']
516
hobbies = bio_infos['Hobbies']
517
love_situa = bio_infos['love_situation']
518
religions = bio_infos['religions']
519
astrologys = bio_infos['astrology']
520
if love_situa is not None:
521
nnumber_ski = random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)
522
tree.create_node('Love Situation',nnumber_ski,parent=number_ski)
523
for i in love_situa:
524
tree.create_node(i,parent=nnumber_ski)
525
if astrologys is not None:
526
nnumber_ski = random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)
527
tree.create_node('Astrologic sign',nnumber_ski,parent=number_ski)
528
for i in astrologys:
529
tree.create_node(i,parent=nnumber_ski)
530
if religions is not None:
531
nnumber_ski = random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)
532
tree.create_node('Religion(s)',nnumber_ski,parent=number_ski)
533
for i in religions:
534
tree.create_node(i,parent=nnumber_ski)
535
if hobbies is not None:
536
nnumber_ski = random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)
537
tree.create_node('Hobbies',nnumber_ski,parent=number_ski)
538
for i in hobbies:
539
tree.create_node(i,parent=nnumber_ski)
540
if bestfriend is not None:
541
nnumber_ski = random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)
542
tree.create_node('Good relationship with',nnumber_ski,parent=number_ski)
543
for i in bestfriend:
544
tree.create_node('{}'.format(i),parent=nnumber_ski)
545
if is_lgbt is not None:
546
lgbt_flag = (Fore.RED+"█"+Fore.YELLOW+"█"+Fore.GREEN+"█"+Fore.BLUE+"█"+Fore.MAGENTA+"█"+Fore.RESET)
547
tree.create_node('{} LGBT Member'.format(lgbt_flag),parent=number_ski)
548
if ethnicity is not None:
549
tree.create_node('Ethnicity : {}'.format(str(ethnicity).replace('[','').replace(']','').replace("'","")),parent=number_ski)
550
if facebook_l is not None:
551
tree.create_node('Facebook : {}'.format(str(facebook_l).replace('[','').replace(']','').replace("'","")),parent=number_ski)
552
if twitter_l is not None:
553
tree.create('Twitter : {}'.format(str(twitter_l).replace('[','').replace(']','').replace("'","")),parent=number_ski)
554
if schoolname is not None:
555
tree.create_node('School Name : {}'.format(schoolname),parent=number_ski)
556
if city_loc is not None:
557
tree.create_node('City : {}'.format(city_loc[0]),parent=number_ski)
558
if paypal_bio is not None:
559
for i in paypal_bio:
560
tree.create_node('Paypal in bio -> '+i,parent=number_ski)
561
if bio_emails is not None:
562
for i in bio_emails:
563
chars = "abcdefghijklmnopqrstuvwxyz1234567890"
564
number_skkk = random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)
565
number_skk = random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)
566
tree.create_node('Email from bio -> '+Fore.CYAN+i+Fore.RESET,number_skkk,parent=number_ski)
567
data_export['Instagram']['AccountList'] = acc_json_list
568
569
# Daprofiler check facebook
570
if facebook_results is not None:
571
social_medias.append('.')
572
data_export['Facebook']['Exists'] = True
573
nb = str(len(facebook_results))
574
tree.create_node("Facebook",9,parent=1)
575
tree.create_node('Accounts : {}'.format(nb),10,parent=9)
576
data_export['Facebook']['AccountList'] = facebook_results
577
for i in facebook_results:
578
tree.create_node(i,parent=10)
579
580
# Daprofiler generate Possible Email
581
if possible_mail is not None:
582
if len(possible_mail) != 0 or len(skype2mail) != 0 or pin2mail is not None:
583
tree.create_node('Emails extracted',146,parent=1)
584
if skype2mail is not None:
585
tree.create_node('[++] High probability',142,parent=146)
586
no_doubles = []
587
for i in skype2mail:
588
if i not in no_doubles:
589
chars = "abcdefghijklmnopqrstuvwxyz1234567890"
590
number = random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)
591
no_doubles.append(i)
592
tree.create_node(i,number,parent=142)
593
# GETTING LEAKED PASSWORDS FROM SCYLLA.SH -> \modules\scylla_sh.py
594
scylla_results = scylla_sh.scylla_search(email=i)
595
if scylla_results is not None:
596
tree.create_node('Leaked From : Scylla.sh',1518451,parent=number)
597
for i in scylla_results:
598
chars = "abcdefghijklmnopqrstuvwxyz1234567890"
599
number = random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)
600
tree.create_node('Leak Name : {}'.format(i['Name']),parent=1518451)
601
tree.create_node('Password : {}'.format(i['Password']),parent=1518451)
602
# GET LEAKED PASSWORDS FROM LEAKCHET.NET API -> \api_modules\leakcheck_net.py
603
a = leakcheck_net.leak_check_api(mail=i)
604
if a is not None:
605
chars = "abcdefghijklmnopqrstuvwxyz1234567890"
606
number_pass = random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)+random.choice(chars)
607
tree.create_node("Leaked Creditentials",number_pass,parent=number)
608
for i in a:
609
password = i['password']
610
leak_name = i['leak_name']
611
leak_date = i['leak_date']
612
tree.create_node('Password : {}'.format(password),parent=number_pass)
613
tree.create_node('Leak Name : {}'.format(leak_name),parent=number_pass)
614
tree.create_node('Leak Date : {}'.format(leak_date),parent=number_pass)
615
data_export['Emails']['HighProbEmails'] = no_doubles
616
nb= str((len(possible_mail)))
617
if pin2mail is not None:
618
tree.create_node('[+++] Very high probability',45451451545545155154,parent=146)
619
for i in pin2mail:
620
tree.create_node('-> '+Fore.RED+i+Fore.RESET+" (Scraped from pinterest profile)",parent=45451451545545155154)
621
if int(nb) != 0:
622
tree.create_node("("+nb+") Possible Mailbox",8,parent=146)
623
data_export['Emails']['PermutatedMailbox'] = possible_mail
624
for i in possible_mail:
625
tree.create_node(i,parent=8)
626
print("✅ Ready to be consulted !")
627
print('\n')
628
# For data Analyzation
629
data_export['UI']['Pie']['PersonnalLife'] = len(personnal_life)
630
data_export['UI']['Pie']['SocialMedias'] = len(social_medias)
631
try:
632
data_export['UI']['Bar']['TwitterFounds'] = len(twitter_results)
633
except TypeError:
634
data_export['UI']['Bar']['TwitterFounds'] = 0
635
try:
636
data_export['UI']['Bar']['InstagramFounds'] = len(instagram_results)
637
except TypeError:
638
data_export['UI']['Bar']['InstagramFounds'] = 0
639
try:
640
data_export['UI']['Bar']['FacebookFounds'] = len(facebook_results)
641
except TypeError:
642
data_export['UI']['Bar']['FacebookFounds'] = 0
643
try:
644
data_export['UI']['Bar']['SkypeFounds'] = len(skype_results)
645
except TypeError:
646
data_export['UI']['Bar']['SkypeFounds'] = 0
647
648
if json_print == "true" or json_print == "yes" or json_print == "oui":
649
print('-- JSON START --')
650
print(data_export)
651
print('-- JSON END --')
652
else:
653
tree.show()
654
655
data_file.close()
656
try:
657
with open(f'Reports/{folder_name}/{name}_{pren}.json','w',encoding='utf8') as f:
658
json.dump(data_export,f,indent=4,ensure_ascii=False)
659
f.close()
660
except FileNotFoundError:
661
os.mkdir('Reports')
662
with open(f'Reports/{folder_name}/{name}_{pren}.json','w',encoding='utf8') as f:
663
json.dump(data_export,f,indent=4,ensure_ascii=False)
664
f.close()
665
666