├── ApiIndex.txt ├── LICENSE ├── README.md ├── hashes ├── 0 ├── 1 ├── 2 ├── 3 ├── 4 ├── 5 ├── 6 ├── 7 ├── 8 ├── 9 ├── 10 ├── 11 ├── 12 ├── 13 ├── 14 ├── 15 ├── 16 ├── 17 ├── 18 ├── 19 ├── 20 ├── 21 ├── 22 ├── 23 ├── 24 ├── 25 ├── 26 ├── 27 ├── 28 ├── 29 ├── 30 ├── 31 ├── 32 ├── 33 ├── 34 ├── 35 ├── 36 ├── 37 ├── 38 ├── 39 ├── 40 ├── 41 ├── 42 ├── 43 ├── 44 ├── 45 ├── 46 ├── 47 ├── 48 ├── 49 ├── 50 ├── 51 ├── 52 ├── 53 ├── 54 ├── 55 ├── 56 ├── 57 ├── 58 ├── 59 ├── 60 ├── 61 ├── 62 ├── 63 ├── 64 ├── 65 ├── 66 ├── 67 ├── 68 ├── 69 ├── 70 ├── 71 ├── 72 ├── 73 ├── 74 ├── 75 ├── 76 ├── 77 ├── 78 ├── 79 ├── 80 ├── 81 ├── 82 ├── 83 ├── 84 ├── 85 ├── 86 ├── 87 ├── 88 ├── 89 ├── 90 ├── 91 ├── 92 ├── 93 ├── 94 ├── 95 ├── 96 ├── 97 ├── 98 ├── 99 ├── 100 ├── 101 ├── 102 ├── 103 ├── 104 ├── 105 ├── 106 ├── 107 ├── 108 ├── 109 ├── 110 ├── 111 ├── 112 ├── 113 ├── 114 ├── 115 ├── 116 ├── 117 ├── 118 ├── 119 ├── 120 ├── 121 ├── 122 ├── 123 ├── 124 ├── 125 ├── 126 ├── 127 ├── 128 ├── 129 ├── 130 ├── 131 ├── 132 ├── 133 ├── 134 ├── 135 ├── 136 ├── 137 ├── 138 ├── 139 ├── 140 ├── 141 ├── 142 ├── 143 ├── 144 ├── 145 ├── 146 ├── 147 ├── 148 ├── 149 ├── 150 ├── 151 ├── 152 ├── 153 ├── 154 ├── 155 ├── 156 ├── 157 ├── 158 ├── 159 ├── 160 ├── 161 ├── 162 ├── 163 ├── 164 ├── 165 ├── 166 ├── 167 ├── 168 ├── 169 ├── 170 ├── 171 ├── 172 ├── 173 ├── 174 ├── 175 ├── 176 ├── 177 ├── 178 ├── 179 ├── 180 ├── 181 ├── 182 ├── 183 ├── 184 ├── 185 ├── 186 ├── 187 ├── 188 ├── 189 ├── 190 ├── 191 ├── 192 ├── 193 ├── 194 ├── 195 ├── 196 ├── 197 ├── 198 ├── 199 ├── 200 ├── 201 ├── 202 ├── 203 ├── 204 ├── 205 ├── 206 ├── 207 ├── 208 ├── 209 ├── 210 ├── 211 ├── 212 ├── 213 ├── 214 ├── 215 ├── 216 ├── 217 ├── 218 ├── 219 ├── 220 ├── 221 ├── 222 ├── 223 ├── 224 ├── 225 ├── 226 ├── 227 ├── 228 ├── 229 ├── 230 ├── 231 ├── 232 ├── 233 ├── 234 ├── 235 ├── 236 ├── 237 ├── 238 ├── 239 ├── 240 ├── 241 ├── 242 ├── 243 ├── 244 ├── 245 ├── 246 ├── 247 ├── 248 ├── 249 ├── 250 ├── 251 ├── 252 ├── 253 ├── 254 ├── 255 ├── 256 ├── 257 ├── 258 ├── 259 ├── 260 ├── 261 ├── 262 └── readme.md ├── labels.csv ├── mal-api-2019.zip ├── other ├── OtherAnalize_DT.py ├── OtherAnalize_KNN.py ├── OtherAnalize_SVM.py ├── OtherAnalize_SVM_mclass.py ├── data │ ├── 1000_calls.zip │ ├── 1000_types.zip │ ├── 100_calls.zip │ ├── 100_types.zip │ └── ApiIndex.txt └── readme.md ├── overall.png ├── sample_analysis_data.csv └── src ├── common ├── HashMap.py ├── WinApi.py └── readme.md ├── multiclass ├── AnalizeRunner.py ├── DTParameter.py ├── KNNParameter.py ├── LSTMMultiClass.py ├── LSTMParameter.py ├── LatexReporter.py ├── ModelUtil.py ├── RFParameter.py ├── SVMParameter.py ├── __init__.py └── readme.md ├── other ├── OtherAnalize_DT.py ├── OtherAnalize_KNN.py ├── OtherAnalize_SVM.py ├── OtherAnalize_SVM_mclass.py └── data │ ├── 1000_calls.zip │ ├── 1000_types.zip │ ├── 100_calls.zip │ ├── 100_types.zip │ └── ApiIndex.txt └── utility ├── VTService.py ├── analize_filter.py ├── ask_all_malware_to_vt.py ├── convert_software_call.py ├── destination ├── filtered_types_file ├── first_7_filtered_type.txt ├── readme.md └── software_calls.txt ├── extract_specific_malware_from_zip.py ├── group_malware_accordingto_type.py ├── readme.md ├── source └── CallApiMap.txt └── take_all_malware_hascode.py /ApiIndex.txt: -------------------------------------------------------------------------------- 1 | __process__=0 2 | __anomaly__=1 3 | __exception__=2 4 | __missing__=3 5 | certcontrolstore=4 6 | certcreatecertificatecontext=5 7 | certopenstore=6 8 | certopensystemstorea=7 9 | certopensystemstorew=8 10 | cryptacquirecontexta=9 11 | cryptacquirecontextw=10 12 | cryptcreatehash=11 13 | cryptdecrypt=12 14 | cryptencrypt=13 15 | cryptexportkey=14 16 | cryptgenkey=15 17 | crypthashdata=16 18 | cryptdecodemessage=17 19 | cryptdecodeobjectex=18 20 | cryptdecryptmessage=19 21 | cryptencryptmessage=20 22 | crypthashmessage=21 23 | cryptprotectdata=22 24 | cryptprotectmemory=23 25 | cryptunprotectdata=24 26 | cryptunprotectmemory=25 27 | prf=26 28 | ssl3generatekeymaterial=27 29 | setunhandledexceptionfilter=28 30 | rtladdvectoredcontinuehandler=29 31 | rtladdvectoredexceptionhandler=30 32 | rtldispatchexception=31 33 | rtlremovevectoredcontinuehandler=32 34 | rtlremovevectoredexceptionhandler=33 35 | copyfilea=34 36 | copyfileexw=35 37 | copyfilew=36 38 | createdirectoryexw=37 39 | createdirectoryw=38 40 | deletefilew=39 41 | deviceiocontrol=40 42 | findfirstfileexa=41 43 | findfirstfileexw=42 44 | getfileattributesexw=43 45 | getfileattributesw=44 46 | getfileinformationbyhandle=45 47 | getfileinformationbyhandleex=46 48 | getfilesize=47 49 | getfilesizeex=48 50 | getfiletype=49 51 | getshortpathnamew=50 52 | getsystemdirectorya=51 53 | getsystemdirectoryw=52 54 | getsystemwindowsdirectorya=53 55 | getsystemwindowsdirectoryw=54 56 | gettemppathw=55 57 | getvolumenameforvolumemountpointw=56 58 | getvolumepathnamew=57 59 | getvolumepathnamesforvolumenamew=58 60 | movefilewithprogressw=59 61 | removedirectorya=60 62 | removedirectoryw=61 63 | searchpathw=62 64 | setendoffile=63 65 | setfileattributesw=64 66 | setfileinformationbyhandle=65 67 | setfilepointer=66 68 | setfilepointerex=67 69 | ntcreatedirectoryobject=68 70 | ntcreatefile=69 71 | ntdeletefile=70 72 | ntdeviceiocontrolfile=71 73 | ntopendirectoryobject=72 74 | ntopenfile=73 75 | ntqueryattributesfile=74 76 | ntquerydirectoryfile=75 77 | ntqueryfullattributesfile=76 78 | ntqueryinformationfile=77 79 | ntreadfile=78 80 | ntsetinformationfile=79 81 | ntwritefile=80 82 | colescript_compile=81 83 | cdocument_write=82 84 | celement_put_innerhtml=83 85 | chyperlink_seturlcomponent=84 86 | ciframeelement_createelement=85 87 | cscriptelement_put_src=86 88 | cwindow_addtimeoutcode=87 89 | getusernamea=88 90 | getusernamew=89 91 | lookupaccountsidw=90 92 | getcomputernamea=91 93 | getcomputernamew=92 94 | getdiskfreespaceexw=93 95 | getdiskfreespacew=94 96 | gettimezoneinformation=95 97 | writeconsolea=96 98 | writeconsolew=97 99 | coinitializesecurity=98 100 | uuidcreate=99 101 | getusernameexa=100 102 | getusernameexw=101 103 | readcabinetstate=102 104 | shgetfolderpathw=103 105 | shgetspecialfolderlocation=104 106 | enumwindows=105 107 | getcursorpos=106 108 | getsystemmetrics=107 109 | netgetjoininformation=108 110 | 111 | netusergetinfo=110 112 | 113 | netusergetlocalgroups=112 114 | netshareenum=113 115 | dnsquery_a=114 116 | dnsquery_utf8=115 117 | dnsquery_w=116 118 | getadaptersaddresses=117 119 | getadaptersinfo=118 120 | getbestinterfaceex=119 121 | getinterfaceinfo=120 122 | obtainuseragentstring=121 123 | urldownloadtofilew=122 124 | deleteurlcacheentrya=123 125 | deleteurlcacheentryw=124 126 | httpopenrequesta=125 127 | httpopenrequestw=126 128 | httpqueryinfoa=127 129 | httpsendrequesta=128 130 | httpsendrequestw=129 131 | internetclosehandle=130 132 | internetconnecta=131 133 | internetconnectw=132 134 | internetcrackurla=133 135 | internetcrackurlw=134 136 | internetgetconnectedstate=135 137 | internetgetconnectedstateexa=136 138 | internetgetconnectedstateexw=137 139 | internetopena=138 140 | internetopenurla=139 141 | internetopenurlw=140 142 | internetopenw=141 143 | internetqueryoptiona=142 144 | internetreadfile=143 145 | internetsetoptiona=144 146 | internetsetstatuscallback=145 147 | internetwritefile=146 148 | connectex=147 149 | getaddrinfow=148 150 | transmitfile=149 151 | wsaaccept=150 152 | wsaconnect=151 153 | wsarecv=152 154 | wsarecvfrom=153 155 | wsasend=154 156 | wsasendto=155 157 | wsasocketa=156 158 | wsasocketw=157 159 | wsastartup=158 160 | accept=159 161 | bind=160 162 | closesocket=161 163 | connect=162 164 | getaddrinfo=163 165 | gethostbyname=164 166 | getsockname=165 167 | ioctlsocket=166 168 | listen=167 169 | recv=168 170 | recvfrom=169 171 | select=170 172 | send=171 173 | sendto=172 174 | setsockopt=173 175 | shutdown=174 176 | socket=175 177 | cocreateinstance=176 178 | coinitializeex=177 179 | oleinitialize=178 180 | createprocessinternalw=179 181 | createremotethread=180 182 | createthread=181 183 | createtoolhelp32snapshot=182 184 | module32firstw=183 185 | module32nextw=184 186 | process32firstw=185 187 | process32nextw=186 188 | readprocessmemory=187 189 | thread32first=188 190 | thread32next=189 191 | writeprocessmemory=190 192 | system=191 193 | ntallocatevirtualmemory=192 194 | ntcreateprocess=193 195 | ntcreateprocessex=194 196 | ntcreatesection=195 197 | ntcreatethread=196 198 | ntcreatethreadex=197 199 | ntcreateuserprocess=198 200 | ntfreevirtualmemory=199 201 | ntgetcontextthread=200 202 | ntmakepermanentobject=201 203 | ntmaketemporaryobject=202 204 | ntmapviewofsection=203 205 | ntopenprocess=204 206 | ntopensection=205 207 | ntopenthread=206 208 | ntprotectvirtualmemory=207 209 | ntqueueapcthread=208 210 | ntreadvirtualmemory=209 211 | ntresumethread=210 212 | ntsetcontextthread=211 213 | ntsuspendthread=212 214 | ntterminateprocess=213 215 | ntterminatethread=214 216 | ntunmapviewofsection=215 217 | ntwritevirtualmemory=216 218 | rtlcreateuserprocess=217 219 | rtlcreateuserthread=218 220 | shellexecuteexw=219 221 | regclosekey=220 222 | regcreatekeyexa=221 223 | regcreatekeyexw=222 224 | regdeletekeya=223 225 | regdeletekeyw=224 226 | regdeletevaluea=225 227 | regdeletevaluew=226 228 | regenumkeyexa=227 229 | regenumkeyexw=228 230 | regenumkeyw=229 231 | regenumvaluea=230 232 | regenumvaluew=231 233 | regopenkeyexa=232 234 | regopenkeyexw=233 235 | regqueryinfokeya=234 236 | regqueryinfokeyw=235 237 | regqueryvalueexa=236 238 | regqueryvalueexw=237 239 | regsetvalueexa=238 240 | regsetvalueexw=239 241 | ntcreatekey=240 242 | ntdeletekey=241 243 | ntdeletevaluekey=242 244 | ntenumeratekey=243 245 | ntenumeratevaluekey=244 246 | ntloadkey=245 247 | ntloadkey2=246 248 | ntloadkeyex=247 249 | ntopenkey=248 250 | ntopenkeyex=249 251 | ntquerykey=250 252 | ntquerymultiplevaluekey=251 253 | ntqueryvaluekey=252 254 | ntrenamekey=253 255 | ntreplacekey=254 256 | ntsavekey=255 257 | ntsavekeyex=256 258 | ntsetvaluekey=257 259 | findresourcea=258 260 | findresourceexa=259 261 | findresourceexw=260 262 | findresourcew=261 263 | loadresource=262 264 | sizeofresource=263 265 | controlservice=264 266 | createservicea=265 267 | createservicew=266 268 | deleteservice=267 269 | enumservicesstatusa=268 270 | enumservicesstatusw=269 271 | openscmanagera=270 272 | openscmanagerw=271 273 | openservicea=272 274 | openservicew=273 275 | startservicea=274 276 | startservicew=275 277 | getlocaltime=276 278 | getsystemtime=277 279 | getsystemtimeasfiletime=278 280 | gettickcount=279 281 | ntcreatemutant=280 282 | ntdelayexecution=281 283 | ntquerysystemtime=282 284 | timegettime=283 285 | lookupprivilegevaluew=284 286 | getnativesysteminfo=285 287 | getsysteminfo=286 288 | isdebuggerpresent=287 289 | outputdebugstringa=288 290 | seterrormode=289 291 | ldrgetdllhandle=290 292 | ldrgetprocedureaddress=291 293 | ldrloaddll=292 294 | ldrunloaddll=293 295 | ntclose=294 296 | ntduplicateobject=295 297 | ntloaddriver=296 298 | ntunloaddriver=297 299 | rtlcompressbuffer=298 300 | rtldecompressbuffer=299 301 | rtldecompressfragment=300 302 | exitwindowsex=301 303 | getasynckeystate=302 304 | getkeystate=303 305 | getkeyboardstate=304 306 | sendnotifymessagea=305 307 | sendnotifymessagew=306 308 | setwindowshookexa=307 309 | setwindowshookexw=308 310 | unhookwindowshookex=309 311 | drawtextexa=310 312 | drawtextexw=311 313 | findwindowa=312 314 | findwindowexa=313 315 | findwindowexw=314 316 | findwindoww=315 317 | getforegroundwindow=316 318 | loadstringa=317 319 | loadstringw=318 320 | messageboxtimeouta=319 321 | messageboxtimeoutw=320 322 | couninitialize=321 323 | ntopenmutant=322 324 | ntquerysysteminformation=323 325 | globalmemorystatus=324 326 | globalmemorystatusex=325 327 | setfiletime=326 328 | getfileversioninfosizew=327 329 | getfileversioninfow=328 330 | createactctxw=329 331 | cogetclassobject=330 332 | cocreateinstanceex=331 333 | iwbemservices_execquery=332 334 | setstdhandle=333 335 | registerhotkey=334 336 | createjobobjectw=335 337 | setinformationjobobject=336 338 | assignprocesstojobobject=337 339 | createremotethreadex=338 340 | iwbemservices_execmethod=339 341 | wnetgetprovidernamew=340 342 | ntshutdownsystem=341 343 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 F. Ozgur Catak 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | ![Total Downloads](https://img.shields.io/badge/visits-100k-green) 3 | # Windows Malware Dataset with PE API Calls 4 | 5 | Our public malware dataset generated by Cuckoo Sandbox based on Windows OS API calls analysis for cyber security researchers for malware analysis in csv file format for machine learning applications. 6 | 7 | **Cite The DataSet** 8 | If you find those results useful please cite them : 9 | 10 | @article{10.7717/peerj-cs.346, 11 | title = {Data augmentation based malware detection using convolutional neural networks}, 12 | author = {Catak, Ferhat Ozgur and Ahmed, Javed and Sahinbas, Kevser and Khand, Zahid Hussain}, 13 | year = 2021, 14 | month = jan, 15 | keywords = {Convolutional neural networks, Cybersecurity, Image augmentation, Malware analysis}, 16 | volume = 7, 17 | pages = {e346}, 18 | journal = {PeerJ Computer Science}, 19 | issn = {2376-5992}, 20 | url = {https://doi.org/10.7717/peerj-cs.346}, 21 | doi = {10.7717/peerj-cs.346} 22 | } 23 | 24 | ## Publications 25 | The details of the **Mal-API-2019** dataset are published in following the papers: 26 | * [[Link]](https://www.researchgate.net/publication/331974598_Classification_of_Methamorphic_Malware_with_Deep_Learning_LSTM) AF. Yazı, FÖ Çatak, E. Gül, *Classification of Metamorphic Malware with Deep Learning (LSTM)*, IEEE Signal Processing and Applications Conference, 2019. 27 | * [[Link]](https://www.researchgate.net/publication/332877263_A_Benchmark_API_Call_Dataset_For_Windows_PE_Malware_Classification) Catak, FÖ., Yazi, AF., *A Benchmark API Call Dataset for Windows PE Malware Classification*, arXiv:1905.01999, 2019. 28 | 29 | ## Introduction 30 | This study seeks to obtain data which will help to address machine learning based malware research gaps. The specific objective of this study is to build a benchmark dataset for Windows operating system API calls of various malware. This is the first study to undertake metamorphic malware to build sequential API calls. It is hoped that this research will contribute to a deeper understanding of how metamorphic malware change their behavior (i.e. API calls) by adding meaningless opcodes with their own dissembler/assembler parts. 31 | 32 | ## Malware Types and System Overall 33 | 34 | In our research, we have translated the families produced by each of the software into 8 main malware families: *Trojan, Backdoor, Downloader, Worms, Spyware Adware, Dropper, Virus*. Table 1 shows the number of malware belonging to malware families in our data set. As you can see in the table, the number of samples of other malware families except *AdWare* is quite close to each other. There is such a difference because we don't find too much of malware from the adware malware family. 35 | 36 | | **Malware Family** | **Samples** | **Description** | 37 | | ------------- |:-------------:|:-----| 38 | | Spyware | 832 | enables a user to obtain covert information about another's computer activities by transmitting data covertly from their hard drive. | 39 | |Downloader | 1001 | share the primary functionality of downloading content. | 40 | |Trojan | 1001 | misleads users of its true intent.| 41 | |Worms | 1001 | spreads copies of itself from computer to computer.| 42 | |Adware | 379 | hides on your device and serves you advertisements.| 43 | |Dropper | 891 | surreptitiously carries viruses, back doors and other malicious software so they can be executed on the compromised machine. | 44 | |Virus | 1001 | designed to spread from host to host and has the ability to replicate itself.| 45 | |Backdoor | 1001 | a technique in which a system security mechanism is bypassed undetectably to access a computer or its data. | 46 | 47 | Figure shows the general flow of the generation of the malware data set. As shown in the figure, we have obtained the MD5 hash values of the malware we collect from Github. We searched these hash values using the VirusTotal API, and we have obtained the families of these malicious software from the reports of 67 different antivirus software in VirusTotal. We have observed that the malicious software families found in the reports of these 67 different antivirus software in VirusTotal are different. 48 | 49 | ![Screenshot](overall.png) 50 | 51 | ## Data Description 52 | * [Sample dataset](https://raw.githubusercontent.com/ocatak/malware_api_class/master/sample_analysis_data.csv) 53 | * [labels](https://raw.githubusercontent.com/ocatak/malware_api_class/master/labels.csv) 54 | * [all dataset](https://raw.githubusercontent.com/ocatak/malware_api_class/master/mal-api-2019.zip) 55 | 56 | -------------------------------------------------------------------------------- /hashes/0: -------------------------------------------------------------------------------- 1 | 2d75cc1bf8e57872781f9cd04a529256 2 | 00f538c3d410822e241486ca061a57ee 3 | 3f066dd1f1da052248aed5abc4a0c6a1 4 | 781770fda3bd3236d0ab8274577dddde 5 | 86b6c59aa48a69e16d3313d982791398 6 | 42914d6d213a20a2684064be5c80ffa9 7 | 10699ac57f1cf851ae144ebce42fa587 8 | 248338632580f9c018c4d8f8d9c6c408 9 | 999eb1840c209aa70a84c5cf64909e5f 10 | 12c4201fe1db96a1a1711790b52a3cf9 11 | 427988b7f16152b0961e20d710f0509d 12 | 4209aba2d2d252b98d98df499206b6d1 13 | 1947b44cc6f64e565d8a4215bc655315 14 | 8f80cf878a3e05c06c9d03646443e41d 15 | aa73b43084e93e741552e5b9c8dee457 16 | 25f0ef9e7742ece45689bc91ddc1becb 17 | f58628917abcbcfb2b2258b6b46bf721 18 | 6de84d91cbacb4e9c7ba1cc5e2a52362 19 | 5cbef8e4ade60ef54b57132762974125 20 | 8c1363154716763edf6ea771607ee98e 21 | 10c027b28bfb9c569268746dd805fa7f 22 | 4604aeb7382c60bf29397ec655a72623 23 | 9a6229ebc128e7c9619409827da7a621 24 | 526ae1b5f10eccfa069f4fd1c8b18097 25 | f7198035cce341240181d005c7b022e0 26 | c7f0b39590e901bb9679cec16ac41d58 27 | 5643daa8318caef7a10d71b1e664aa0b 28 | ffb456a28adf28a05af5746f996a96dc 29 | 5eab41b7e53a17718529854c19f8b3f0 30 | 5ac2992ba6a5227a8975cc0d1ace992f 31 | ebbd225e6fd4eaa7189423a4b17065b3 32 | 2ea416d5be6e34b6e3f4b3ba0f4616d5 33 | 79ee66308cc5459c75752ede5a6a38e8 34 | 9390c3e1001d5231795482d2e00026e3 35 | cd8b49edac751c6205e5a3ed1a3bacfa 36 | 8a802da32da7bbc2a1a2e5ec7a2d9961 37 | 2f0f35cc352b5d6fee61ab69be50738f 38 | 176296fa3ac304b7306328b16e6ae23a 39 | 3054eacbfe7f1e061b0c23ea2de38507 40 | 568e8a988387659dae05b560ccbb24f8 41 | ad3950a601c8babcd473f4ce2fb5e77e 42 | 329a93eff171caa03de136a732ac983e 43 | 249d5ebea5c02cb1811b1958f4d4c32d 44 | 5c269c9ec0255bbd9f4e20420233b1a7 45 | 63510b1eea36a23b3520e2b39c35ef4e 46 | 0955924ebc1876f0b849b3b9e45ed49d 47 | 50bb7904b70bf7dcd4dbda27981cfe54 48 | eed32784e2d578a133b4a11b72ea1e4f 49 | 510f1263e7790c9fc1550887332f4a1f 50 | 46d03cb395d05db670af74a2d99a7cc5 51 | 4dbb1b1a2e64e51734d2b97da8c71467 52 | 263d55d86a53753cdf179b61be79fa3a 53 | 224f4bf73e573a880ad699d1a5b90e90 54 | ba133de104be32fed3b436cff35666df 55 | 594fef6d120481012ab2742ac7b4a7d5 56 | 52b805b8a2df94c6fb3995d25ba42261 57 | ff18f8db4f08718ee44fa1a389c0b5d7 58 | 68da98817a6aa8dcb70123fb13a446c6 59 | 01b656578e9f00f289d4c560fb8f2ff8 60 | 544c64dade31ceaf41d40fe4166eedee 61 | 23884d71515811f9b189aab3cecf3491 62 | 64875cb1b0d3d3bd21815e2fc60d7818 63 | 2009f8b6d969bc9d4071fb8baaed78f6 64 | 50adcb105a14af85c8c354119588ae87 65 | 46395565f2ab1ccc7ae62401516190db 66 | a0bd9e06e27c5964fc40a51a714c6fac 67 | 479e98290857253685c99b3673d9c2fb 68 | 67d55af83d5dac87a739100c41f5ede8 69 | 5f1ad68d81351104be799c1b63ef5f44 70 | a9b3105c13508a3689b8bf5b72b93611 71 | e24857307a446180c283170356a71f5e 72 | 7eec2cdf7d9256068d5a9590135b5d86 73 | 69febee0d862866908564d84b2c939d8 74 | a8ccd8567c3dd46cfc0afc99d4dc0b6e 75 | c54352ed7fc345216262a834000b1861 76 | 0615864d027b6f46731ee3bdcbe24edd 77 | d3c1b641665589473f07587befb949c4 78 | eacf45f83394df196b095feb8ede83b6 79 | f40581e27c69d18f8c12c1297622866e 80 | 805fd59210bce057a51ffff3f624c75e 81 | 8e1c569e1b6d7f33fe5c1f825452f395 82 | 67ffd06fe10b71450c37f2db0d49b1c7 83 | a679fc6909f4b2e2a587c21220ef98dc 84 | ffbad1435c5f4b65f1470aeb2ae70d4e 85 | d34513e480e73a0c92f0c768dff7a562 86 | 1d14f32d905e79aefca1b4ebc7762f5a 87 | 441843afae693b93b6526bcc39d8752a 88 | e4ca6f2f8fde61819352e6222e8b9bd1 89 | 4e92f47f341aa024ede7c8e8410c46c5 90 | 179165ef933a604861cbf46c23c6d983 91 | 058c705488bf0f173fb782d422f4092b 92 | 6d68cbc39fdfa61b1da197c5dd22fe1d 93 | 98f84f4382bd9d134d9c011794d6a408 94 | 790a30ed213e6114f5e01cda869aeda3 95 | 01bc2c90c9b5bffe79a0dd0f08df6ef6 96 | 53dda3ee75d439441bc17e649649b5d1 97 | 819a244f9d09087cc420031a4e2e77c2 98 | 2a8ccabb1f146c0a7732addfc46227bd 99 | 47deb946f702341712ed8cf71e94ef35 100 | 18489e81f607abf54f73647fa9cbf507 101 | 39d062bfec274609b66974ba59bbc873 102 | 4a81987e3a2b38516aaba79a54eb2d78 103 | 13d839ae8ff16b10ce1ccf634a86aac9 104 | fe63121e5f4f5839356a1b98939c781e 105 | 49911860b64328dd9630781845bd5de1 106 | 30bb39844241ed08adf8a6eab9c518d4 107 | 39b37711322459d687170639acd7e65a 108 | 7c2ba72e615732caf09140c7aca58359 109 | 76ad207edc12c4b331dd09d8370bc618 110 | 515be9ab3293c738b7d34868710ece47 111 | 10f0f28b488941c6bfb9b833c1b9f312 112 | c160a842b35505fc620ddcdf7f79a39e 113 | 0c8078e676a7ac7cac5c927db4d45db3 114 | 73dd1a589c1fc3a4758fae05c8766594 115 | c462067444740d52e2e1cfb5acf93996 116 | 4773eb1780cbb228b1b64c5747b055f7 117 | b8249c2fac83ef005a08d733334003f7 118 | 57dd1ac418ac5431adcf7568b8c8da93 119 | 18fa24135f88276c8544980f7f8dfcc1 120 | 17d5fd8c9fe3e6257e62ba50dcc81573 121 | 61fe4d048b53b24dd44d5e1382ef58ea 122 | 42457ee8aeee38c909be5f6b513ee870 123 | bc8c70a8c7fc0ebc62c45677bdc4b991 124 | 0d0e1475b0e143d4c6a6b925507f94e7 125 | b38b248878a073b0ac9aa79974d56ae0 126 | 7d4d38fe3a34787826f2e05951d96fbc 127 | 1cb7b26832aa638dc62f98fbb07f27f0 128 | 366fa5cd37ce347d91674dffaa9b252e 129 | 90d8870b27ac67d852f24614c327a78f 130 | b470ca236a8df2ba5aad3c0cc92ec389 131 | 521c412d097283de6d989ace28f4cd9f 132 | 92fc1cfcc077eba3e22c48245f1c4cb4 133 | bbed995d6c59e9ba396de047c7577657 134 | 42e11d58743c9cc4757691b66504cbf9 135 | 5e3603d46719ea98355c1b155a838763 136 | 9f346d962f908143816d319ae9b6bc5a 137 | 649130b6fd0040d1cfd2e8e995e3d14d 138 | aaf0ba40506703d7ba80af37001cb91f 139 | 0645142dd01109963441a96025eecd67 140 | 3f7061ffe84684555aa4b7a0f8e2720b 141 | 57cb82b051febc9b951f50dc64aad273 142 | a5694a96a0cc2589607a8ebbadf93e4f 143 | 1508a7fe964e522010d016a7b123e236 144 | fafec3f018e6993e60aea175c5553c3b 145 | 06e76cf96c7c7a3a138324516af9fce8 146 | 6c03213f9edef86b94bfccbcaec0c8e3 147 | 1f17c401fd3866e903cdd67de392553c 148 | 101f771f4b31d1e7f58498bce066d73a 149 | 8b6bda4e4ecef3ea0ba96d99fa6de610 150 | 4302fbbbfd9f4d9e74006bbc65a1c80e 151 | e7e9f911c6c5e3f341afa156b2095ce5 152 | da1621f4b702a0b5c34e4838ed557952 153 | 3f55cd993de934ec5254cb6aa708b238 154 | 0f9829e53f83e2c61513b291f7bb7348 155 | 04df65889035a471f8346565600841af 156 | 1afe6f4a55f8892ef60542491a5270f0 157 | 8a15f1763e38c3f0a6b1d4029759b35e 158 | 069506a02c4562260c971c8244bef301 159 | 11bee3e4135498663cc430e86adac828 160 | 2f469ee775a75dcfc25b377261f1b67d 161 | 15f41df4adcb8d228daf8849ddf1f020 162 | 52283d3c369568d1fc277fc1aa21bf23 163 | 0d273f3cf24f8f59f1a4ed7996e97507 164 | d1b4a33dda2043080ca986a3a23188db 165 | 069cec530ac649d49d6f8f79b779368b 166 | 99d1080a8d7ea7e4b538841a50858130 167 | 423689cff77b140f961c7b04459ba05e 168 | aacf8f070e78358200aebddfed865ffa 169 | bec796f15e98d004aee718c7ea478b81 170 | 74758fc14a49ee164ce07117463f8000 171 | 802af751f7fb7b4ae0215363a883538e 172 | 2ee077b652e110580b9e5a33782c4fa1 173 | af2a16fc3dd9fa7350957e98fc52f51f 174 | c0f7400c244bb827e74590f8e365dd12 175 | bceee39b2ac72abc362ec21d1e929f6a 176 | 42c234bcbdbffa4ed47ac03d2b3c11ea 177 | 57ab24f89e83427ef12377d17c494e99 178 | 519013b2393fac65c41f0e0a74eaf5af 179 | 0bc699a7117b3b07eb4d6d1583b13924 180 | ef6f2576b13e9e6863ebb3614c481cbf 181 | 71d304c805cdacc7ed2e26a56b5629c6 182 | 5e810817311c9ebc84a8be5dfa0cf758 183 | 2cb20bdabf2307daebc947448a6b3f7e 184 | 8fbf1c0f7bdd327c80173d8f9bf2b83b 185 | aa7fe1623ecda7dc02eff62838181574 186 | 418b2feb86d3456c564704785525b9d8 187 | fb5cb8af68f3369cfaf823844bf66b51 188 | e893b83e90e08fea2ada5d10fcc40a4b 189 | 65342bf825bf23fa7b58188f8379ce82 190 | 3cd228ea8c3d5112940ba499e32057ce 191 | e20c54dea14c7c546ff7332d2b3efe97 192 | 87ae3e0dee20a9209783cd0405f11163 193 | 17b03ca6fb3e622e697289e08dc220f4 194 | 1a5b41cd039825beea0200c95f835971 195 | eefe546953595cf3b35d82d137675899 196 | 3d1a72bd99c61edca9a579f4f25e62f9 197 | 367a82c0a4379e76fbb9d4d67dea9f3c 198 | 240a6ced101aacec4cdf6684e8561ff6 199 | 3fe0a645161c62846be1197b7f88cbce 200 | 99b8797d3e7fd64ae4071821e5f92e1b 201 | defcbc9f492fe2a00251c4b312f3b8fc 202 | 07c22b87ee5b22247c4a63df6d50fa5c 203 | d40b3ccc8c42f8e89d8ac741ad68aa53 204 | 291ecec4d56fbdf437259152c94e51ed 205 | 33a5dfeeb457f42b33fcb865d2ddd796 206 | e7c7dc7fdd3843e3af5d73f1937da2a1 207 | 2f06b69cc839dffc2559740de84b1f50 208 | ef84dda2fddd7c46e12e31f580909924 209 | 1b46536de8390d53210bdccfc53d2d3b 210 | d12ffc74398ab1dfd891dac99c93c1b7 211 | 0d596bd439c7177a88cbfee0f5737f36 212 | 2aed342920ab53b2aaaaf24cfd94802d 213 | cfbc63e6047dee746afba9d6e6b3fbe2 214 | ed21bb39cea123226b2ec3a46886f63b 215 | 0fe78378ed3d77612ab139a3aaf30842 216 | 72a971bcb4168ab765b64d114cec3a19 217 | 1ad870f6719fe98fccc91c98e2fcc4ff 218 | 3fa93d86040c6d3c9d7796c7ad3fb134 219 | dcd811cfde4c1a3d61b7d617f4b2f3b3 220 | 40347e113013c667d14fa65404a77fc3 221 | 18f1b659b095b40ecd05448009e16d2a 222 | f036a39b0bab08d703adab2a5c13c942 223 | 0648e3483ed760aa63e34307b8696080 224 | 70ae0243133d77d9d9df4194b50bf65e 225 | 063d2c2d9ca83cbe055b5f548b7ebccd 226 | 09664bca3234f121328be6b543ce9544 227 | 770b2482680579279e95829ee6976eec 228 | 1feaa12677ed225e13061a94893d3a1c 229 | 3d3b012621478150c1a092e20ea7c77b 230 | 5f38887e91846362bdf3bc06614db22e 231 | b9a341f545c38cb44962672473c798f2 232 | 47e29857fbdad1cae5292ec03b5cc872 233 | 3983037d61a844b5caf5367c5ed4f4a8 234 | 0bb4c030d36d27ddf748ea9fdaf005d9 235 | 1d5370a65f79a981b10d1bbf572e89ee 236 | 047395207d2e40681592be7f7b33c49e 237 | 561bfa11b82844068728bdd8d0e850d9 238 | 82d636eaf497be7129d202418b44aff8 239 | 414cf7db09132be5de8815355b6bb29c 240 | 176bdd440d4ab246d38cc0391da1bae8 241 | 849aa5cb64de3399bf022773ad9a14d4 242 | 35b296cc4d2e88a3f05f15346932fcbb 243 | 03640062ca1c74ece6ad672c157fbad0 244 | f6f1d363fb50edd184060b757397abde 245 | 3e1a059784bd5644b6e18485e63d7b74 246 | f060e71076d6eeafceca53dceebc2be5 247 | 151eefadf2ff9df1a39141bb79fe64b5 248 | 0e950c7e5177a62efd2aa526f16f6d88 249 | fc99d7ac85e497ae01fd727d6888fa3d 250 | 92b4dd0e08477847669868b7ecd6191f 251 | 96aec59be582f66f2069995c06abc381 252 | 1fe421680b68330d4b7a2f06b0ff2d35 253 | 68b93b8223e12cf1a6d016c514b88cda 254 | e065e3eb9f6a0165fc46a1ca58c5b020 255 | 016634635da04b695e3e701b3e01f507 256 | 860a3e83329eb365e35f9a6a479e6b6b 257 | 1da8d2fa951c5e9ff29e500cd3cf08e3 258 | cbe9a5c4a29899c7a192d029959fc6d4 259 | 4076e8127d282ebf97ab0f41d14a9b4a 260 | 1273959ec2f3d63d168603ffd5b47f38 261 | b977dc2f51da5326b442da286bcb2d8d 262 | c54248453e380b6bf91149e72b014d64 263 | 4744f9d7e42635924712f01af7a0ca5c 264 | cf526a37eac9b3b8eb1ec2fa42586605 265 | 9be8a527fadf9617f5fb237de87569ca 266 | 10b82a587abc6aeee49202308263b82a 267 | 545f9d2c43ed7b0da8ce9b794849008d 268 | 36de9076e870b685c6fbf2a5408b390a 269 | 54dfade8fbe35f93177b4bb8ff9e6458 270 | 55e3ae5ccdf00dd80e1dd4b7c9a57316 271 | a91d37a471beb0ad535626f265a4a4d5 272 | 265f330226a5dc617a7cee146dbd8019 273 | 19b2ba344174c66e5bb4c121d2073b3d 274 | 60758217d71673e4ca55a2a6e249d9c9 275 | f6a1819dfc87c7cb9708bfc92599c872 276 | 4e682e3f1899ee0dbd1579fb255e64e6 277 | 065e6e926afe63030427fcf440ca4e43 278 | 748e2014c87f96551f35fc6282718baf 279 | 2a8bb165bde161b226b639525c70b1e1 280 | 46e0972d64de34b44f0b7298993a1fcc 281 | 6367be99fe566d70af7a4d2d6f05fada 282 | 44da9425edaef3e378eafd7a6151cb52 283 | b20ce3e3f562625b65b1ba6020bfb2de 284 | 8aa172b9dc309e08fb1aadd187ec5b6e 285 | 4418a7bb6f2ad8020c86fc31ccf7b1d3 286 | 38f48d5e73b59390eec7e89725c416b6 287 | 07864aa01de413bb2ab2d7fd3d2747b3 288 | 05fa8cd715c333ff488716e2a9c33848 289 | 3d009fb511b5a750da5bc6e8bdab6e1d 290 | 15936e9c1520366e450f04b7015073c6 291 | bbc124bd4e0bef1f203462e7c931ebc4 292 | c4f4dff6bb2300f7ce5481e4491ddb1b 293 | 4db03af54479ba3cecc52aa632ad45c8 294 | 78acafe43be4ecdbb04bf029d2617703 295 | 70e371aea50fdc5b3e633359aecccd37 296 | 1078e8ae49b7c86373b5acf5e49afb62 297 | 42b10316215304b455de89d2f1eafd40 298 | a7dd2dbe444ebb3647415653fabe35a6 299 | fa8a71849b9724b15aebee38f2d5f0a1 300 | 19a701b57c5636d660e5d3ba03f74718 301 | fb5972310434054fb8a1cb56354caf38 302 | 132e184713a962b76e2141bbbdcaa31f 303 | bb7dca1a8657b1f6b17f1f6c98d8ea16 304 | 13edeb9d76ea45bbeedffd13b1e7e510 305 | aaa0882df09169c896accbe61b2142df 306 | 1276ba56d7f7727e66b4aa9973c15397 307 | 29083d1bf84d947bb56c5725f9338551 308 | 43a15bb4ac6ebc1b2ef515702fb9db83 309 | 3eb4b1d6e8800b596d42b529d8b6c7f1 310 | e81267e824dcf89045a31d1a83048d6d 311 | 3b5751e80475d7f0256909c120c6d0ad 312 | 4b620b82f15d216978496ba118cf2850 313 | f0e25322177b72fc3d4b3189be4af768 314 | 4345aa7d66ec89904e1d1fe573994278 315 | 651956ec02a2a2c0464f95b95dc7fbd1 316 | 085e2ee2cee7c33172587f8acd68fe9f 317 | 70c14a4783023bcc3a44ce4a816ff123 318 | 108c1942a21448b0949287dfd3acde7a 319 | 804ec1eaaa2622ebe95f7c063445da9e 320 | 2936505de479a518089c2b1a4574b8e0 321 | 9650b348177b1a8688241661f398f56f 322 | ac1efb94fae14dd96650b929491e0039 323 | 1a88509fe189b00c0d9fd829b083c4df 324 | c1d879842e9788a5dbfd5c2679f89747 325 | e0175295cf470b680324d7c5d3dc4dd8 326 | 08f517af221f8795bc1c487408eda52b 327 | 21591e240aa6aabb52014f67ae3c04e7 328 | 879c9e8c0c1f77751d0840c19cb947d6 329 | 7e534ba23c7e82d779346effc3f5415f 330 | 64c5db55b8f8e0cbe93c10597e50adc3 331 | 38d5fe7b414a778980fc8caa1339de91 332 | a38b58ceb22b4de9ea995d6cd6bea1d1 333 | d1329fd51603a726d03dfad6fed935f3 334 | db9fe059b4c011e48b3f38e8e59a23dc 335 | 30303111bf8261947fc9501067b415eb 336 | a57944008c5f50a65c0eaff0cdbbe13e 337 | 9709f8e98e686789a38d4a7f1640329d 338 | fa99d2c76e29fc9a8821604f94eb915d 339 | 6125def64d526860df13d874bece336f 340 | 0003c4bf19b275ff5193d4b892387f99 341 | 2edd495b019838a795e5cd669f126d72 342 | fc3f31ee0e3edddb3e6f8faf27b20aad 343 | 198023fa2605bcd1a9e45a7802c567df 344 | 2e07d63b932407de190f3aca1d41fb02 345 | 2c444439c3733c41d8f72d45981dca3e 346 | 1d91bcd70a99c3515b337c628b5b559d 347 | 25e7ab3218cdc688b320c2af11c7eadc 348 | 08e66979eb72a334867d2d96f76abfbf 349 | 915cfd3039acdc2e165ac88be262a89f 350 | 0f84d57ed1bd13662b557e1d582c6975 351 | 1856b138212adfdba1354418b3f1f7d8 352 | 51770bdfd7de4066f987b7cfb952e324 353 | 97ebc3ac562a2c7439a1a9a55a4c210a 354 | 4db5c2166b39430b311090a8d9173dd7 355 | a9bcdb47f2a9873f38433356271fc210 356 | b30ad74ebcdfbc046a2a1ce78cde1f83 357 | 6fb5b69e78196e4cf44be79eddc66613 358 | e5acdee9d94889c70c0935e31ac4a4e5 359 | 4d777a8588818d360751a0b06e8988b0 360 | b5f519c7500ad3cd4f3f192b03add1a1 361 | ee50fed8750d3f448b9d29285e14b862 362 | 6486301f7704e52eef00cea3080ca2b7 363 | 9f5bebaca3a36b1f17e390542796300a 364 | 9b82d576fa3185faee6f0f4ac7b5b29d 365 | 9dd24e4904e308170f84b4cee520ade1 366 | ba76a9090d84e0d034f024f81861e539 367 | 4200646c1bffc986a3b95fd51cd7bfe8 368 | 1d1e994ec0d98f21a278ddcaceeeb8b1 369 | 7fc871afbaecaee44f1861cdaee4980f 370 | f58857118b78a4a9dd337fe5bb2d6857 371 | 1177ec86bdef1bdb40cd612ed5e95d54 372 | 4d946011e24b71f2d7137ee3fc97088e 373 | 11cb457b3eaaceb140f7e7a7a9f9e073 374 | 1be6f842da059da3b1c0dd38d9cce6aa 375 | 7e49c9f7be9b94386e4ff1cfefe38793 376 | 3f722ab81e7b768b7e55287aa3b335bc 377 | 5583d85785ca8db6193d573f226f3821 378 | b03aa974048114a9fdf72b99aab886de 379 | 439cbdd7206a1845387cffafa7ed9e53 380 | 0c78df4c6df19c02f1ad7584d7730a3c 381 | 014940416d57b740e1152f6cb2577900 382 | 3bcda02ae458c34089a871ef4a8f2895 383 | 314b9344b20094d308535e4ecba310bd 384 | 34cada045c219be9a0160080e3c8f815 385 | 899ec070cedd7adc68ef40099a474ffc 386 | 67db284adc4f00362e2302bcafe6ea6b 387 | 15c5b56f7ce113b68866fa317871334d 388 | 42ece161dca3fd0ab467719299201a64 389 | b0b30d5662eaf9c7df29f76c3b3d86bd 390 | e6246c18326f3a301ca5dff3e4ed34fb 391 | f3e349afd17d2be784b0b52702ff4f09 392 | 062ef5e21255a6b1848e6bf072076993 393 | 1a2bd8b1c5ae101ca1112604075cdc92 394 | a94ed2e69a5a78e7c11453a1a6868b7c 395 | 39ec0bd4b38390d9d3040966fae9d43e 396 | 4d20845f3e6bf7035f97aa74a2c8134a 397 | ac7b0b4448677d4cd598b45d3bb42e74 398 | 1c24a6e97df46b5a958400a6edec6a8c 399 | 19359cb7e32f9ab63b77f269800a4ee2 400 | 11d4c52bd5bc0a9c7392cdb22a25b01b 401 | 05f57001f65d185722dd6d292f4e70b5 402 | 18b08223d3b50c2468ec07af1a87a5f4 403 | c6aad27f6e0ca1d19ebdc734c33e5538 404 | 053bce3e7067fd137f839af8773391e4 405 | 21609c45130fbba1a8c07b6fe864bbc4 406 | 01e366e605e530928b10d661e5964c6a 407 | 51edbbfeb3065b238c3406316288ea61 408 | 00d360a72cb7b0e8287eaced1306649e 409 | 5ed4c34b048fadcc786bc792f5ead30a 410 | 718c9fcc66665d60ea5b200dc5de40f8 411 | f015025610ebb29ac030796f536ddb8f 412 | a06f70553250e9edd6ac19b98fc35476 413 | 0c2fbe39fccce7efde09df1a4b2f34d1 414 | 0ba26fa3354ef5b9832423f7eed0d90a 415 | 0e8ee47853ac09c8fe5cf4c92872bdd0 416 | 1a31d541dbf6e4332b6fec7bf5783eea 417 | 99ac225b34845168aac30ab32172ec44 418 | 25362ce6c64e32edef5fedc2181fe35a 419 | 2cc8006f4292e594af37fe7f34c02bba 420 | 211f331c4838b7975ea95a6907f12ef9 421 | ecd426f22e79a41df12f338c2f3267a6 422 | 838aa747fdc4dc59e02ae16f7f387285 423 | 2c01862930607cf453c3ccb6c2faea55 424 | 507cd7e15e51fd482f8858068579c807 425 | 2285661ce3b87dc935bdcafbe1a5f070 426 | 19abeeb0cb9884f626f5c7fe2aa3633f 427 | a5315ac1dbf682f7d227cdf7168e4770 428 | 70af46db27115d7e76d8b712d7425e81 429 | 1670a8d6a8edbba164c9e34127bc6d72 430 | cde941557bee725e91591b09ea5475b8 431 | 29371162586bfe662828efbca229cc06 432 | fda6279f525eac4826f3cb95ba9183c0 433 | 86d6679a149da14172a77d53d60e9592 434 | 6644c31b86594dd1df60c13a66b53c1b 435 | b652588e4390f039a35d4e287e75241a 436 | 6aa743e8b49e5456acefb4368bb32ca4 437 | 56becd7566a2752858a1b9484509d7c2 438 | c1b3c588282aa7beb6f76b2f1d9a205c 439 | 0deec9086d4ed9a1bc3432a9ffffe388 440 | 09905a1036569829589feb849af5c6ff 441 | 2363ef06d03941db99fb986e7a7e8cd5 442 | 30d5849a5c8087a63b8da7e8744e574a 443 | 74b576c3e5fc2abd60ed3dffdcc601b5 444 | 2b2be2d0dbc9798bd86d391b701159cf 445 | aef7e1c107b9b6a2be956130907adc53 446 | 5c84f9798df63625b8b778531d728308 447 | b12b90ab60719353bc7556364c827133 448 | 9d98d4dc226e57706a6891a2794f89eb 449 | 346570eb5a54a4245078cf3f57ba3828 450 | c176c9bb8c41c8b94ce764e2208ec946 451 | f2e153d9e67d20030fa6a65a43e2e819 452 | f29f1a796aa422b380f463b384cc0e32 453 | 757f35a2806f2e70bb7ecf123757c944 454 | 9818ce15931b8e49e70ba643e24d4f33 455 | 27f82632cbfac3cf028fccf148d0618d 456 | 3b2c920814f2e4c5418196ffad025d40 457 | 04eec2f526739304962cfc2a9a9c063a 458 | bf7a2efd8f514a98cafb37507dc18664 459 | 5dbf702974bdc9612d9b7850f20bada9 460 | 9d4206cadcc72ec609ce82ab7ec5134f 461 | 14fa56c3ae95808113556f1eeaa3f246 462 | 9558705d8d3ac3997c9b08f602e60ed5 463 | 7aed0bc750ee4ffcded37d22b5d75815 464 | 1e84d0782eac7ab2d4f22b9266085512 465 | 0ae71159daed698f4a54871c36e84399 466 | 6e0d1e4684a6f20e359c5c55022a47c9 467 | 9419738577ea1aac8de146813eb789f5 468 | d5c63ca3d41e8a619dbb1bc6f35194df 469 | 49da8114f884780d3a6174fa6559023c 470 | 7edd9113fe133023f267008cfd3591ca 471 | 4a871e8a0b876435e436bbf0f00b6fd3 472 | 0ca2bcdd7d654bcf42f81c48f77686e8 473 | 329a742f30d1ae4b7ce1d880f312fb42 474 | 54d87eef35dc009083e281ccf3edb458 475 | db91bb428aa3ef56b9be31b7d5172683 476 | 69f8ec7ab14a5a40a1a012f6801ae7d7 477 | 6918f56c60447f846e3a1ae239f33ac7 478 | 28ecb4f417eebe0ccd6421b13f7c1582 479 | aa8e038f9ab47d025737ae8623c8c1ec 480 | 46234e2fc555171856f8c0f1a223898e 481 | 48e8ec9764da6e5e1d00a5399c552bdc 482 | 9b3dd8340ce9691048de6d0bf36fefb8 483 | 473f349c10b25381fa6928358cd147a6 484 | 349bbe8ae86a270418e44f8bf47f1d19 485 | 3e38572913405d56675a1942480a0ed1 486 | 485e242eb5dd84e37606ed3102216e1e 487 | 49604b18e61b85d7d1f9ba2845f72af0 488 | 363379d138973f7a6fdd8f1b807552dd 489 | 39a02e572807a4773ea32258ca0eb82e 490 | 5e077fcf9ba709730df7e4937a9c982e 491 | bf7b79d1412eb94b97ee8c2f41c3448d 492 | f0491004f165316495f8fbfdb11a9da4 493 | a5037ffa1fdbf08a5079d4f106355a9f 494 | d3c5441bd76834582d002991f2d474bc 495 | 07322da15d1c3ed0f642d315b660448e 496 | a905ada766403507288684f30a85d38d 497 | 5d221276f84f82ef3d50d352e16c2df9 498 | 467bc47285c9cb504f22e140904ba4ff 499 | 77f61c1a65ddd325a3abc6409566681f 500 | 447751af619af673ec0fcc47b0fd43b0 501 | -------------------------------------------------------------------------------- /hashes/1: -------------------------------------------------------------------------------- 1 | 172eea01c2d9da76e2b8c3b5ba32ca8f 2 | 85b57540e6c94551e54dc58745697469 3 | 702f4aea4a3e8e3013e674345f6b25aa 4 | e6659f5316518bab9abe8555d82ceebb 5 | 750627b7404508c06c580f7a6c327edd 6 | 0a2bad52b38fdd4a9f95d20b1f62dd5b 7 | 3e20a792cc0de0e6f6090ef295bda8fe 8 | 23cb370388bb416640aff40615426e20 9 | e6d7fd851f8908d6765e1c4f07838d6d 10 | bfa732405be68cb50381239788ee5605 11 | 046865606e23af76d4c6912093227bd9 12 | 92cd1af49e8e41b7732930384578ef00 13 | 4e46fe6fa23c51bd1db9cd133c57835f 14 | 01714479b951a0b9b0fda81c89ee7ef5 15 | 1a314245672e6c33174eb1a1818cf4d6 16 | d96c60bbcc0a6aff8c134b5f98354b14 17 | 11bf9c8135477eb2ba677835b9be123b 18 | a19891e5b381cb5f17d33cf25153681f 19 | d8af71c2374ea3423e84634aa57a5e40 20 | 059ba6b07c2dad628f91c21978f9be5c 21 | 98e543510e4c09ab7bfaa8894f9be04a 22 | 069a52009452db95b09dbf5d7c2256aa 23 | 8146c82fc0f3a261f92f760715fcb913 24 | 032005e9c33b2b9c142eedc721768587 25 | c23439c52d09eec32cfa364b12e58535 26 | 3b28cb301758da5546081baa3ff515b0 27 | c478ff1ed173f0f60e163fbecfb0354d 28 | 46300520f0226db63ce66482ec0c2ef0 29 | 042d5f3561f8f45e8755d79b372a8269 30 | 445a2585eb4f50832e89af72293750ba 31 | 15069b1432b9bace16b27db5fb19a71f 32 | df979a829853c6fc4ac579d51591f6ee 33 | 3691f6aec4b324759624c76058c30dee 34 | 4967a2f80196a4fe84158d6dd2fd3025 35 | fc3dc4448acf7b496e235bd819faec94 36 | 24b2ad6744ddc74ba1a6ff0eec8cca73 37 | 4d4b43562cc1e74cbd7a18bcbdae0b25 38 | 1d0934b7a44db20edcdab556f47b37cb 39 | 457856dc2e4e74baf00b3c2c9098c82c 40 | 08d3b1800804fa1bc9926c47b895e1d3 41 | 2591a5278d4d76c6a7789a09942636cb 42 | 60bff11d30b6f6c5ee1e40cf69c170a0 43 | adb9bccd2400bd119d4f168e30ee67d8 44 | c2b5f5a13fbfcab1395de8e0df0816b2 45 | 8e6815c8f7f52bc40e83c78938fd0f60 46 | c984640b84327f815a742bf68edafdd7 47 | 5c3e303c25f6f7e72e7744770763d559 48 | 1bf037d598704f67bae693602c140dfd 49 | 7c1aa555d31c3d1666b6358a0c929cd0 50 | f1237691858f3e26129d8a51382c7a25 51 | 5d9b27efe2e4fe5c8988fa6a86e71bc3 52 | e6380f106cf9c1c91f7e438227a21122 53 | 701500ff789449a7fc0160790e84ead8 54 | 0aa0adbe9861349d05ac79ab76ba448e 55 | 12ce2dee5231eed3b53cb2827fa73af8 56 | c74777e2f29adecf0293a4caa4426070 57 | 15245c96901cc1f7ede3d0b7e0d1fd74 58 | 4ae1045306b38a95b715c4694e5e66d7 59 | 363a5a03d4e34c63d4f861cde6929fa5 60 | b0233e53e5eb9adfdd512e60e6593954 61 | 480fcb07b787ac0465e920358d202f5e 62 | 68797de70565dc1dec5778af3f15176a 63 | cd3c7cc60caeee4e5f6447014711d523 64 | c32039c66549e0cbdf35ea600e522a68 65 | 23d8f7553960fa7697ef6ccfecc9976f 66 | 1e1391cbaeb253dc12ecf966f78c7752 67 | e495ee04e7b93ceec74134c628379317 68 | 47a3231d8b08b3828469dfad7c2e1c44 69 | 0bae5847efeca1b9a01cc6dc3fe9e137 70 | 0aa57e74fed6c67730ff77faafbd6ecd 71 | 64e992445834eafbd7fde0085d20569a 72 | a249cdb858db3e35785e283a13b0c2fd 73 | 8188eb40f77a494f2801ccc540f36366 74 | efe2df43241d4c62f321bdbb55a1036d 75 | 262dbd1211c9125e59898f68ea4e6d82 76 | d42b8203a2b406982ecdc73b4ac3bcda 77 | 0822983c580fc433cb982a26c704af67 78 | 36cd1db7d3038d103823f30947d91678 79 | 4b56951f47a34f6024543b43a4c58b47 80 | 7bc2ccf730e9420cac357933ac415d3c 81 | 2b0eb9f601beb945298c2d15b78ebf57 82 | 9dca31c688854bb5fff78a2ae32404ab 83 | 05a4ae6350467a17682cb5d1d769e010 84 | 57001396147e0f2b2d8148dea01ef3e0 85 | dd97d9bbf5fdf4ef359e2ce37a8151c1 86 | df0435666a20acba75a6cf2895b3743f 87 | b60a096d39e4a323be6c97b0df63d41f 88 | 0bb2436dd193df1d098158180522dd16 89 | 3688befe760b161d25598c99e05dd873 90 | 1d6e60f15ebd9cf356a7199f3b6fa794 91 | efdc4eaf5d689dd00577d04b5b56f258 92 | 551dcacd62c5dc262ab8468b7e42061d 93 | 01f0230ea1db2bc5f1c2577a4ff35612 94 | 053544d512f5b22291ac3584a13fade5 95 | e72c68b655c8c4d847bce00ddd3e972c 96 | 3715e94f6a1c874a464d0fcac2053c57 97 | 3621855e6463c41bb61178b2a3ad4f8b 98 | c448417359816f9dea7e642caf124101 99 | 445e3f8a2d1793c0e67a8d4dddd425a6 100 | 03bb6e1aed3e059ac7080734019df784 101 | 97891978a2f0786c83338c233a2bd767 102 | ed257996882ce432329fb0f1e99fbace 103 | 38bf48c01470e998f80d22b94cd093d3 104 | 643e411113dd096ac4b0358da9669e83 105 | cf41ec2f3f410a71194aa9355fd6df59 106 | 4184c6f83cc359ddbcee84a16eac76db 107 | 203e4c441cfb744161e611906bab76fe 108 | 13fb610f509ebc939f2d7b3b7674e34f 109 | bdaa2ea9d18355dd9f299cc1b5a2552f 110 | d583b3534372c0e4537c7eff2d7ed116 111 | 03de216e9af276d3ec062e287199dba1 112 | 0ac9bf25be181e10296b17183acf9b96 113 | 38143318a9a3acb8f4f90971addf7d8c 114 | 5b736f41d7a4b42526b22de0d17b4a16 115 | 2db0bb59e3bbad0c49baecd20e3a69db 116 | 9b3be8a873055edd9de02f6df18914b6 117 | ab03a4ef42fd9f8cd436153fd12e74a6 118 | 11a4a79b21cf7bbd8558770f3590c9e0 119 | 300095b8dca0eb6ae3540a4e5543da92 120 | 09e2f7aeca3e339569155a7622cbbb7d 121 | 1ec9db26cb37f026f7b5e73a44f13f2b 122 | 009ed09bf0adc2177d7cf77c460ab2c3 123 | 57ac633a49a4452c7c5ba6f1a6e44910 124 | 3fd0faab971515ba44e8afd7817cc88e 125 | 95e3601e4bac745136b419a7101491d1 126 | 4725d8272432ccb2416ef407baa48c45 127 | 342ae7154240189255493e8f13b7457e 128 | af4b9e529699a63030cd5f77598904a5 129 | a8b567525583f0a1f3699b9c55fec576 130 | 437c903f8d8390e4eddef1368b78327e 131 | 06c31d5627cbcb2760e932fd81d10a76 132 | 518df034b54188b9481454453e788ef4 133 | 801fc9054b5985077468b1c42cea33fc 134 | f1c114ac0d27c769532b6790d791ed5e 135 | 4c5867e4f0e29dfc71cfee6a7f2619b2 136 | eef123a340ec613fa59030d9311287b6 137 | 05243d56856db0239f07c5a01e765404 138 | 2179f1b03dd708b8572c8871c9cfcbd7 139 | 1acfbe6a50e7b84a24bfce1b9a30e4e2 140 | 5613f5acf6de7dfdfed5c53d23dce20c 141 | a97bc1ace155c78285490def725f0db0 142 | 6b93798908e65b128c2a7c6d2d76bc8e 143 | 353cc4398362dee4fbc5e4d15d41e159 144 | adbfc4726cd40a11c69490b7e19e07fb 145 | cd5f44f911600c73e3311bc07adaa8bb 146 | 04e874855fa879382bc8369da7d34e95 147 | cdb84289b8447e7afb7f246710a3ced7 148 | 1805bc3d8a9eafb21b9f71d66f49e8ab 149 | 4b44aae17f0b98141ad50afd9e70c7a6 150 | 3bd8cbfe93a8816809b52ee4f961b5b9 151 | 196f3acbb3122ca1a1e86dd01c227451 152 | 48ca4d85921904811c98b49ffc72c21a 153 | b5936ed42ef0025692cf3b4617573759 154 | 1a4851e8e8cb81891d382fb16edb1e1e 155 | 94f25686e0c08fa68c42b4749f1aceae 156 | 23717969de807d9226dae7d626b60d76 157 | 02cd5c96e40281353e3bb97c05bfdbd6 158 | 79449470a3577f1709c8f7bc715e9885 159 | 02f58c9069b5508176f28709c82b26d9 160 | 459e3544d124c2ad65dbae01644e3951 161 | 86ff2c81da8629ad373603448510c688 162 | 731fc71206c2e0f456df7d84397e2938 163 | eaec47deae3d8ed88cf6ba7a6412fc65 164 | d9c9a75d80666c3cfec0bcad7f2d8447 165 | 1e96d61e1b71b58bb57c86ec1e3792b2 166 | 051aa4342e92a131522bc37eb88c27ad 167 | 000605d7cbb3928b07f8e7473c820f4c 168 | cc16e7d88ae512b81aa8683923ace8f6 169 | 93e27b2f4144bb726097f3a0af2cb53a 170 | 13053ddb99b42f72bf46f409a47945ac 171 | 073a47c822c04d931048508eb6804eba 172 | 196cb209658b242ea05a32d6e1b1aba2 173 | 692c3c32f0e0dff5abffbc3c768bddb7 174 | f408315c5b5ac9589e398b2bb6937f0d 175 | 57cb3046e53ba9f184a27375c03beca8 176 | 2d398c4e0a7c23708158095d2d9db7e7 177 | df1db8468cccd800fbe65b4f03aece78 178 | 4a037f781245f583de9e9e0f83303b26 179 | a8fe2d663fc4c5f1cf5740469023b0bd 180 | f4f7dee6a0290adb341577b048ae1ec5 181 | 5e576abf36563c72783a1516736c5d0f 182 | 84e346d62060363598cf3d5e79c65b43 183 | 2282da7271fd6c36f08aab36f09ded06 184 | 7642e6bf91429a71486049d818a1c4de 185 | 2995aa4648f08b731ad667331090d137 186 | d7b2d94687096d306c7b690582b3c29b 187 | 144500bdae442777878b50f7c3795857 188 | 356ded94a359922aa8404d6c183ee5d3 189 | 18e3903c86f7801dc1a9a9ea2bbcc4e4 190 | de2c9d66b44ef9492ec7320e1ccd46a9 191 | 80e7f230fea828098c5bf5bb56796c43 192 | 48c83bba5f401958d9c88f135e955b70 193 | 46a781bdda86ce2f1a233858ff52dcaf 194 | 1a90181ff1db1d27b3f267883a743e2a 195 | 8d33c5263f17fdbd3449284af35b3da5 196 | ba6bd0ba8112a75eb70eb301717aa9bc 197 | 2a31cad8d18e98d24046aa858e90b27e 198 | 49ea21fd3468b2f88a8846f790131318 199 | 06f4001a58d726a3ceb9e3d1c4f2d274 200 | 4075d293f1d5bda491d8e897130c7758 201 | 25d932dca39c7a07b0d26da081f45d47 202 | 228cde0d198e3e7e1a0d37e9e3e869c7 203 | dc8d5fa5b2e89b78aa9ce74cc1e27a91 204 | 316f1f71543bbdd8284bbcec7dfe9816 205 | 434d754558fbb152ce737057622040e7 206 | 1560b56dfd84514876f97d45af0c53ee 207 | e6a3d0eab1bdb4e94becd6cc2bb0171f 208 | 5474c5f27151986487f034e5155766c6 209 | 31a4877c8aae9f415eb556a45a4ec60f 210 | 8cb7da17e2ebcc7a9598ec1259c80ca3 211 | a476e484c875076c37485c37b9625e65 212 | 168445cb6266790d6a22a9454e56827f 213 | 0a2e942bcd4bf41b40e44c1658348ba4 214 | 21408ca22aff3683bdebcfde78c221e7 215 | b8d253afb87f624da84bc6b78546efcd 216 | a14dbdacfe411ec1e3d34962875b87bc 217 | 0d8f580528bc2877dbcf0a11ef8c28f4 218 | 207760b30797ac489ef3c90d4ac04194 219 | 390592785837d5046bb87ecdbcfdfef6 220 | 7d01be46ade379532faf47b7901eac57 221 | 5403183bd4e477f3aecdf54b2e2efe9c 222 | 4e64c9d394548854a526802c9d46a19f 223 | 6598d078960a8448b8aee55f4624a065 224 | 0c9809a1976e949ebcb95751fc72dced 225 | ad808d76c15c69b93d360ec419352bf0 226 | 761ce99b849abad44dd2371afcbf2a41 227 | 03c98a6bc65c57ccd2420ddd7bcdbae0 228 | 83dcd06d36c4851f3fffe6f0f56e4433 229 | 091bfb47538f0fd842383672a4f5ea6d 230 | b68acb0ff49fb26f872262acea5938af 231 | 099ddec252a040d2b0c191c9179af68f 232 | 06c8d7140a69b9e0ac4303a90bf38dd2 233 | ff6d4ec0a3011c941c32d982f37eaa32 234 | 814376c0666cf8168084dd1abdd65a78 235 | 0b36b73112ad1e01e31f36cd0e7a3bfc 236 | 20a3e80ccb2476da29057b7c11b98c6e 237 | a16b88fcfee162c85fb0dadc3d2da4ab 238 | 8ce34f42e0b441c75a350bd55bfc2cd7 239 | 8b6f04ceaea7544074622e4682236bcb 240 | 70fa776a4c40e6de5aac40d8fd8953b3 241 | e8ee28be74b8484da13d0beb09b3ee2b 242 | c5508a0f8908e599218acc32d7feffef 243 | 2763c00e92b6c4e55546115b0bbf873e 244 | c1972e84d8e341766d2515576854149c 245 | f0a2cd7f7be29c9f0151d0a3e621f547 246 | f02532ad71809b79f2a12a0370cbb5ec 247 | f2c8c35c94e57df347d8d0ff2c626947 248 | 3ed4d0331b61b2f35fceaac594278ead 249 | d3c4fde3a1afe3ec18c711489a487a30 250 | 13cf3eda189e289d89670a33fd6f2bde 251 | 99b8699464bf7d9d3bc38c2e426fdc5f 252 | 19626340f2112d006602e645a3bed672 253 | 1c15db8b9c324e9217e4b82860932a40 254 | 865bab28db8865e926d275d256f09f2a 255 | 2f695c7a5cd8fa39a99d2a788131aac7 256 | e660db110180951f8a8605e7a2d1717a 257 | ac92e691b95cf7054184b48983ba220e 258 | c7cc0bded617819cd73476e285c42b0b 259 | 6951b117e07ccf8f2c96ea5b207908c3 260 | b9d7d08a5aa8bc66036225f7f9a99731 261 | 09d785e67805d00108abd6a69fd31ed9 262 | 53d3cc54f784562b386f324e1ae3f40f 263 | 110efc35e9ed33d47874d6fb8191fd62 264 | fa050b2c70182ef9f6ec02a5dce8ad8e 265 | 018f7d080d3cd363ab90f1d22804cf8c 266 | 1cd7a22978aee86d4046dce1754425de 267 | dcc28a59385598f44be2fb7d5b0e2e21 268 | 2b81d43456e200bbfd9b48f3f8634b94 269 | 6306b58bad6e2d214bfb19d63cbc915f 270 | a80714e1d42cbe1c77ce5f40aa56945f 271 | 155299fa4b03229160e6d25f0c9c747e 272 | e2ed4ff246cf22a12c6db9ed86a7d46c 273 | 262fa6d2fef4c24b1e235808a5e1c97d 274 | 2a6bc53216e1e94ee5a24f31aea891ae 275 | 836133c45afdef647541c4d3258c889d 276 | 0bfd76280c0c5fc03469adbbf16e4afa 277 | 644d3a035e40302a1349b56077b4e79f 278 | b16404777b58b35ed35c5f3b9a5fcbbd 279 | b8881831af5b6d25f9379bcf31fd0206 280 | ce636f4fc46284098c98c28f90c90dc7 281 | ec2633b03d9473cfccc8265ad5d55c34 282 | 187e26b086a4bdf5387df382a8dcf119 283 | 8cec6102add1f1dd8640424b67860b73 284 | 49cfe7feac4be19cc0d689dd990f102d 285 | 56d286c1ab399fad75bec270c80f5e25 286 | ebc7e461e52c172a20eecda6eef44dc2 287 | 0665b567f49eb197aa97288905968e61 288 | 608ca296eaf5dd23ca43dcac8f6fa66c 289 | 67a50aac362d9bea4ab50c36d9bfbac0 290 | 159a04d58c132458a97319073a57ff01 291 | 2d04c27813e55bac7fb839ae11d0b45f 292 | 4491cbc608de5c4e77ad5a307909363a 293 | e1b2e114380545f969db602545ff80e0 294 | f42478ca6f46223d521df1a5b13c5c5e 295 | 120c5e5e90779195bd5ab3a157429ace 296 | 1e59ab7661ef15a3ec4a6644f41a6906 297 | 746e47713c3bcc44d09311014d317516 298 | 2b109801bde2f5ae3a002cd7ffebb131 299 | a6f8a2bee9758dca3a8f914f0ff9d0ea 300 | eaa017bd1bdf6a8124e974c2f288807d 301 | 2e8c39512732528b0888418a9dfc14c7 302 | 21047b82fffcdacd2b0dc74db58e2a0e 303 | 910e5b91e67518abb3c0c90304500514 304 | 3420ed2d864ebc9a2d0992396fd75f36 305 | 06a398e2c5cb364d92b4eb39c40fad9b 306 | 552880ca106c406bd434805fd2656d2b 307 | 809fdbb9a16860ff35edb38d4254c869 308 | 3c721945e810144ac0c445ce929cce9b 309 | 9392806f2a4633ffc9490a48bb40f46b 310 | 79092a5046f9fc17c34935266767f594 311 | d16c1fb4a2ea0c1c57f12687d60ce6c6 312 | dd1b208efbabc8282498ca6c9d794dbc 313 | e8d65307c7efc1df8eba936416d54152 314 | 83605ca82e49819b5ef68698853e3345 315 | dc2de663a0a6f081fc9f47d6a3c3618d 316 | ee704ca370cd96f349fe5c6378fa65f2 317 | 390a9613a2e3ba20c46cf149eeaf3aa3 318 | 01ad440830a06d4729dee330e47d3b9c 319 | 05a6b6290e3368227c8f3e091b04dcdd 320 | 096be15b8e9931a5426208f1c43d683c 321 | 4723a29aa786c466988e2d6e7cbc80fb 322 | 00c61647e8b9f45c43c181ee46f115d6 323 | 9be4490978e05aa32a89c701ddd7185c 324 | 06bcb92be70736cbc6f06c546adf03a9 325 | 68785a39c9684842f4d519ac248f6068 326 | 297c68ae8a85c36b1eb8a59f646043a8 327 | 3a150d98f06e6f8ec29b8ab76e065cd9 328 | 0149881d9727ce08ea3b7a1233a6418a 329 | 27045f38ce2e44fe5a7739e9f8af51a0 330 | 17e5a8cf47deeaa7944163caf436abe8 331 | 3f589e56131a159b824fa39a8b9f4e50 332 | 151ff967c7e739cd6b5a6065035b1f79 333 | 05d37e89554c0ac86d2485aa5a185f4d 334 | 04d15da2023b809a34b4ee09c78f7932 335 | 798df883c22a92349465d7090fdf80a7 336 | 29745cc5f7787873cdf7619743bed0c1 337 | 74cc8bd7fb0489e7f913a57bf1121a56 338 | 72e0e977345131aca0ccf6752883262d 339 | 4ba227efbd24e4b043cd4d3de9a2d394 340 | 71111d1d0af7cd110aa968b395502291 341 | 3b1f39d36faf1ca871b23b12a901b3f7 342 | e96dcb5f07c46a273d77675fc13e0744 343 | 9c3afcc9bd7cecb5fcbdf3a12d5ca5a2 344 | 9febe7f93c945f23483d661ac8bf26a9 345 | 40264c3e2634a0914c657a995e710151 346 | 7829ec1bf7755385502f4b8e27259082 347 | 2ec49a447606a458b3bfcadf621b3a40 348 | e4a89b707189b40338c424246c69bf0a 349 | fae2e726f8b2ff5230d8fb2554ba3d69 350 | d37c509f1cb8ff7f8f6f309b7a7da8fd 351 | 03962059d4848ad145cd10f314b5985b 352 | b95117fa8b0cf6f496fb2e3b13f02c0c 353 | 4bdaf81ccead8977f427b3b4b72e67d2 354 | caae0d921d94d889a66eb4134bc40b24 355 | 19c00f1b322aef13fcdc070e075493e2 356 | 1e09819e9c6ab9f33508b7aaecb8df41 357 | 73f7d8d9dbdb809ca5614459f273f40d 358 | 498a851beab85a41e977ca308a12e55d 359 | 6b8159abcdc9ea66a26b82e069098cdf 360 | fd923d9ceafbbc6cdeb789cb7bea63de 361 | 06cc334cb17094c55884073245ae6f28 362 | 18a4cfa41b007b0eff1ae136cf889d2f 363 | 0cf6f1776aa63eaca1587836322b48ce 364 | ab01b277d3e90ea5c76f7e58f1391f11 365 | c85ba69a637ec1fc186f9ffbc63f9285 366 | a976e41e67e579b56459c15438fbb141 367 | fdf8313134e5fb304ac9261b83592fff 368 | 28b0bd632021aafa2969fc26ca9e5822 369 | 4c364e92f8dd42ec2f2471684edeb201 370 | f007b69a0d05168acf0ce36165224ece 371 | 357b1acf43b66a0d0b891414efd5a3de 372 | 282341dbef718356240a3ecca991efb7 373 | d7116f7ad98c3b96eb72079216631861 374 | 1597aed37d4b2838dd3b337ce3e2e47b 375 | 50200a1564e30a0c82e000f9d00a4ce0 376 | 28752978ad4ba704964832e5d12193d6 377 | 94fafe0f6a9e5885c088ef93e8a0948a 378 | 8a06bf6484d461af6426b9f23b031512 379 | 03ed62192001da26d628fc11ba3ad040 380 | 82d11e4848ec9bcce90d4c2baec1c05e 381 | 763ab57e9834b1370f02e9ad9b88093f 382 | 8a912b50b6574a58056dfba4f08868b3 383 | f2587def8bd5508230feadb7f00eb1cd 384 | ff683adc6fc241d9d9fdacba27368599 385 | d4698441dae48bb31b35aa2f5f7d78ab 386 | fa2162361bb7529a221e39968353a5b7 387 | 8f5696c7f4ddc82b6a0a79879118d3c2 388 | eab949bcc5ecaac2f8175af0935050c3 389 | f1e984a4c7761dbbbbf37c2b749c104a 390 | ef0045d645a41653cc1d7149a08bfe74 391 | afc6cf5aad6c41fb6fe8e65b7ac4a1ae 392 | 80d0df180235d0ce116931304714113f 393 | 4fdf7c686eea0ce23db2e1a9cb859bbf 394 | a9ca7b73fef591d709192dc10440a453 395 | 92dd586d6c7e7427c42ea0e5906a70fd 396 | c0386dac49ac4beda9417913c9bf2e2a 397 | ad9f0d8585cb4528e32d8047f616b06d 398 | 6f9ae623ded3da3856486bafdeb3f49d 399 | 3f71ea4979ff9d4259751e6c6d68e1e5 400 | 37bba0c8f252c1c6fb43b108a77f12b0 401 | 4af2032320b40418c5d4518b4d5a3180 402 | 05ef810ad9423a365d2efa72e7d4f03c 403 | 71de5577176997d6b0842d29afa563e9 404 | 56a74ad313a2d8bada936111793eaf19 405 | feb8178cca131ebeb83c3cf0031c75ac 406 | 0667b947c3255351763d1efb502dc70c 407 | d69d1a067bf6e9db61c07df2cd5cbee3 408 | 5806687a021d8cad434fee24219a16d6 409 | 4aa77c170c177a737dd3bdf018d1bd66 410 | 4916fcaa918d2e143623d987af12cbf4 411 | 355b790ed87edd8220be056a2dc5dc40 412 | 224f8029da1d9c4201dcb18e4c46544b 413 | 5180955e39dc56704ff7d44d766bc99f 414 | c4090503718149056cb9ce62a138d8bd 415 | a112705e6edb65cba6ee6af4ccc14c3f 416 | 955bc3df7451a8efce0224559d6f5c59 417 | 3679472f652268b462f8d1e6fac7429d 418 | 2af6d16d4c7393147a5e1729e537bca9 419 | 0574d54c38ae99117f52028921447784 420 | bcf323996d4b7a307f3a71fff6c00930 421 | 467e3bdeb60ec45e20baac40e87b7848 422 | 2e6b7d47be5dd64d6922a18f10aef491 423 | 8fb1fdde0c4cbf78afa392d24c2bc675 424 | 15ee0450126ba44111e791759a6154f4 425 | cfd62ac94053bfa7b9ccf0882d6d3745 426 | e6310c745347818ecb72a8c24639b2c5 427 | f1e105e74eaafa700c72d45b8a371411 428 | 6262043b563c50ceb302e0f2c15d0a28 429 | 2455897a907022f307eb323c91faad41 430 | 01037b0ba3337bf9c1ca69cd4be3189f 431 | 435799fa4770420da742406604cb57af 432 | f38a2d01260ace376a8bdb46b12840c7 433 | 28f6c17f6e0807bfd95a7955382c0fd3 434 | 52bd05369d892ca9b3873b64acfe0241 435 | 0314f02152cfb1d30cdb54a43efac09c 436 | fbeb8119129f42ad03c512474ec4be08 437 | 25a4d8754af3666da63ae6bfcf114031 438 | fe3151666b19cd8302a47b1b54664bff 439 | 2f0cd9a395976775a2bfe9fc6a08c8a0 440 | 2de76390747a6732c6b3ebbc2a3702ee 441 | e9a308381428706de01d1784898bc4e5 442 | 42f69ad7149094b90dd4b509e2cf9aaf 443 | 4b074f407385b378d93ce464833cf90d 444 | 289e9700fa34bb61fea4eb54fd70b46b 445 | facbabbac9bc518405685abebe24c2d7 446 | 110f58083f56902cedf0f613854c51e4 447 | dac7192599bd3718d357f124c70609cc 448 | 1b9c41d7a3c96430c3227fca80a41e9a 449 | e097b67759d0d3ebd4d03e10e90c70a2 450 | 307afaf3077d7cec0a71f40cfc35ef90 451 | 0efee59ab9bf7804b40d832a397a325f 452 | 0fa555f6f375c1e1a75ce09ef61fd8b5 453 | 17f2cc39e38cec35840550fe41895de7 454 | 2295cb8d46074623ba903432611094a2 455 | 6379308f4007c253112a0acb0e60e48e 456 | a5732384195ef0ffd688279fa6cb067d 457 | 11757fc4433dd0d818784da3e6231121 458 | b8926c2299f121a740fe534d96680e73 459 | 979c904d8a74c996e3b5c4ee8826e9af 460 | 32b1e5c1b132e3498b7970a33c7329d9 461 | 40172413d1fbfb81d3ef013908a0449b 462 | f8c5ea49a9394e15f152c6fa84d60eeb 463 | 4bc8e1db7c2e52c7795049e6286c0710 464 | 501c5d6c088e2e6ccf6a12e528bb34c1 465 | ab5c6b95b1321b793ea421983b16b476 466 | 8cb314ece7fab02b630667b0ae28e4d3 467 | 09e133579189a9a56ff9c34155592e69 468 | 29bff1ab6e3f70d4ba4d38254c248cdd 469 | a650e243366359a594e56e0cb04ff9cd 470 | 7edb0518b25bac68d57c4b218b3770e8 471 | 688e84ff6500c181cea48ed9f11b7d7b 472 | 67262ff93facdf1443e2f42bb6a639e4 473 | 06cbb502783a99076de13b0038fc1ef9 474 | e6d8e27ec66e798ca353fe709e6bc059 475 | 08885a98b9963ead4e5ebe4378a2f8f3 476 | 44e71ffeb1c6b5d9f4e4bfa4955388ca 477 | b50038ccc77c2625082308f4ca10b6b8 478 | c245840f7ce24d087f2b7e98e0b29fee 479 | 16657c8343d8ed61e7d7a40a1ec5baf3 480 | 22ce59a5bdb25f6f82442fe6fa515815 481 | 3be9a06e74aebef34dd60e678729cbf7 482 | 28b6359303581651c1f834cfb0c23b07 483 | bfee0d3c8368e83b2572507104680423 484 | f7d7c8d982a18fd094c1b2f8b443e0c3 485 | f16cc6c3ab08712b67229467991e6f8d 486 | a27e9d3f53fb9f402e5b0e95c3c3d6b0 487 | abb947e154ad34c1b50a7cd44ede524d 488 | 16176c4c4ce7d7156ff92c1d764fa48a 489 | 1aaf2e057c5f36f4053b1f9398c2f065 490 | 33f7e9f3d60a6be61c06b78c132bb704 491 | cbb97c62098287ed2820d4872dfeaab2 492 | 5ff223389558a80342b25ba2f4cc421a 493 | 7b20a2f7f89c1cc10597115f0dd39cbe 494 | cd8b8b404b33b070b979d04f272e72f3 495 | d9d7ea9750d6352963ddbc843f9e832b 496 | 04ac7dee9a238d984f6d480da96b1ec1 497 | 7f1fbddf0e33211f016d2b0a87737a8b 498 | 41e79fd66ae392aeb6c4de704e634b77 499 | 5de83aa67b8a207a524362faf95eb6f4 500 | 358b7d43907a878dcb1427f795d5488d 501 | -------------------------------------------------------------------------------- /hashes/10: -------------------------------------------------------------------------------- 1 | 9b29553d633b9e948a500ca0561c5a98 2 | 6babb404137d549c33383adae8c1ccdd 3 | 155ee94965d2ccc3649de60d2ce43594 4 | 8d53b1846d003d92b0d6bd0f4fb3e6b1 5 | 3a4b3d0634399184f2ab1bc20972748e 6 | 410bab8f71ac97c60c5cbc1988aaad76 7 | c7994bc275d6c04c9cfb32c3396908b6 8 | b99e356ba8c0c49cb6c1877ad4cb82d2 9 | ee694f0a2260f4f8d6b56986fabb0192 10 | f2c803f402f626161c732e6f828a05ec 11 | 6c0770f581e3c1e6b50746035baa9c49 12 | 45dbc83273dd710150204c4c23cb9721 13 | 0fccb12f29031b767fd3ae86845587b1 14 | 0a7ce0ce04d97f1571a715f6d0399192 15 | b5c534d4e6d29ae1e02d1dc7121d5200 16 | 8d90a48d3c7ee281d20a9d3538fb5baa 17 | a7f5a2813f142b5325ce3082d78d6c44 18 | 74da3e75f7bdf4d4e42cf820ce170212 19 | 2a0b92da7c69490867d300b09d0416a9 20 | 93bcbaf833b7dcef01e947a900d46a5f 21 | 309cf3de40c8ffd041dbc158d6a78fd4 22 | 02d1c2ccf3062856ba82734d04bc5de6 23 | 8f119f18a641f641876a00179db3be07 24 | 5b876b4e879057b6af792b16b2e099bc 25 | b0b0f21a224f9a865c87cc0dde697f0b 26 | 575c89a555499c1c9920ab20d373cf45 27 | 353163ed7a501c8dc2bfa4002f91aa00 28 | 2cf1dfc75f231c321f2331de5090b1b7 29 | 33a6f754963e1f98b422770debaba631 30 | e4d3dc3753c5ec1a00d76a2c1e3f3831 31 | 98586c9f7e7eb78d9648daf9e81ffa7f 32 | f7000fd799526344f80598e67108d94d 33 | ad7119c72766e0ac03d7ffdd98e05695 34 | b2c7f20d03cafbf77e11af94fa59b649 35 | 86c7dd3bd0ba5c6ee6e0233d281fb891 36 | bdfa5f418e59fd7324f3f31822da6bac 37 | 1aeab660de3e6768b6883ea3bd459c02 38 | 3d532a7a7cdcff4f3192092ab5fea314 39 | 1451add5c8c8d5f459e3365594b1dbaf 40 | 33ffccdcd109c527210061e0621db7f5 41 | f983260e570a2527db17d4f98cd70684 42 | 195cdd8a3625c53a79829dca391e5499 43 | a0357ca42999ad2fc16bf07526b3f696 44 | 87388ec195d9fc548fea25ce8ed616bf 45 | 2eca1c6553f64227e43baa8f52807c0d 46 | 1253a686cf5c84ea90669d0b8478726d 47 | 2e728958bf1a78054543ab1287933ddc 48 | 4ec3f7f126ac11d6a23e0eb92d9aa6a3 49 | 852e6e0b7bd7c3589a985b16e42e5a6c 50 | 7b5091a8fba79777c71bb7cf40fee1ae 51 | f2619f64c79007f1ae67178af65f8163 52 | 02b879f597eaed2a328608f559ea16b8 53 | 5bf788b890a17ddc4f9a0adf870a5a71 54 | 48f34ab6e55ee3cd5b98cd6ad0215ab8 55 | 7d5be3655a09517acd09352609e1afd3 56 | fa4ff867cc7a7d231917be85cb231c45 57 | 22b47e7621eeba257802e9b3faf21906 58 | 112d71404ac0c223d39674eed34f37ad 59 | 35b8be22b894ad33e57ed1cd24d6da97 60 | 7204ff40bdfc473315508b970cfae345 61 | 20805f1fb62ef2a0b5f8c90cb0eada39 62 | 235a45cbe6974001f30f2731a343db23 63 | 4e988c739a941af5c9b70769931ff514 64 | 92831d570e73e1c4210bbb597e039ff1 65 | ff908265ebe205d880616e7d9bd408be 66 | 1a27125bdafb4447f3417d679378108e 67 | 0933bfa637e2fc7b26898b771cfdd8b3 68 | 17e2e9fd0f3085c72050912b759b1c27 69 | 69e3727af078b85d6ddf7c8185859745 70 | 28f045eccca3a73c9c946fabf288bd13 71 | 3d035fb26b7595edf9dd59579c4343bd 72 | 95703645eb6d9e303eba99cf75ed22a7 73 | b7600a6c6c504c1911945ed4e90d4a8e 74 | 285f635ed8a79240b0d5af38d00f022e 75 | 1289842407cbd269c0c5a65ea0f5183f 76 | dfa22f921e02d7f5a21de636e07ee18a 77 | bdd6337576344e0bb4807d195601d23e 78 | 95c47598e11c47c633dcd577f7bf8d36 79 | eab34563bbada24b8f4e63d19e49efb9 80 | 580ca05d1f5619d461b4ab452b361e32 81 | d77a5b2cc4547f8e11ad2766162385b3 82 | 1379acd0ced4b68b1bc64df813a38f93 83 | bf7f5e889e95db2a7ed2292bfa63f6d7 84 | a73c10bfb28703d781389bd302fdda09 85 | 9297c19c4c9aa8b51a850ead0c0d9d44 86 | 7fa8728acd60ce2a00d8611d819f64c7 87 | 34ae8468c39093dcc8c26881f363596e 88 | bf47cfe290f0dfe6acbe9701a6c9c3c6 89 | 46ce461334b3b90f1ada0acdc75d06d0 90 | 76f708d8369715d0f16fee83df83bb0d 91 | 076bd3b271aea400fb8df50eca6113b1 92 | f26a23a0cc69c6e9fc0a780a00023155 93 | 128161421431b817f5ca10ea198810cf 94 | 1aff169c50a47dd37774add2f5d21fe6 95 | ea05b1ce8bae5c8bfe61a011470605eb 96 | 5389371bf563821dc7839b213e329b3e 97 | 535c32da3741fe38ff0d04fd6526e880 98 | bbcba0ce16a0030da444cabe39b1b6d1 99 | 98ca24ec4681661018531ba7eea472b1 100 | 16c5bd1b3021dd722656499f4a545097 101 | 48387036a120761793c5f02360e2476c 102 | 373d2e719a2003b895ab08a0c53b3f0f 103 | e5dcfa584590732130f08351b35ac567 104 | 081dde94e213b2e5cf5bf3199f682938 105 | 0ef50aed6bd7285bd9b6a985cc73343b 106 | 2868cea1240c80997d5baa0f5ed3a9c2 107 | b154f6dd092310bd1101e1fcf3509050 108 | ef6090fde8bfcd8da7ae67e6368656dc 109 | 1ab1bd5fa5d1291cbb0b67f9b33e4e74 110 | 98dca9b49cbe5d5286f8dba660099ff8 111 | 33b317e2fd28ccc7db86009bc7fe55c0 112 | 53a24b21978a44a7810bd2d298223c76 113 | 34ae9883ead29c6e4d912ef0907a54b9 114 | 054657efbacd00f802e60a0d44ba406d 115 | 5b2329ea447e1503f3a475cd06efe190 116 | 1b3ad0a7821b29cce3dbe86eeabc9404 117 | f7cf8b0523219e39b2dfce2aa206535a 118 | 561ea4096a3e10de10dac0213270fd63 119 | 3eda21948aa2847bbb0b48bebf09e0a2 120 | d0f32499122e204e453e2fb3224158ab 121 | 591c2596384fc406bc62f08ee8cf9ebe 122 | eeb26ae0543621d8fb6565fb1c2ae02f 123 | 63ff2f19f7908408adfa30e5b88518b7 124 | feaaff9c9119b208da29f440678f445c 125 | 09f856739987a254101af533454772ec 126 | c93e14011b2a518819237bf42443f2d8 127 | d74cabe710d2498281ec71282620e980 128 | 1f5573789bed8ce17d76f9c01a1cc04f 129 | f80e6d9b5bd0c6ed2c4c7a1c7cd4658d 130 | e8acb75bb7707e0b365b7350cef18eab 131 | 58f997adb2b37d3088331d2f132187a8 132 | 0854b12d2a19879cdae20a1b36d918db 133 | 17170c7d3df4a5fbcf70e8e1a4756778 134 | 8908af22253ea777365a6e19286c17ec 135 | 39b35a9d74cf9be2db00f5ef0d2e2832 136 | 4ed9e0462d0a686d6248173a739b1cc4 137 | 39594c4d6bd379225d72a0add92d201a 138 | bb2b4e4cea5abcc6d3b155c43ba08ade 139 | 337eba66775facede6e92d63a6f2ac80 140 | 1cf7e599f75edc45f0920d0f8bfa023c 141 | f97940d3f7f9da937189dcb8e5a5e49c 142 | 8bd4b8bf3bdd636d390b348c56fda143 143 | 5fab661e8633055e9e8a86d884eab0bb 144 | 89aaaab1f72ac797c170461b11b78baf 145 | bfa73dee5cb6b1364b97ffeef73c324b 146 | 4543048ad7a4fd198f480c1fa077b920 147 | e6066bca021cc071edfe49883f571ae1 148 | d48b3cb7417ae3162a8fef63bb22d4f0 149 | c73af0a92cc4967c2c57aa2226eeeb66 150 | 2572042053f05872987c2ba82ee76822 151 | 39528b420a5ead37e2e89bec68772c14 152 | 898bb0c5c35000ff53845e1d3aecd781 153 | 3e58d8187cec609bbe430a6b909bd10e 154 | 16335372a91277e47e8f0a33723498dc 155 | b246c15c0c5a138fe61407cac4a99e8c 156 | 34a0e3ae447ea1115b2d4ac351841687 157 | 0478de980e53ea467404a9fc409efc34 158 | 21cabd8d190c3b9397aec90ac701528d 159 | a7e6883cb74959b8de41b2a844965855 160 | b5a42cebc6d2e7894fb2d54ff3ea21e1 161 | a49638b92f0d2be8fa379e9115820614 162 | a6b5863dc83e57f79b9d811121c8f7c6 163 | 9ba74482be828e052486b0160f5e22e6 164 | 117cfad8314e61316765d75b3d0e7760 165 | a0904b3e5472c5fcc68196bdf4f50328 166 | 13bbb5128f9718b2b14c7093cab1abef 167 | b8f2cec617b9e2545de5f5af33062e2a 168 | d381fb748fa866e5b333f25cc1516216 169 | 1a32009c7e376fb8f8a8943b944edfc6 170 | 38f34a0246109c55aa08361724c5e2f0 171 | 9ecbd404997e13068093b4218613a955 172 | 07f1ff2505528ed8800bd0cb3ee78c5b 173 | 0e6a84b55ee00029240b72746ba42139 174 | 102da89594f8736cae5702a643d44d8d 175 | 2630803ec7528e5bb4ae90a17d3b76ff 176 | 366a47fb5c527ece9e14e60184aaf12f 177 | 22a2055249e5391a25493a8b22645b1b 178 | 4bc7d2c3bb7849990f2592967c952f22 179 | ad3b82dde395a179052da87693c685ce 180 | 7f3a50eb31cf57816f734354f7a31ddd 181 | ffe922f1f2235ab8239616489022ff32 182 | 067ffb08aa5459edfe9de3bff1b4e87e 183 | 3116d6cf6d0e8bb8047514f71a1da136 184 | 16331c8508a0b8d3ad4b61aa87cb83b2 185 | ca02c6daa684fec4301132571132291a 186 | 057f054ed5045b6f97472225b7897b0e 187 | b3bb2f6fd94758d45caf72d2b08ceaeb 188 | 4080d7b0e576747aa3db9db8626b10b2 189 | 3a532375582c0693a3e3e36a983c56a9 190 | 047ff16f19b758da734762ea4e4bf310 191 | 2f442911408f3e323da6a5db2ce93278 192 | e2b9937b3c60f2bc6452d6e7e7a94d88 193 | 540c5c5372c48d48c8f9c1691c2fa224 194 | febdd365a675c98a3bba7a1571e4f7c2 195 | 4fb662759b6b436438038cacaa0644d5 196 | 36653150d23b9b2d62e2ed7ee47d4896 197 | 2d56990c23cba63629bdd20b905a8a43 198 | 0f5919653d9fd20b204363e515c18a9f 199 | 05cd552288c8d2ab6e2767dec734fe24 200 | 16c7b9353d9c1dbaddaab6f7fd1f67ba 201 | d3ba25b80fa188102d1e821354cfc56e 202 | 068ff1ae4cfd08023f0c04ac471cfe2e 203 | 38f99f56fa8b2bbaafd358d86f9fddac 204 | 731bf397d4850384dc5b2ce397963dd6 205 | e3287107ec61ebbd33ce33313aa2229c 206 | 1d9e1cce81e3fb8414353fc1a390786c 207 | 909067c3a34af4b3df76a672bdbea1af 208 | 82f64094a2c98d6eef031d2555b99f9c 209 | 46306c6a22bdfbc0c5530233eca24c8e 210 | 030329b6255d08bcc488ae0cff0f2c31 211 | f77443385103b1653f862003bd56d6df 212 | c69f5e2efe0539d603b3460dd4f86220 213 | 0efd07598aa02617362084b23b8560e6 214 | 33e2475a80b0358e618e4a6082b0dc20 215 | 3783e93d39844d836263bb2c15777cea 216 | 144e2ad748bdd787831f50d39fe8355f 217 | c551b60e18cb681f47b86231a2d5af2a 218 | 101e75fbd30b468eedf5618fe5cb5aab 219 | 16a1f14b987afd17fe149ba8c578fa66 220 | b323c5d334a4f516b5c8f814bc0b00e1 221 | e403a69bd2fd05a32cd15cd0eaae39cf 222 | adb2f098214191ba6919ab65c1c0293a 223 | 155c72b0185d29077fb4c187dec9f251 224 | 210d0e03d49fd2646fa43be1a83bbc22 225 | 4b7325d1942be29be495827ce9c3aa9a 226 | 002d397aa7b6a47a824def1b68de59c0 227 | 34a950ea8c5697ecaff00dc0e0ef585e 228 | 7039293ca6df2a3ded818ce8ba67c758 229 | ddb96d808fd5f5bf92fdaffefbd6dbe3 230 | 92459d3dfc31737d780759601dd82524 231 | 53b34e91d165db1a2cc0b9a8544baf26 232 | 95a1b2f642c2e74c3bd6f517bbdc2a64 233 | 2c08b6112a13e2b0451b93d8c4f44f7d 234 | 6b38b5edc06c6772ffab533ecd173a8d 235 | 246451e96f585e9e159e40b467adf9b9 236 | c6f9f29ba1040dd380f5defb8a4b73ee 237 | 2a54f6d9ccbc5bd6fb3253426505f644 238 | 3ee713fff89236110c2bbc713f056bc0 239 | dcb05de9cce01ade3de95b98a98d11b5 240 | 00b6610c0c993b8d72e477b549b8d6c5 241 | 16c117530e8fee113706a81f0f4b44b4 242 | 0b618fe09e499d8280c12aed9161963c 243 | c2122644e0719d64f02d7b84ae73a77e 244 | 2aafd7994110261f5ae9913ac31d21b3 245 | 67cce75dffaa1ce45fb0137c73e93a14 246 | 101d09a16464ee401b8d25aacac81a54 247 | 2d97340330bdb11b456051867f7e5cd5 248 | 0175a1e8cfae12129131fea2cea40290 249 | 734f8d991187b850997737502e92b82d 250 | 0d884389c3fa063fd5745b41e7e8ad04 251 | 1beb997de8698c60816fb0f92cac0d9d 252 | 0c16127e2413d2cad23c87bae69b3d83 253 | 1aa85d0b05490b95b439d746a4433080 254 | b185bb59735b05ec518c3b13df533b9c 255 | 0743742931926b03182ad9ffdba427c1 256 | 06b31fda99f159b560ec5908d97de0d4 257 | 9e15cd1f88dd5ab00d32b77879abbbc3 258 | df70e9ae56d0e848193f55e4986cc98d 259 | ec5711fd6892e8b79e5f82ca27d0b3c3 260 | 07d75865135ddd45416f7349235238a8 261 | 59443518daa32165874974f901cb467c 262 | 53ce952cdeaf2e01cef8eed4da714099 263 | 04b953e26271cc601349c4e7dd54303d 264 | 3bea1be1c5beba16df80c3cf0190a60c 265 | 5facea4bc5c5968955a567bae97f44b3 266 | 4229238ad883b4b3a45fddd85e4cb571 267 | f1295e5d3a42eb90d0af3fa1256aa312 268 | 26fabf52d2806bb5f1ae244a8ff465a5 269 | 4b77aa183409dcfb53c353973488c234 270 | 255f1712b150c5aea77c50c41ea89335 271 | 642d37af9e947e1de57e561bdd7cb3c8 272 | be6265e5bd40fc937193b31e3c7c3336 273 | aa198a7867c25d213d640046f4911240 274 | 2cbf42c36904e0716f3c296d1cd178de 275 | 020ed17b8cdf7cdbc573e81fa8567b2b 276 | 4a0a5b7f7e7cb700d2754768cf1c2cba 277 | 054398b06aefa693dd9d20c326d973d9 278 | 7c8ab8c300f09b3933d7e7ab8edad7bd 279 | a4b3efe190e64e53e003ea7eba563732 280 | c436dab1a324ac57f204086342856d86 281 | a3185b75959e584a768de3b22bf0e078 282 | 1fbf9823a1e753a4d1d018159090dac3 283 | 31c9b3b42872d93adce7e8fc5304385f 284 | e074c33089f30ff12cdc86f52e445dcb 285 | 8e92428653f170ae596c2ab3c95dc349 286 | 4e4c66d77e792bd0ff65fe12c24d232c 287 | 1e5814e16406ff55a75fa9bc10e20119 288 | f4599297f11ea047fd377709bac524d4 289 | 1309be500630552f3afe883933458b10 290 | f3b38e495bb5ffaff165435989c1fed6 291 | da64d08bc5af5ea481b0d249cdb6902f 292 | 3048412a5fd302f580cd2f1858840b5d 293 | 0757f72f5bbad8994d59f89e4a9c93b4 294 | 29584febd61b5a4c732b50d88bebc1a7 295 | 25eb04f4e81757c7552c2f63e46792aa 296 | 2018f47033557b84a2afe390979a17f3 297 | 40b5c1c00fb4f81c0752224317896ce8 298 | 694145c22592055bffc3b17d698393b6 299 | 3e18ea84836cfbe2fb4bedcc2f628778 300 | 98c21842a5c41218180bfdbaf817db35 301 | 262000d85603c79ab530af018f2bf761 302 | 252163924246d5f4704b6e30dd40e40f 303 | e4f255c43e34f26192b81163d7ea0ff2 304 | 748607b2e3a72d26b884fe61af382712 305 | e1a45664cb2e08e7e027d5fc7f0eb23a 306 | 05a73d0f70245dc244b367175c8f0674 307 | c47f8029e24ddfb80378ab3d0c12a9a1 308 | 348a6381f088a41e54e2efb7cd561481 309 | 20b49737d7206cee3f4971910fe14745 310 | e84ff9d8e4d4e141f6f6c99015d8803e 311 | 8158a0b9d95c072aa8e94fbf3e672ddb 312 | 88ba19fb7ec03909ddde092fa1ccc9d9 313 | 694006c98948602f33bc14f452feb751 314 | 358ec7d908410db511c8937caee83f20 315 | 8decee6b644afd77de63b0f8f318e53c 316 | 7ba50746c965f0c0d5e5c496f2531d1f 317 | 41ac326c8a4ebb082eb3680ca16ed702 318 | f02d31b469ffa2b50d8f3d1b32cde9fc 319 | 1c798cfe34ec904cc1d312876daabae7 320 | 78ea6df6c07d1290cbd18f9ec5a40e81 321 | 210618cf5d1d2924cb66954ecc59acd7 322 | 0540bd8116feb6b132f90b3eb17c1a75 323 | 5d5a7c76c54cd9687f5e6ba8d3f7b8f2 324 | fc5102a7b72d56a570e339e2dd831b0a 325 | 1850f1e0e04df591dda6cac535620242 326 | 9acdbe597e77f3b31d589ab8d909937f 327 | 2170eeb31f06b4878a6788ea6d12552a 328 | 411cb4ec779c84761e0a80096fe940f2 329 | eeeef191d176da1a759647ad91a11bc2 330 | e4bb89923923028f4cda340c1f6214aa 331 | 5fa9e899c7b8c89df62d69632f4f53d3 332 | 31000af91ad2f4b0134ceb1bc797e0dc 333 | 72f896e728de1923d009acd276abb18b 334 | 8659b14f8cb0323651d0a985b395957f 335 | 4c8551a4291e254e6c56dce65ba47cc5 336 | ed4084a27af04325247dbeafc5d64483 337 | 2022d9f76a061d89484708b3be15d438 338 | 06307ec9c95a64e1626b55ecd6d4eaa8 339 | b74185909cc0ece61d7d2f2c44cd1606 340 | 320c4657f0792b0b2b7d555c7ee6c9ff 341 | 6060a27bf67e5914e8c272f65745c988 342 | 68ffe674a089cdc908f3919dbcb9de22 343 | 0d0b007c138640dc83f76ff9aef38e03 344 | 7569434dc7e8bcf3c76ef78039ee3c6c 345 | 0f05f20e21a28703ae3027f37bc51978 346 | 73f48c656517ddaf878d50271d58614e 347 | 6d6c8fbdd8008b4f42d1359353dbce2f 348 | 48346c2c311f07c9a7d83ddf11987a94 349 | 990f59cb0ad06b33331b8242874b89c0 350 | 1133c7a43226bf92678f669650e906e3 351 | 97bb2ecbb9bb486c06641c7ea889f817 352 | 00b9fbc044f07e7231ed13594c7d9f9e 353 | bcc5aa8aacf1c515d50b4387c2902243 354 | 0f5fba0fe19671062a6b6abd8cd5bb49 355 | 938dde65cc63e9de8d41dbe72679fa5d 356 | 1661ff5b357b95e0b58a22e065042b58 357 | 1d9f25565ae033727210252e488fd62f 358 | 073a9295bc0ac74e720a7edb42fccfd9 359 | 9eff01a005f71e5f7c9e41a83d912536 360 | 7c06a9edae2875a7e7802733e58e2d71 361 | cd609c2deb0a38f20554ed2481ccf05e 362 | f3796a87987eb6838f3c9e90118fccbc 363 | 4b6940a2506e26ab766cc3f2545c1a27 364 | 7d2654a663225951edd5b055bbca5ee4 365 | 1a6839105d60245ff1f1da66740313a4 366 | 12b9711e87f72df7c57af1c857621631 367 | 2810581d809ce5baed09c8f807798926 368 | 86c23ede1211544647ff13c745a6f995 369 | 05aa07afc2e5258b06bdda992d6b3e95 370 | 189860168ca6f1b1caf4e3e117a07d66 371 | 07cfb61c36b90f323a00bb824804c742 372 | 29778dbd075382fc566c32d9d84e3e47 373 | ffddb6821d6826cac407734f6353c9e8 374 | 4fe501d830897bcc02ba3a1ceb728a16 375 | 1f63f9042607bfe2acbd214947b1cf22 376 | 3b54cedd23eaa9c8e0a72605ebda26e7 377 | 143d27083f76725e23992ce5134cfd88 378 | 4d92ce4bf35c5c62a15a64927e4f0d53 379 | d85f290e48304685f2e23ab0959e585a 380 | 9a594c69d24bc0af39d03afd2ee0ca5c 381 | d1632e36f55ab31c9e9b79109cf7adf6 382 | 16a14bb4ff7bf9dc0c106821cd36d086 383 | 4b4f87a8172c88103b1a8817941f16ab 384 | 3148e8d47003abcbe2f9717a4e562b59 385 | fc5108df7c23a8ee5b2244d348636477 386 | 2e7b6d0eba28255561c84ebce7cd3be7 387 | 63c7352b742da4a532f7eec628a42c3b 388 | d73b99938668d5e15ee7a5342f4ece6a 389 | 73f637d8a371e1c255d9f50f85504de5 390 | 50ba3910a82a72aff7a09b3834e46777 391 | d13576e22d6ebefb834636fdd8c19053 392 | 236cee3393ac6eba10fbe457969decc7 393 | c394d2eca09761e8fbfaa2801475fd8c 394 | 0e93c96b140365ff36c5a6534214c1eb 395 | 8ebb4861890b3b9f172ecfa857914ebf 396 | 2168d779bc20bc48cd0129f4b76a953a 397 | 863699ad48696a555451a2457de995cc 398 | 8ed684128eb45c55e141552483e08645 399 | 37e837ce2e2cf0ec4646557623a8ba06 400 | 7f6175865d1b5d6c8cbe8e00a1be8671 401 | 1f358b922731e295324638e4e3c54e2a 402 | 458b89dfd115205bc877aa1a454684b2 403 | 755696bebb49893abc4306ca6e02c7d6 404 | 8b3fb54ef32124d6832684e8dcb83033 405 | e251f8ceb66960ed4bf40b09d95132ee 406 | e648df9dc25094d1f98d65271f362efc 407 | 6633e1feb85dc7f09897ed5e3807aab3 408 | a553e9ce0d8facf6e71ccb66aa3c0f9b 409 | 5e1659b11866552aed7d2a65be38f60a 410 | 3bddfe4d55d8cf19409b9f211a666321 411 | d8a90c61f227c272691969a903aff1bd 412 | 8b35c50772c4d79d1725b0fe9e67e7ac 413 | 3929a286f7a4156c920a0d990cc488cd 414 | 6ab1461d8b81d1a9a1f403597fd14224 415 | a8a4b45cc568b5e8048e1bd06c49fa59 416 | 6585b7e72d3720a1396e9dd2718cb282 417 | 02de133ccab2a676bfdd6ec71edd7c81 418 | 556c514f3b1fa0a2b6c569725b9c6979 419 | 9fc87b9963dd32c9b371bae4580001f8 420 | 419cf9ab1f7298b64ac655562e3fd0c1 421 | ec40cf2fe4bae3d4e5356fbdab48993d 422 | e65fee730c5b77d07b0fd4426d18a120 423 | 8937a84eabcd581171a143f519a6c9d8 424 | 2f67e394a166426ff4d29960b81b7adb 425 | 9621c9e234146efcf48192f1be13f6f6 426 | 27d7bf37e7b04e81c743a0f5394165ed 427 | 6484a8598524ba1cd4c23ab1f257c5e7 428 | 06490c8e44c7830fcfd1b0d988c9b59e 429 | adcb4ee4afc0ea6f315e6a20f1c2b6ba 430 | bc3aca7f06dd5ba2b6762d6f04c3ed00 431 | 51fa22849a900b44828f34f7c0abecc5 432 | 5beebc187d8bf7cdd7a88b7ecdaa942c 433 | 7bcc660bf83a3f88a0aeb7856ef3ee79 434 | 1eb2895ba873d04e2acd82e0d91a3fa6 435 | e87e3008bddf9395eb3d4224ad705e70 436 | 51ad3786af07458682664b6ef5c4b248 437 | ff5275fb9d3902be7ee9c2f65edde1f6 438 | bd38468945ae0b1d1d851088e7caf886 439 | 1c16dfda1d0369d1db5c8ae61f35810e 440 | 36ef52f337bc8c556c511002c17c7c71 441 | 6550539be3176e816fd234a8faebb5e1 442 | 09957767d2a5e60b689adb67acc75d5a 443 | 0627e3a917d6e36c12468dd3f74fa740 444 | 421d46dd67a501fd38705c0080f29ce1 445 | 838db48936dcae4175bcde4958430d86 446 | 108d7bba81df74f182a5b91a41cbc617 447 | 78ea175593cdbefdb557c3e0028b375f 448 | 27d80dd811dd21cf2c562dc89e00d57d 449 | 73ec21324b1c75c3c636b0512718b467 450 | b06f2764b73e62df61f6c385e4a25b0d 451 | fbccce491ea1cc5bb604be4b0dcea939 452 | 971bdc151df061afa66dc17c295f22c2 453 | 9fc3b38f721eb9af587084346a4c361f 454 | 9868d9f1414c835226811394ec0fd279 455 | 056f73a9087a279b0379869af54c0a1d 456 | f86f413c8ff15a23f5919cf6b24bbf90 457 | ecfd267396e9baf7d9490140e9f6a62b 458 | 0086695493bb2a428f1bfcb865a173c8 459 | ee3f16e887dce45965cdad58b9dda168 460 | 4a6cfb7277348b534e69825db3c95375 461 | f7cc3ca43c8b6cf059439dd1affc2319 462 | 70ae82404bb4cdef3d759740f08c3e5d 463 | 64940b67350489b6fdef849a0427aafa 464 | b0e44660e06a5caa8e2fe3fba700f4b6 465 | 2b84ea0472293a36cf3e723c29247b81 466 | d4b62953f1e92b3bce7a139033e685c7 467 | 488affb12a2fe72d399ec4c629e05922 468 | fa9f8047741ccf34da7979daa262c53f 469 | a9e847303d63a6501a8ab9b6276b9dd0 470 | 048caac97633b0bcc67b83db6f2659d2 471 | 06c084a509a9414f53352035cdce6e87 472 | 06773391d137b028dc8fca1b9f50ef9c 473 | 158c533c0f1ef6a730d7b03affe0035b 474 | cd912571c5bed38f8d31d13a2d8ed26f 475 | aa0cd02dd8b09ec642aea26523279dd6 476 | d56af4b7688dbfcc292926d80e1db835 477 | a3eb3d0f7c56e8c432e98297fafe9262 478 | f34e056dcec1c9a10fdd018a6b6dd7cf 479 | b0e347e5b2f7c76e99387637cdd5dd57 480 | 1154d1faf7df99896284bae56fe4a043 481 | 8643d647a0aae697d7319e8974e34579 482 | 8e0ef5abf630e07f0ccb3b6ebe17d46e 483 | 40b95f806a6f61ee486b2ca18f64680f 484 | 36c42edd1c4a5fa5911c361682eaa389 485 | 46f9a0cbb9e42951d4ca9026cbc3f9c4 486 | 3ce9cad4f63a70b6614f98ff3b2b7e8c 487 | ca87c2162d1b5b05ba51a08befe9862f 488 | 21b14b1064d667c41ccd51f2a442a388 489 | cbcaf7b47b7d22964bc04c3963ee8b2b 490 | b310228ea15328d0cc6245a8f9f8b4c3 491 | 0e0505cfa381da5f66b89fcf34df9a1d 492 | 91b1f5fca1d86e1b2efe51ef693e42eb 493 | 44c151998094bf55a7431b4be9780545 494 | 732ac86a73172f469ff966667f49b265 495 | 29c0262f80bad952574c11f4709c87db 496 | c34c7c55fb7dfa5691d9eb3d7c4ba8a8 497 | 490292b43dcaf12585b2459f061f23da 498 | ad6ecb33c8a3b73055135927db894dfb 499 | 363085c9f11f5ad5af7c80f4142d82a8 500 | 63f04650961b3a4450c5bd784a63fa66 501 | -------------------------------------------------------------------------------- /hashes/100: -------------------------------------------------------------------------------- 1 | 4293cc4568fb7cce147bd2bd9cd5128f 2 | ca7fc0f99450236e331bbe7ce28ea0df 3 | 6af002c008b1642a8d2f2a0c2319d199 4 | bf2c58ffc40081615df3d94893129a97 5 | fbf5b6d190d2ce521c93434aa67f4c7b 6 | c41fecd23227da5b1ab1d13a7252ad44 7 | 96d07ae3886b72407550c268f16dccf4 8 | be5203cf27e7aefa6b9da7a3ff2d04b6 9 | 87576493b5a07870ff009bde22522b70 10 | c60b9f0c66d751b9424a6d8256092096 11 | 6ecd80bf29bca6567ea007c7b9b49919 12 | 44f5ed340f35e74d908eb265e056e200 13 | 3e044e9b8e6a7c7a58392bb1e6f60463 14 | 4a285607ce4ac25e6dfdcda2db79c307 15 | 39da39628ffe296ea2d935df6185a0ac 16 | feb72cdef6f68f569bf02b708beca683 17 | 7259076751ce6de7170689f3fc6ff6df 18 | 42ca2c0e4e406ce56b9578df38dc2e75 19 | 295b888a1afd6d5bad5b73641bf2aef0 20 | 7e1df189166f82591c26da2415ad39a3 21 | 53ea4e8c54a97d6a5945b07778f5fd42 22 | 4449c37135827b3339794c153e67240f 23 | 01c401d5fda3394b5763f83058260f3a 24 | 1a838aa7dc6f1810599ba8fac7588d59 25 | 3eaaab95ff3675c4187213d5ba1633b4 26 | 5078bb7bb9d53eed0b934c78674916b3 27 | 5ded45007fd5857a15505dcf505a831a 28 | 068aa4f9b11d6cdb6c47dea10ef39676 29 | cd31d9cfddee7e523382f78a77df3b1b 30 | 04b7de997c4ed34e919ab29be5a1f405 31 | 412331af207698a6b55035f9275e3fbe 32 | fd0b8980e7cce165d196275f189eeaa6 33 | 1a5a65107045543e9ba5092e106588ec 34 | a0951438aa7c1c47a9f9256e46a76aa3 35 | 3df361a14899660dd8c72ae143bd7510 36 | e76cda5aa222390ba6520dd2cf6ca895 37 | ff310adf8c6c09c474d381c8c742db46 38 | 2e63907efb4d9ca51b2bb0ab68b8ebd0 39 | b6e17784ed219ab0e6de3a463c8f7d06 40 | 47fb679a1f0bb3448c032194f2c741af 41 | 402c30d2138f72144df9081f1b184125 42 | 6ecbf1653dca8315e1557d98ba6dc05e 43 | dee23c08fd392187a6ae1289c0c500e7 44 | b805d409f98d51ea9f9fa1752328ae44 45 | 0492f66644f609c7d23831002099ed02 46 | 4c5a13fadfdb2a3c101a7308fd1e871a 47 | c925d6a976938a73dbf98fc03bb5a432 48 | d94b8e87905433ff095f55fa0ffbc693 49 | 3c3154fda417ac585b0daf5794ccbb53 50 | 10783f2ea3404e229c4fcb504310635a 51 | ce44d7f86ae25e5f24715b51363b5e6a 52 | fd3dc5f2b2101c61bc9ecf318c6864ff 53 | 1052059e65675aab26f13b80b9d15169 54 | 39ae9137af1b51f78f50aac1d0a495f2 55 | 25ede68cb652a4fa972531849fdfb1ff 56 | 7fe8ea1eaf6d310a5c60399944d3402e 57 | a887d0928e593bb1c0504fae6f095746 58 | 9614b199077ef66de8034a9daaed8cae 59 | b9a018784d9b7c24ef6605feb731845d 60 | 94e98cad9f568916a01665c30facbb60 61 | 25c7aafbd9b8fc6bcdfebd12af82958f 62 | 29505c8e20bebff5f6be0aebb01c731e 63 | 0591d2c2baeb7e31c30dfbea09c271ae 64 | 478e7a4f9cbb76aa0ddf6958b500e4f7 65 | cd1f99b69836cce1922d907ec9a2828d 66 | 00e25f426087f4d47cdfd4a1528fa8ac 67 | 1e0f3337b7d8d02f6c5455df0c851d48 68 | 5f189718d86118dc07510fb62025370c 69 | 8662b86da5193efcd10323c085184dd0 70 | 09845163c07bab8847ca9d13121ece6a 71 | 3a4b945aa0ecc4cf6599934f15cbae52 72 | 3e1cda70ae004afd02c95a26f34365a3 73 | 87b70ddfe22f9e0c2bb91edcf29cb128 74 | bf43184fd2358cb0224421374348ef15 75 | f4a62d1fdcd1cf9a671b3205f4778594 76 | 9eb113b51272bdd4658f2b9238ef00ad 77 | df4b50b62945bf02db38e955af87ce79 78 | 20764c2417d67610a459f7c0f02dedd9 79 | 36b725928808e14fab9f03ffb4850d06 80 | d0a1607ba9ca5e32bb85c81cd20dc026 81 | 05c454dc37635e6ea3fa4a8bdf3caded 82 | b6658d146afd518e7bfa2bbbb129a90e 83 | a4631d2f313902bbb6cd408dad0590ef 84 | 2e1bff3aea49d2705c156c18a81aa7a0 85 | 48ebc88fd0a34e231f91d9aa920aa1bd 86 | 034ec40cf434c4c2b981f68c1e5d6911 87 | 64504139b6d0fc77ccfc7179a496d018 88 | 11d2636368801c1e098470ae749d9ab5 89 | e6428e9b14d03dc23e24a9ba5864aee0 90 | 000251962a5d01c0d8bd79408744da13 91 | 200f1091837afb850386b260171f8d77 92 | 9661398e32720da5e2d69259a628fd53 93 | 32f12d9d62073504b1f63240763ad8e9 94 | e045b09b11586b7336e5b8caaf7295cc 95 | 35c80188f98d10dadf2d2fafa8de0482 96 | 1bbdc5c797ec6b2a06c162c03eccc089 97 | c747974529e85ccda63b0f337e2431ec 98 | 62e09b98e329ab9e8e31c4d4438b3c6d 99 | da95da9ce1074236e6c9266b85319e8e 100 | 56ecf6776acd7f81a925ca8bf1130eab 101 | 51168e76ebd8d2a4cd524ae9bd3f3290 102 | 9e2ff84d3a749a620dfa7a0a6d78b0fc 103 | 6095790daacbab2eadc17f8c6542a2fa 104 | e3d212a4bd63a3253bf9ab37bff5141d 105 | ce769c4c7441868be0c418bead18fa30 106 | b6ef6bb99a199a952fe37ae534efc54a 107 | 01d8760ec09dc7fe509eabb90dbbc6b5 108 | 2831fb679dc280c7f8cf989c949886a2 109 | 49f6cc4c83881bebbcb77205a31291e5 110 | 183c11416d0c2f51548b4da83e1c4d71 111 | 3933a94d54163c5f5c873ebb9e48c2ca 112 | 63bfc23f1fc61c05464bb79c893da064 113 | 4ffb9060a22537e54276a0466c34d23c 114 | 068c52a9df2ee82dabed001b6200a4e7 115 | 04ccbf460658a0c015b0f35a1300af86 116 | 7b832ff726cc89e9e5c7a33b3906e2fc 117 | 221db7a00bf63599e3e61eaf9a27dd60 118 | 7c6d9a80aee903768630ec94d432fc55 119 | 2a765aa4b41fc0a0892cd5bd59ea42e9 120 | b0c576ee8b1474990d379319bf977cb3 121 | 2576ef8d0ffbbc5d774a75e08412a7f2 122 | 28ad7b73af1004d504b0acfc3fe9a135 123 | 00dc14d8a4455db3ad27f0b15d1f499a 124 | 57a040cba8564c9d6a42730cf6432c1f 125 | 6df1cc380f88589a588a07c533ac12a7 126 | bbc283c7da8ad930f2dd7079d6592549 127 | 156471a3a3bb59b59c2722de09e0d565 128 | 03f536ee797ad19cf713757413323608 129 | a15dee08b12b9a58f345a2234bf8737a 130 | 271ba50e1a193c1226e3a102ba0cd3f4 131 | 08e41d6cc45c163ba5deefd1c2c3dba3 132 | 7f3830ce3d33db4832a021b55a260e95 133 | 153af95fc4c8cece0d9ec8802ae3f87f 134 | 9a2366b2971e05e6fcdb88d57c6cad43 135 | 9d2933a742b82ebb5ecea7db399bd476 136 | 3810ff4a2bf73909295cb18d81583bb9 137 | 31d895cb8c8106df61ea04caae656282 138 | 683130ca4f0bf878efead35973c8716f 139 | dd60e6ee20a96aa1b43c5f734e72c992 140 | 0c35771f1f5e519a825ae7609d54dfc2 141 | 752d9c435bc7598e8e3b6f23596f8e62 142 | 3996fd4d78fac0b4497518ae56672182 143 | 985ba9d0a9028a349f85f7d457e93a3e 144 | 53187fc89755b088c1f49ca7d8df1735 145 | 25a9d18d09cedca973711e569be072c6 146 | 8aa70aa7d3b3ce284395699553c9fd10 147 | 2a4465dc4444061fd2d41b190d0b1ea6 148 | 1e96d663e427ce0f2d27d69edba01323 149 | f32aadb7b944c061725d1a0ebfe789e9 150 | fce4aba7aed4a38efbe9c88f9445de71 151 | 13aa25fefcb671337e16d243acf2ef12 152 | b4c7a0473ea7b73611f9ee6484dc98a7 153 | 9a184e23bca8ce2cd094bbcd3b33f879 154 | 331c7272af36b7177f205ab82b2219ec 155 | ff461856bc059ad7ec8c11d67f3f94b9 156 | 337353c13d6a6cedf3d6a50cad23c91f 157 | 2cdf1bcd31d2419d97ce118c224aed15 158 | 4f01d46f916015f111dd00adf82259fd 159 | fd38bd6f509660012649230eab1409aa 160 | 51e9c8f5261a43019ba4cf2e6db3e50a 161 | 23d9b02049c990e7032eb6ab9b74369f 162 | 3fff44264ca727e3fecbc37d46d85782 163 | 2ab5bfd42d74dad053671be3cf9cf9a5 164 | ca9a0b1db75ae67abbdc2ce8d4141b72 165 | bf4f33e56073eead8995631e9bc3899b 166 | 7a742057a3be326bcfe4606da84c94c6 167 | d7205b700ec1b68e697ae16179b8384f 168 | 96a23688103fc61da485668b7f3c44a9 169 | 0b6540d79d97c79d88e926fe4a7bff2a 170 | 8bd02626bedc5de6efc8f3b21e16495a 171 | ee845c5c215bc2103d30c3853a3d65e1 172 | b0b36af3c03b0d69e10d9cb51ce0b283 173 | 3f42a70685e265bd02ee8fd128e21efb 174 | 50be5226175b420ca127822f01ef69a3 175 | 2fee6c68e2e817113f015fe0c905a397 176 | d928570580f2bc3ce7ba39ae338ad83e 177 | 478bafe82ab5c459e74049922d8019ec 178 | 67da85b34d0ca8d0dc0b57245bc24bdb 179 | 0bd3f4bf6b5f8b00701a22e7b0c355e4 180 | e6bdf455b71058583b54913f88218d9f 181 | 4ea9b66c6af074c4dcbdc6076a3709dd 182 | 06ca67d99aad1320c7fedccf9d5562d7 183 | 6b46c27bfe58be43ec32e08ebc59d7b4 184 | 1ffa9e55939b0937d20accd89f5b76fe 185 | 9fb3d04f17a80f7ade4093c7d123e37a 186 | 60b9190d0517ecb3af9c5307bc206eb3 187 | 47680867badf6c1dcb0ae37ab1ef28d8 188 | 1bc4dc2e84d3b018a576f03bb58729d1 189 | 363f792f4f6cd2dbf9a0e3fdd58f41d3 190 | 174c812d10d56ae576eb6b8dc7eafa89 191 | 1aa9319a0d9d4b2c5f79b77f33097f6c 192 | 04620cf32a00074002c6a16ae7d8cdf8 193 | 336d31241e7fa97a3700a0e8d3737e62 194 | 0a15251734d559f1cacf147c384d9ca5 195 | 7dc99242548988268edc1141feaa5851 196 | 389b9c1a6bfbf10987c2b097a822a4d9 197 | 15af1a3d0ec7c8c2db0678213026916d 198 | fcd3467a49d6443b4e6583ac94419652 199 | 421c8a5a091ab820c418fd8aae188b35 200 | d97113502ba7fa2ccc6072c0f1e051fe 201 | 05b5088bed7ff32c8cc7d49ff2bf2c3f 202 | 82955b7dcf4c8232305fb177fd025e6a 203 | 2561d4c0b9938b92c79bf80e5ac044bb 204 | 15227f4561249db73f81e87f9547d536 205 | 8bda52034271d1babfe57a8d8c4e8fff 206 | 373fc67489fa0a12818fede2581fd384 207 | 5005c3f74328e53292599587da6f8d7f 208 | cf89aa37ae09163431cd743b9655aba8 209 | 0d78c2c4e9f67d9293491d11e9b52dce 210 | 04ae131b709a3df87166830420516f3c 211 | e27c79e78f9eb320fce3ac7354802f92 212 | 77d2d6d79a680ca84832a1b29039e4ce 213 | c635be02c96ee6e5df604bb1602c126f 214 | 3115643f34af7a977401a3c127b5d343 215 | 33f658bb06bac26ffe37700e530e1ae0 216 | 2a0a50c2dc699e6ed222494a84b066f5 217 | c2269aed6d3b76ae0553f94bb502d3ce 218 | abc7aae6580721066b154945d8166b0f 219 | b0e4edf9caaf3e7e0ba1dd360cc22142 220 | 298447a9b20e89172fcb17ff448ec66e 221 | 1d62ca3fddd363ed53ba7eab4674f79a 222 | 0a1701920a6d949fbec534ad872d5816 223 | 405fa8964d99e61f582b925c31204c6a 224 | b924e53aa23f7a46a6071ec439df0b2d 225 | 0af6c8fc031f8df1718dc9795996d56a 226 | 06eeb35c2455a3697dcde82bf81e92b0 227 | 2c8ae4b8a47f89d9251ce92c17e467cf 228 | 6a56e397aeb69a8eba5bfd7597df8e7c 229 | 352317c587c83ac0ce2257f119ecf5c6 230 | 2b48e9b77278f0d9a20592bc8cffe3f6 231 | 35c403a3a9b85c77304ac00d65dd69de 232 | b3fe08e962679efe3d77fbb3ba174482 233 | 669301acc292ad5e5994cb72dc12d407 234 | 997137efd3c5f62a69abb7e022b90b84 235 | f76db618098f151132d555c3bfb43f37 236 | cd6fdaa3dd6a4106946a6d6b046bfd6e 237 | b280c2c120f4a0f3f1678ce155405bb6 238 | 78a57d7d5b33c9df76eef749783d44e5 239 | 10ecda3f5710737a6e961639520792be 240 | f4d3cf8f72ae49d4680422f355293391 241 | 0310efeee003233f46fecb4a4aa074cc 242 | a7dbe1b42a300e13c765f54e8035e083 243 | 13973dc24bd46d4d1dcd27f6b9c4d2fa 244 | d52a58007e8cdadaeddb9635bb3b8e6b 245 | 41e63ac19a4e1c2fde51728762df52c9 246 | 5ca062d18f2460319ffad723484d711c 247 | abd3f11576d099ce6d6e64c2890a0022 248 | ed3bdd1b4350c8560d566bcc8a6af5fc 249 | 0fa3e937da9ba75e46e216591de03621 250 | 5f08d822678e32bdef63ae7d09213b1b 251 | 06a2afefad886f59ad4064b4e7a771f8 252 | dda110bef906b367433c899f12957cf4 253 | 5597a364b6ff7486cfd497fb002920ae 254 | 482cf03e9fed4e9d5a0dede31a02ec23 255 | 0b7403a7a1d7d49e991f54a113c82989 256 | 204f2b47e12d876c0ab1fd607b599d4f 257 | 4fc87b9485cd36bbab970706810693f0 258 | b09b8f35ad5a706aa1878be7ed644d01 259 | 38d2d5d6217b0d0d31114d202d58903a 260 | 461da907ce7a6a5cdd4a6fe4c90ea449 261 | d87adbf364c81839f47df8f5b8845cb9 262 | f447649e9c74f97ec365f0fa09e22ab7 263 | 243f9fcd268977f90511de04847f1f55 264 | 1a8df4efb6684f320444bc8086483df2 265 | 116dc9c172a1c49fc48d08548a0360a6 266 | 20a3dc0811cce74a96a784d0cdd37529 267 | 2524f15d4c5afd934c54fdd739dbf5ff 268 | 68fd9b88d04848735fc4566a3569de25 269 | 231beffe9ce122d8bdbdb9fe25c7cb60 270 | 7b25a54973f4e69ce06d12d20664d611 271 | c9ca7c11b66e2f3af31107ac2b87681b 272 | 7366cec4df0da83acac6e53182dc27ce 273 | 698238c05162720ca7f7cd5932d447f8 274 | ee9cecb6ee3ef1e9ea6c265abbff69b7 275 | 41eab72a336c4b5dec1f4d3f3d410743 276 | 78de9f0fd714cf3a928b85acda56c7a8 277 | 2794a595335bc1f264e0fca460f954fd 278 | 1561c86ab816f5b87f734f6efab4bdbe 279 | 29d5c485be1e1950b87ea867421da0fb 280 | 03072b07b8ce73222eee4ffc5ced75e3 281 | 2a99e14e824d5150fe67168bec9aac4d 282 | be8198e5fe05f9339a7dd1d94d67615c 283 | 868adfe66c1dbb01dc708f999eed9758 284 | 04551302af1fc04445ffd8afd3017cd9 285 | b592f0dfc14d8dca079a1301927923a5 286 | 441135fa522618b62433f73782f0a294 287 | 9217d8db885e08a13ec8dcf3dcee781c 288 | 1412c271b2bc60ddbc18bbc4b1b828fd 289 | a21f0fef291bca5406e0a9cf9f7f796a 290 | b68fae64ba839fde095df6adb6fea7b6 291 | 03464755b1e1985eb40432823c0786c1 292 | aa581dc53399905dd454a5ce0637dbe0 293 | fda220cf94eb032eecf261e86fcd7ed8 294 | 141aa353c7f345a55b6d638c41781949 295 | 04a827c4a019161c481aa23c0734fe39 296 | 19274f8c9165362ab45a3077b4666251 297 | e3f4dcfc6b171be84c936aa7812ca40a 298 | 3676bcc258a34772e9074b94d078cb7e 299 | 8083320e983f180aeba492cb2e092653 300 | d8510d26c9b84586bdf91c1f0a44fa54 301 | e2f85912002d6aaa70f34c0e11d38b75 302 | 8636114cd054e9d92c4fb6417d7a5229 303 | 97ca0104123b1f7d69ff6a0e9aaca22e 304 | 51653ac37d41737c605b5e8263bc664a 305 | 62ba45bb9d2896ef3e5fa9bfdc3045dd 306 | 393b2ed23c6b979fccb4d73481d350b3 307 | 18d358085907b42286bdff5689c84e88 308 | 1322b82c257cd346184d6ed3133aecac 309 | fa5f32c4ca3a1ff74c51d2ab8209adc4 310 | 591db4a13b6a2c8d518c88cebbdf3c20 311 | 83a66ad99c1212a707f88a3d189a3ea6 312 | 2c154c5f18defc1b08e48b50820a9736 313 | 9afb3fa3306b27ef9d5aa05e48902882 314 | 3f62a493ddb7cc9f2442cb5acff8d57d 315 | e8cec0e1ab79d7a13723f95d14a2f2ab 316 | cefc54043839a0fe1f5068ff349bf3a4 317 | 2d6dd33eed8c33dbd627068db41044f1 318 | f18e16f5f40bb41a6be19c5ba685e158 319 | 1d626be68cd526c344d4843ab2b53a1f 320 | 19e409fb1aa116b732e2f07d20760f10 321 | 0bf673f30eed0433fc76b749bfa8cbac 322 | 02ecd9f4861577388c5468f64422d6bf 323 | def9820643678ee61683f1a35594eccb 324 | 26bda99b2ee9bfa0c02eb110f141d825 325 | 27312e96a7e1364ee3ad810e292a3ade 326 | 61152886fc2e5791c1d51b448475af0c 327 | 58eff1a034c4360c8c740a53e59f20fc 328 | 4ed819901f416147e292e3afe287d4c9 329 | 86e7437921bdf5573b653fc1f5f5c1fa 330 | 3032ce584b42f53df42323434e5474f4 331 | f2f3cad7c24c24433ea5984e0e7532e3 332 | 1409c45413278615ec4075f700da3b0e 333 | 02ed188e0028ddeb5ad0f48dc0845196 334 | 1c56d09debd1d3fa37395964e40266c6 335 | ad90ae9379abd89a2e55bf3602ab5fe6 336 | 3559d4f4eb16bed33edf14f572f87446 337 | 3da3312eda8c29347dd5191887c516f3 338 | 495062cb3b5a55df4f9e9c7f0a50d291 339 | a205162f28170f92b3dc811fddd38d47 340 | 0d1fa8377c32c52636885be97ded1a50 341 | 21bfe08975490e69dbc6360f6bf83544 342 | 0d8f56dccec44720a3bfd151e937cc5e 343 | 1360097c3f7507903d1d3073a7123e1f 344 | c11585b85891b315f3a0a1b054c31d14 345 | 2fce9c75666621c13ea796ff8224534a 346 | ac4db5291b18219925cee3b2de1d0cb6 347 | ea08c1fccc7712138fed3bcb8d34f30d 348 | 3ad62874dd03e96fe8170654f89dd9b4 349 | 061d6e50eac32896f196fe40068de2f8 350 | 1beb62cb5c0f6e35049949ee55453cb4 351 | 4b3c56eddd5faa77dfbf80864c81843c 352 | 297ea4fc075fee1dd4d6ed72c8136b08 353 | 1c2e4a296595314e6f58ec6a708ef66b 354 | 68b4c4c3c417820cd0cd3e8528999844 355 | 0ee0472e8efeb937ad5d08e460dd0daf 356 | ead312497eb069f94987c282d36c04b0 357 | bc77ed3c86ddc0428c7703087407c3f6 358 | 19b56cbc338438d26a5c86fae3c234d1 359 | 05d38e381aedc7e508555eadafa1455b 360 | 7813ede0b65251217ffe8739bdc1fcae 361 | f0deaa5646f11da0b2b276b4d99a6aac 362 | 20bedc0c290d34b541c552c1a2495f32 363 | 5540957bc0f8e7ab78d6550c37cd098e 364 | c1b56964d1c67e22138aa00251ba90fd 365 | 073955125ca08893cc35f3fc52a4e868 366 | f8c874755d27ed667e35a87bf10420b7 367 | 9a898e512f69c9c3fd936edb253b6268 368 | 285abf8e013744f5adfdfbf69a607e97 369 | e0856fe173cf08a2fa3cd7ba552e3cf5 370 | 4d0b71339fdb67b0da8793cbfd2283c3 371 | 62d2b7db6ac04b60873ed9e9f83343a0 372 | 030083e211d477c5a864cf4f9a0fdfd3 373 | 1ab9dcfb3c2465e3b2889a1b4a3e83d6 374 | 0e126d4b7cc12d3ae00259682467b464 375 | b2cef04ea19d8b9e8448770b7e09826a 376 | b765dba82ff58b7f078c29ae2a05451b 377 | b8e654374fdf840497b2917b22aaeb6a 378 | 06aadd86cc32eeeeb39dc81c3f21a3f9 379 | 76a10ff31e2abf38c290e597dd578401 380 | f9975d6ceb7727be88397227c2b051a9 381 | 4a969ad807243b96a0c6b30122b05093 382 | 8c373cceb7a82519d8ff1fc7f7e451b9 383 | ff7e673d664ef9971f08f8d911b474c9 384 | 4ab80c4ddccd89419748587363148feb 385 | 0459fb09df05b70b2f6a623cdddb5ab1 386 | 45497d80f4dde922be1f04be14e09093 387 | 2898e37a57589a64dae17bd864bf6b34 388 | 59d4eb73debcfa7f255dab8497273703 389 | cd12b496566d9d2e0b77bdf0279b0202 390 | 13a2d222cc4437262315be6c6f241fe6 391 | 518d0cf1a56a8c1a9821313af1b5c05c 392 | 7977f428ff18aba2d96bdbfd27e03f2a 393 | 2626266cbd55da8206d0fe0afab52856 394 | 1cfc641e73b66aac5a9fda17228ede1e 395 | 9f19d9b645c2f500e9d014107e6acb7a 396 | 001596f0e884f61fa9ad6816e5a8e472 397 | b5e1e78f663140c82c671c575eb3d251 398 | 87847dc8da2166ccbdea8987b0b7484f 399 | f056259b0d386cfa3ea1014c2b4455fe 400 | 64931ccc03f1d78bf3e8ee55ed93b141 401 | 119713588012eddc28f27b60ae565478 402 | 2b53533b80a3ad458d7e2e17db7ed928 403 | 0a084f02f67c530d49e183e5742ad931 404 | 027ed7dd4d5e638dd829b466e549c634 405 | 6f8a93247bd2853b78c0e738bb91c67d 406 | 517b1b51a66db2c3a11f76585ad8b019 407 | 193dfef244dfd3fa79beb49fbe308b77 408 | d7910d9fb184f0cad475aadd7ce46e2e 409 | e0cbe8c133fa1bcb2d5f6d0e3b5e1cd1 410 | 4cffcdd4f096eb70883d342ffdaa332c 411 | b7fb06317496736343ca9e14901b5259 412 | 5ce1cf52519b4ff0ec59c31d4b8cbfb1 413 | 2e8545b19341f52854ef24734069240a 414 | b8b5c9ff3d7fea7daec0b861d3eb3291 415 | 51dbfc86c860ba26c5854bcd45788f43 416 | 375d597a677a2efae2abe136b9790014 417 | 1e74d0656207d482d6c847203c2aa0ed 418 | 4650b87c46c941492bf2038c9c8cfe63 419 | 8f568bef4365bafe36b050ce00102986 420 | 7962a7b869a3c6c8e7753f49a2f1cba2 421 | 56c04c64cd34bbccbd4c7f4c824ffcc1 422 | 3986ca3c45b91202d104455ba180f331 423 | fc6007db53b3eeb34554b28be8f94135 424 | d416f5073783c108ce722833252cc7b9 425 | 0be3a19dbacd2a432a984e3fdb6bd96c 426 | 04926f5476f9b5829f4bfc5831b902fa 427 | 551ca95046063ccae071028b78acfb83 428 | 124d4512ceaf22fc59dffa1dca05e8db 429 | 1b119aabdfdd3fcd30fe7cd74dd06bbb 430 | 91dbf48d1863fc5f704ce862a5f258f3 431 | 508457b8426d6f4b9fc17daf65a028f9 432 | 0a0f85647983e07d549a82677c00ec3d 433 | d2a66d78ee1a759af981a0d713411d3f 434 | 018b9c08dae9d4b341719d9873fa2da8 435 | 6eecc02e675c3809d28bb26a59e0f265 436 | 78bf0fded12024e8de3581088d1e23e7 437 | fd14cc7f025f49a3e08b4169d44a774e 438 | 376f4f0adb49334748095847a4eca280 439 | 08d209dbcd25b59bb67df58c3973233c 440 | 50f819964d7a70494eb0307dd956dbe8 441 | 17514b113f935d33c18bff670fee0b3c 442 | 050aef9777a0703a012ffa2f12f61011 443 | 6c0f66d2c48f530a1f9accb28625b39e 444 | cb0f7b3fd927cf0d0ba36302e6f9af86 445 | 899ffdc72ce222be1dd12d67433ec3d1 446 | a3b48faaf0ce85be3b1b1fef1364b776 447 | cd51304bc9c78ed90882eec76151829d 448 | 1d584003571f1e9cf78c4d4ff6ef05b4 449 | 18180c74108f262ddc7e9f00069372a2 450 | 02777fc2a4b6a86aeb762d533842177b 451 | c27d997fb389cc0dcdd3de5c02b268eb 452 | 46857bf09ead1f08a2cd20a5d7dafc55 453 | 05fea9cc6588d51e07b429c53db3a4e4 454 | d09712801ff8f7795a0c7dd6ed2a1dfc 455 | 07f74064b8a614669bddde5683e69b9a 456 | fa38d90d55f1371c2f3a82f40122e49a 457 | 0ef9fda86f155e574cd82815e42c1cfd 458 | 4d4f7c90890ca39f722816ea5857516c 459 | 11d8d0a2248009697083dd6343d14d18 460 | 47055b6bc4fc02ed74cf74cfb047240d 461 | a268697b025afcb7180954789ea7d83a 462 | 2929c8f2ea41f1d19e634c6eba06aa71 463 | ce1bc83c572b6e2cb3956f6d2adc5de0 464 | cff69413d256eac1d09cc8dcfed4111c 465 | 5bc5d0dcd7dd277fec22713ec8a746ce 466 | f2674b58a7be7848529e7ab1722b91b4 467 | d7b4d9cfd8b9592e232abdd0213b87aa 468 | 12bfee0cc29737438fd70215ec4105b2 469 | 01559242ba9b50a722ce44ffd91c604b 470 | 06e0e49acd6ab773c4bdd9291f5a5fc1 471 | 50f3141746168c4f662169c3ba63085c 472 | 2bd5672432a545db03db0e09c120d42e 473 | 43632b8b9d401dee1f8ca6e2bac29da6 474 | 0e7249df5adcab9ac574ba3b42d70429 475 | 8a7ee955e9d906bbaa1bdcc06caddd9c 476 | 071945da3cf00f4c8859ebc60b751bed 477 | 0671a8bba6b6b8958e8b1435aab09882 478 | 285fb63915971a394fb4a253d2e02ce4 479 | b59c77a1d9b291dc596469e01197fc1b 480 | 484e156cb34961ec3d17b130ed805c05 481 | 574d3725d5f161b8f7615d8867ee427e 482 | 27e34f9cfce10fed094b74c5fd4d7127 483 | 2b574c5eddbec6fa0454c087c1e82162 484 | 34972b80ca0d69f0ebdd0443b9e396d6 485 | 22cbf8dfa345316e46de1e3fa00f16b5 486 | c081382fec47fdbeb9dc14afc7831bf5 487 | 57f20f52d31b966f7ebcd34b435cb678 488 | 0e9ae3e44c359e3d8741dd6847388c99 489 | c27a0beaa4469fb2df4a92b4f8e59662 490 | 61341481e44752a0bffe5ead439e2fe4 491 | dfa754b4145959788a191f61e7de1c43 492 | 33c609fd3ca08ea5d06a035ed44890b6 493 | 0f372ea6f641e24062d9decda6a5e5ef 494 | ade62ff037b7ca20fc1b95fe8d8b8059 495 | a5b8d783606b4a89541fd0ed70c7a068 496 | c17e09d0897fb89d262f8bc1f4c0332b 497 | 5947a95d157f1ecbc2991239a3a28c81 498 | bb1738a3f8a1e5d1cf026e6841d6c801 499 | 2210daa0a85abd59b23a4da50e361aa5 500 | ab12ac29312274cd415373ce92e7583f 501 | -------------------------------------------------------------------------------- /hashes/262: -------------------------------------------------------------------------------- 1 | 398100447006ca4cb8b5eb6b7c3d7357 2 | fdbbafc55e6f2a4ff8d9b3d6e8952dac 3 | 2896526cf9d266497b5f8769f90e12f1 4 | f2ea47bd76eefa90fc720b068f69c1b1 5 | 1d3fc27ec38a01e04234d78d5c2e7500 6 | 16fd291e6183ac5ecb7bfe85a590292a 7 | 57b83af2407263e0c264f96ab5d9106e 8 | 8e12e64be537835e8f63077811084617 9 | 9250281b5a781edb9b683534f8916392 10 | 5275f16fa3dc6a568f1a10182e7f6768 11 | a8f7f434fc07c42a41df7a6b87d59258 12 | 45162b970e13582bf379728f21e65e3d 13 | e5746559bde5b85bde6ca1794b43a231 14 | 0bd6ed87feda43da226fc9ba4c667059 15 | f18bee606fd7727955b6ed53152f3c0c 16 | 76cca5ec07df0563f0fd05e1a7d28b0e 17 | 119542546302445ff4636e1a9342ec8e 18 | ceca4f39480037051915c84db228d846 19 | 64218ac85566808ee404a3e2aced679c 20 | a0886c74010d1bfd3354260e172ebc75 21 | 08943aeb870803d86a6f23f1dfc6ded2 22 | 1ad7df6141fb5be3f5932770491eba5e 23 | e23cbb268a56b7d196c9fab6df5ef3d5 24 | 8e2db4f89a8dadcdb15724a23be27274 25 | d552f4c536043008180099fea528a160 26 | 67f1267b4201e33ff84ab12864bfc05f 27 | 3f51db3583a24776fa149c0287d38264 28 | 90ef79e90f28e6db2ffc00ebefbc9fe0 29 | b168a0dc6bb4f0785fa28f601af8e1b0 30 | 0eb74cd53cc3f4efa0d4e0311bdfe3ca 31 | 389bfadbe3f819dbcc1a55d1183332af 32 | c61a4349aae97705f8ba987af6ee33c0 33 | 10b97743508e249e80dd923ae1dba986 34 | e1a3a5cca3b3a3a061a81314740fdb4a 35 | 7ad7c8775dd88a32ca8680c1b1ef6715 36 | 343a70d716e59531f6a5c09693b59c4c 37 | fd5eb823471de5e6dc0fdc9fe9c8608a 38 | aa0bc87208541bde2bbc9eb7b7d4d2b8 39 | 62c7305417fd15beb031f12d0d150c83 40 | e6793763bb3f351e6ed46e3b96e5436e 41 | df6b9960e5ac6f80b8e43d9aee147063 42 | 61ffee2fc6680f45effdaf0dbe4e865e 43 | 46628ad436de10c5c2562cb312949219 44 | 8397d98a21910d57a98e0dab060aa6d5 45 | e3e596a2fcd06983eb982f96fe1de550 46 | 7bdfffd0a3870cd0432b0b8aaebed8f1 47 | 02e93efdcc1d7fb4dbcaaa4ee019feb2 48 | f50f8babadca0f1e737413e854902b6e 49 | bc06a79a444f831080f57d289eb15220 50 | 0c6d02bb059238704aa5feb4f73a80d6 51 | cd23db23bbef4c3d3c765d32a139ffc3 52 | 69c39892ac00b243d7dfa368a46617a3 53 | 567a98462989993a0d69359e8218ed0f 54 | 26c0a79c412dac7b74003aea1ccdcfe2 55 | 2d35c801de5b5f502ee954c57d5dfdd3 56 | 2b3504bcdb35f6a2dcbf23bf8cb6f775 57 | 22b11c4d80f2c4086b5b05b18b7a4651 58 | fee5c5e322bf3143045dbe1596051af3 59 | 3bc434aec987c3e997ae1fec4aaa3a33 60 | f382cf2da9d077c7b1bf010ce8c9086d 61 | 562a3aa3b9a766d734b06de03384c2ff 62 | 1cb83c212819c3ba9f2dcbbbee9a1725 63 | e672fa4c9b1195e5cdf96bfca7e782d0 64 | 4939aa3c63754523a57bb51383c29fa5 65 | fbc7e547d26942373cc5fccad333bb38 66 | 0607edb593a94b9b46b3a6a5c706d5db 67 | 57c97e88d2eeb06c7e7f4bc784485df6 68 | 1b52bf945d8d6570f6b00ffb208d2fb2 69 | 964aa2a71523341d5f080cd5d0633ab6 70 | 5aa0500fc8d62ce00cfae1c570941c09 71 | 990dfda9901b74704d45bfc62fb7ccc7 72 | de960b8f99230e94858204b711fb8a38 73 | -------------------------------------------------------------------------------- /hashes/readme.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /mal-api-2019.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocatak/malware_api_class/446f0c7643e93bda26599524d3cb796d9294cd91/mal-api-2019.zip -------------------------------------------------------------------------------- /other/OtherAnalize_DT.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Wed Aug 1 14:52:43 2018 4 | 5 | @author: user 6 | """ 7 | 8 | from sklearn.model_selection import train_test_split 9 | from keras import preprocessing 10 | import os 11 | 12 | import pandas as pd 13 | from sklearn.metrics import confusion_matrix,classification_report 14 | from sklearn.tree import DecisionTreeClassifier 15 | 16 | ################################################## 17 | 18 | prefix = "1000" 19 | 20 | data_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\data\\" 21 | model_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\result\\" 22 | 23 | def read_adjust_data(type_index): 24 | df = pd.read_csv(data_path + prefix + "_types.zip", delimiter=' ', header=None ,compression="zip") 25 | df[0] = df[0].astype('category') 26 | cat = df[0].cat 27 | df[0] = df[0].cat.codes 28 | y = df[0].values 29 | 30 | for i in range(len(y)): 31 | val = y[i] 32 | if val == type_index: 33 | y[i] = 1 34 | else: 35 | y[i] = 0 36 | 37 | return y 38 | 39 | def run_analize(X, y, index, kernel, file_name): 40 | 41 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 42 | 43 | # train classifier 44 | clf = DecisionTreeClassifier(random_state=0) 45 | clf.fit(X_train, y_train) 46 | 47 | 48 | # predict and evaluate predictions 49 | predictions = clf.predict_proba(X_test) 50 | 51 | matrix = confusion_matrix(y_test, predictions.argmax(axis=1)) 52 | report = classification_report(y_test, predictions.argmax(axis=1)) 53 | 54 | cm_file = open(model_path + file_name + "\\Confisuon_matrix_" + str(index) + "_" + str(kernel), "w") 55 | cm_file.write(str(matrix)) 56 | cm_file.write("\n\n") 57 | cm_file.write(report) 58 | cm_file.close() 59 | print(matrix) 60 | print(report) 61 | 62 | # os.makedirs(model_path + prefix) 63 | 64 | df = pd.read_csv(data_path + prefix + "_calls.zip", delimiter=' ', header=None,compression="zip" ) 65 | D = df.values 66 | ds_tmp = D[:, 0].tolist() 67 | ds = [] 68 | for v in ds_tmp: 69 | ds.append(v.split(',')) 70 | 71 | maxlen = 350 72 | X = preprocessing.sequence.pad_sequences(ds, maxlen=maxlen) 73 | print(X.shape) 74 | 75 | 76 | for j in range(8): 77 | 78 | file_name = prefix + "__" + str(j) 79 | os.makedirs(model_path + file_name) 80 | y = read_adjust_data(j) 81 | 82 | for kernel in ['DT']: 83 | run_analize(X, y, j + 1, kernel, file_name) 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /other/OtherAnalize_KNN.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Wed Aug 1 14:52:43 2018 4 | 5 | @author: user 6 | """ 7 | 8 | from sklearn.model_selection import train_test_split 9 | from keras import preprocessing 10 | import os 11 | 12 | import pandas as pd 13 | from sklearn.svm import SVC 14 | from sklearn.metrics import confusion_matrix,classification_report 15 | from sklearn.neighbors import KNeighborsClassifier 16 | from sklearn.metrics import accuracy_score 17 | 18 | ################################################## 19 | 20 | prefix = "100" 21 | 22 | data_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\data\\" 23 | model_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\result\\" 24 | 25 | def read_adjust_data(type_index): 26 | df = pd.read_csv(data_path + prefix + "_types.zip", delimiter=' ', header=None ,compression="zip") 27 | df[0] = df[0].astype('category') 28 | cat = df[0].cat 29 | df[0] = df[0].cat.codes 30 | y = df[0].values 31 | 32 | for i in range(len(y)): 33 | val = y[i] 34 | if val == type_index: 35 | y[i] = 1 36 | else: 37 | y[i] = 0 38 | 39 | return y 40 | 41 | def run_analize(X, y, index, kernel, file_name): 42 | 43 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 44 | 45 | # train classifier 46 | clf = KNeighborsClassifier(n_neighbors=5) 47 | clf.fit(X_train, y_train) 48 | 49 | 50 | # predict and evaluate predictions 51 | predictions = clf.predict_proba(X_test) 52 | 53 | matrix = confusion_matrix(y_test, predictions.argmax(axis=1)) 54 | report = classification_report(y_test, predictions.argmax(axis=1)) 55 | 56 | cm_file = open(model_path + file_name + "\\Confisuon_matrix_" + str(index) + "_" + str(kernel), "w") 57 | cm_file.write(str(matrix)) 58 | cm_file.write("\n\n") 59 | cm_file.write(report) 60 | cm_file.close() 61 | print(matrix) 62 | print(report) 63 | print(clf) 64 | 65 | # os.makedirs(model_path + prefix) 66 | 67 | df = pd.read_csv(data_path + prefix + "_calls.zip", delimiter=' ', header=None,compression="zip" ) 68 | D = df.values 69 | ds_tmp = D[:, 0].tolist() 70 | ds = [] 71 | for v in ds_tmp: 72 | ds.append(v.split(',')) 73 | 74 | maxlen = 350 75 | X = preprocessing.sequence.pad_sequences(ds, maxlen=maxlen) 76 | print(X.shape) 77 | 78 | 79 | for j in range(8): 80 | 81 | file_name = prefix + "__" + str(j) 82 | os.makedirs(model_path + file_name) 83 | y = read_adjust_data(j) 84 | 85 | for kernel in ['KNN']: 86 | run_analize(X, y, j + 1, kernel, file_name) 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /other/OtherAnalize_SVM.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Wed Aug 1 14:52:43 2018 4 | 5 | @author: user 6 | """ 7 | 8 | from sklearn.model_selection import train_test_split 9 | from keras import preprocessing 10 | import os 11 | 12 | import pandas as pd 13 | from sklearn.svm import SVC 14 | from sklearn.metrics import confusion_matrix,classification_report 15 | 16 | ################################################## 17 | 18 | prefix = "1000" 19 | 20 | data_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\data\\" 21 | model_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\result\\" 22 | 23 | def read_adjust_data(type_index): 24 | df = pd.read_csv(data_path + prefix + "_types.zip", delimiter=' ', header=None ,compression="zip") 25 | df[0] = df[0].astype('category') 26 | cat = df[0].cat 27 | df[0] = df[0].cat.codes 28 | y = df[0].values 29 | 30 | return y 31 | 32 | def run_analize(X, y, index, kernel, file_name): 33 | 34 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 35 | 36 | # train classifier 37 | clf = SVC(probability=True, kernel= kernel) 38 | clf.fit(X_train, y_train) 39 | 40 | # predict and evaluate predictions 41 | predictions = clf.predict_proba(X_test) 42 | 43 | matrix = confusion_matrix(y_test, predictions.argmax(axis=1)) 44 | report = classification_report(y_test, predictions.argmax(axis=1)) 45 | 46 | cm_file = open(model_path + file_name + "\\Confisuon_matrix_" + str(index) + "_" + str(kernel), "w") 47 | cm_file.write(str(matrix)) 48 | cm_file.write("\n\n") 49 | cm_file.write(report) 50 | cm_file.close() 51 | print(matrix) 52 | print(report) 53 | 54 | # os.makedirs(model_path + prefix) 55 | 56 | df = pd.read_csv(data_path + prefix + "_calls.zip", delimiter=' ', header=None,compression="zip" ) 57 | D = df.values 58 | ds_tmp = D[:, 0].tolist() 59 | ds = [] 60 | for v in ds_tmp: 61 | ds.append(v.split(',')) 62 | 63 | maxlen = 350 64 | X = preprocessing.sequence.pad_sequences(ds, maxlen=maxlen) 65 | print(X.shape) 66 | 67 | 68 | for j in range(8): 69 | 70 | file_name = prefix + "__" + str(j) 71 | os.makedirs(model_path + file_name) 72 | y = read_adjust_data(j) 73 | 74 | for kernel in ['poly']: 75 | run_analize(X, y, j + 1, kernel, file_name) 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /other/OtherAnalize_SVM_mclass.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Wed Aug 1 14:52:43 2018 4 | 5 | @author: user 6 | """ 7 | 8 | from sklearn.model_selection import train_test_split 9 | from keras import preprocessing 10 | import os 11 | 12 | import pandas as pd 13 | from sklearn.svm import SVC 14 | from sklearn.metrics import confusion_matrix,classification_report 15 | 16 | ################################################## 17 | 18 | import datetime 19 | 20 | 21 | prefix = "1000" 22 | 23 | data_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\data\\" 24 | model_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\result\\" 25 | main_folder_name = model_path + str(datetime.datetime.now()).replace(":", "_") + "\\" 26 | 27 | def read_adjust_data(): 28 | df = pd.read_csv(data_path + prefix + "_types.zip", delimiter=' ', header=None ,compression="zip") 29 | df[0] = df[0].astype('category') 30 | cat = df[0].cat 31 | df[0] = df[0].cat.codes 32 | y = df[0].values 33 | 34 | return y 35 | 36 | def run_analize(X, y, kernel, file_name): 37 | 38 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 39 | 40 | # train classifier 41 | clf = SVC(probability=True, kernel= kernel) 42 | clf.fit(X_train, y_train) 43 | 44 | # predict and evaluate predictions 45 | predictions = clf.predict_proba(X_test) 46 | 47 | matrix = confusion_matrix(y_test, predictions.argmax(axis=1)) 48 | report = classification_report(y_test, predictions.argmax(axis=1)) 49 | 50 | cm_file = open(main_folder_name + file_name + "\\Confisuon_matrix_" + str(kernel), "w") 51 | cm_file.write(str(matrix)) 52 | cm_file.write("\n\n") 53 | cm_file.write(report) 54 | cm_file.close() 55 | print(matrix) 56 | print(report) 57 | 58 | # os.makedirs(main_folder_name + prefix) 59 | 60 | df = pd.read_csv(data_path + prefix + "_calls.zip", delimiter=' ', header=None,compression="zip" ) 61 | D = df.values 62 | ds_tmp = D[:, 0].tolist() 63 | ds = [] 64 | for v in ds_tmp: 65 | ds.append(v.split(',')) 66 | 67 | maxlen = 342 68 | X = preprocessing.sequence.pad_sequences(ds, maxlen=maxlen) 69 | print(X.shape) 70 | 71 | 72 | os.makedirs(main_folder_name) 73 | 74 | 75 | print("-------------------basliyor------------") 76 | file_name2 = "deneme" 77 | os.makedirs(main_folder_name + "\\" + file_name2) 78 | 79 | y = read_adjust_data() 80 | run_analize(X, y, "rbf", file_name2) 81 | 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /other/data/1000_calls.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocatak/malware_api_class/446f0c7643e93bda26599524d3cb796d9294cd91/other/data/1000_calls.zip -------------------------------------------------------------------------------- /other/data/1000_types.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocatak/malware_api_class/446f0c7643e93bda26599524d3cb796d9294cd91/other/data/1000_types.zip -------------------------------------------------------------------------------- /other/data/100_calls.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocatak/malware_api_class/446f0c7643e93bda26599524d3cb796d9294cd91/other/data/100_calls.zip -------------------------------------------------------------------------------- /other/data/100_types.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocatak/malware_api_class/446f0c7643e93bda26599524d3cb796d9294cd91/other/data/100_types.zip -------------------------------------------------------------------------------- /other/data/ApiIndex.txt: -------------------------------------------------------------------------------- 1 | __process__=0 2 | __anomaly__=1 3 | __exception__=2 4 | __missing__=3 5 | certcontrolstore=4 6 | certcreatecertificatecontext=5 7 | certopenstore=6 8 | certopensystemstorea=7 9 | certopensystemstorew=8 10 | cryptacquirecontexta=9 11 | cryptacquirecontextw=10 12 | cryptcreatehash=11 13 | cryptdecrypt=12 14 | cryptencrypt=13 15 | cryptexportkey=14 16 | cryptgenkey=15 17 | crypthashdata=16 18 | cryptdecodemessage=17 19 | cryptdecodeobjectex=18 20 | cryptdecryptmessage=19 21 | cryptencryptmessage=20 22 | crypthashmessage=21 23 | cryptprotectdata=22 24 | cryptprotectmemory=23 25 | cryptunprotectdata=24 26 | cryptunprotectmemory=25 27 | prf=26 28 | ssl3generatekeymaterial=27 29 | setunhandledexceptionfilter=28 30 | rtladdvectoredcontinuehandler=29 31 | rtladdvectoredexceptionhandler=30 32 | rtldispatchexception=31 33 | rtlremovevectoredcontinuehandler=32 34 | rtlremovevectoredexceptionhandler=33 35 | copyfilea=34 36 | copyfileexw=35 37 | copyfilew=36 38 | createdirectoryexw=37 39 | createdirectoryw=38 40 | deletefilew=39 41 | deviceiocontrol=40 42 | findfirstfileexa=41 43 | findfirstfileexw=42 44 | getfileattributesexw=43 45 | getfileattributesw=44 46 | getfileinformationbyhandle=45 47 | getfileinformationbyhandleex=46 48 | getfilesize=47 49 | getfilesizeex=48 50 | getfiletype=49 51 | getshortpathnamew=50 52 | getsystemdirectorya=51 53 | getsystemdirectoryw=52 54 | getsystemwindowsdirectorya=53 55 | getsystemwindowsdirectoryw=54 56 | gettemppathw=55 57 | getvolumenameforvolumemountpointw=56 58 | getvolumepathnamew=57 59 | getvolumepathnamesforvolumenamew=58 60 | movefilewithprogressw=59 61 | removedirectorya=60 62 | removedirectoryw=61 63 | searchpathw=62 64 | setendoffile=63 65 | setfileattributesw=64 66 | setfileinformationbyhandle=65 67 | setfilepointer=66 68 | setfilepointerex=67 69 | ntcreatedirectoryobject=68 70 | ntcreatefile=69 71 | ntdeletefile=70 72 | ntdeviceiocontrolfile=71 73 | ntopendirectoryobject=72 74 | ntopenfile=73 75 | ntqueryattributesfile=74 76 | ntquerydirectoryfile=75 77 | ntqueryfullattributesfile=76 78 | ntqueryinformationfile=77 79 | ntreadfile=78 80 | ntsetinformationfile=79 81 | ntwritefile=80 82 | colescript_compile=81 83 | cdocument_write=82 84 | celement_put_innerhtml=83 85 | chyperlink_seturlcomponent=84 86 | ciframeelement_createelement=85 87 | cscriptelement_put_src=86 88 | cwindow_addtimeoutcode=87 89 | getusernamea=88 90 | getusernamew=89 91 | lookupaccountsidw=90 92 | getcomputernamea=91 93 | getcomputernamew=92 94 | getdiskfreespaceexw=93 95 | getdiskfreespacew=94 96 | gettimezoneinformation=95 97 | writeconsolea=96 98 | writeconsolew=97 99 | coinitializesecurity=98 100 | uuidcreate=99 101 | getusernameexa=100 102 | getusernameexw=101 103 | readcabinetstate=102 104 | shgetfolderpathw=103 105 | shgetspecialfolderlocation=104 106 | enumwindows=105 107 | getcursorpos=106 108 | getsystemmetrics=107 109 | netgetjoininformation=108 110 | 111 | netusergetinfo=110 112 | 113 | netusergetlocalgroups=112 114 | netshareenum=113 115 | dnsquery_a=114 116 | dnsquery_utf8=115 117 | dnsquery_w=116 118 | getadaptersaddresses=117 119 | getadaptersinfo=118 120 | getbestinterfaceex=119 121 | getinterfaceinfo=120 122 | obtainuseragentstring=121 123 | urldownloadtofilew=122 124 | deleteurlcacheentrya=123 125 | deleteurlcacheentryw=124 126 | httpopenrequesta=125 127 | httpopenrequestw=126 128 | httpqueryinfoa=127 129 | httpsendrequesta=128 130 | httpsendrequestw=129 131 | internetclosehandle=130 132 | internetconnecta=131 133 | internetconnectw=132 134 | internetcrackurla=133 135 | internetcrackurlw=134 136 | internetgetconnectedstate=135 137 | internetgetconnectedstateexa=136 138 | internetgetconnectedstateexw=137 139 | internetopena=138 140 | internetopenurla=139 141 | internetopenurlw=140 142 | internetopenw=141 143 | internetqueryoptiona=142 144 | internetreadfile=143 145 | internetsetoptiona=144 146 | internetsetstatuscallback=145 147 | internetwritefile=146 148 | connectex=147 149 | getaddrinfow=148 150 | transmitfile=149 151 | wsaaccept=150 152 | wsaconnect=151 153 | wsarecv=152 154 | wsarecvfrom=153 155 | wsasend=154 156 | wsasendto=155 157 | wsasocketa=156 158 | wsasocketw=157 159 | wsastartup=158 160 | accept=159 161 | bind=160 162 | closesocket=161 163 | connect=162 164 | getaddrinfo=163 165 | gethostbyname=164 166 | getsockname=165 167 | ioctlsocket=166 168 | listen=167 169 | recv=168 170 | recvfrom=169 171 | select=170 172 | send=171 173 | sendto=172 174 | setsockopt=173 175 | shutdown=174 176 | socket=175 177 | cocreateinstance=176 178 | coinitializeex=177 179 | oleinitialize=178 180 | createprocessinternalw=179 181 | createremotethread=180 182 | createthread=181 183 | createtoolhelp32snapshot=182 184 | module32firstw=183 185 | module32nextw=184 186 | process32firstw=185 187 | process32nextw=186 188 | readprocessmemory=187 189 | thread32first=188 190 | thread32next=189 191 | writeprocessmemory=190 192 | system=191 193 | ntallocatevirtualmemory=192 194 | ntcreateprocess=193 195 | ntcreateprocessex=194 196 | ntcreatesection=195 197 | ntcreatethread=196 198 | ntcreatethreadex=197 199 | ntcreateuserprocess=198 200 | ntfreevirtualmemory=199 201 | ntgetcontextthread=200 202 | ntmakepermanentobject=201 203 | ntmaketemporaryobject=202 204 | ntmapviewofsection=203 205 | ntopenprocess=204 206 | ntopensection=205 207 | ntopenthread=206 208 | ntprotectvirtualmemory=207 209 | ntqueueapcthread=208 210 | ntreadvirtualmemory=209 211 | ntresumethread=210 212 | ntsetcontextthread=211 213 | ntsuspendthread=212 214 | ntterminateprocess=213 215 | ntterminatethread=214 216 | ntunmapviewofsection=215 217 | ntwritevirtualmemory=216 218 | rtlcreateuserprocess=217 219 | rtlcreateuserthread=218 220 | shellexecuteexw=219 221 | regclosekey=220 222 | regcreatekeyexa=221 223 | regcreatekeyexw=222 224 | regdeletekeya=223 225 | regdeletekeyw=224 226 | regdeletevaluea=225 227 | regdeletevaluew=226 228 | regenumkeyexa=227 229 | regenumkeyexw=228 230 | regenumkeyw=229 231 | regenumvaluea=230 232 | regenumvaluew=231 233 | regopenkeyexa=232 234 | regopenkeyexw=233 235 | regqueryinfokeya=234 236 | regqueryinfokeyw=235 237 | regqueryvalueexa=236 238 | regqueryvalueexw=237 239 | regsetvalueexa=238 240 | regsetvalueexw=239 241 | ntcreatekey=240 242 | ntdeletekey=241 243 | ntdeletevaluekey=242 244 | ntenumeratekey=243 245 | ntenumeratevaluekey=244 246 | ntloadkey=245 247 | ntloadkey2=246 248 | ntloadkeyex=247 249 | ntopenkey=248 250 | ntopenkeyex=249 251 | ntquerykey=250 252 | ntquerymultiplevaluekey=251 253 | ntqueryvaluekey=252 254 | ntrenamekey=253 255 | ntreplacekey=254 256 | ntsavekey=255 257 | ntsavekeyex=256 258 | ntsetvaluekey=257 259 | findresourcea=258 260 | findresourceexa=259 261 | findresourceexw=260 262 | findresourcew=261 263 | loadresource=262 264 | sizeofresource=263 265 | controlservice=264 266 | createservicea=265 267 | createservicew=266 268 | deleteservice=267 269 | enumservicesstatusa=268 270 | enumservicesstatusw=269 271 | openscmanagera=270 272 | openscmanagerw=271 273 | openservicea=272 274 | openservicew=273 275 | startservicea=274 276 | startservicew=275 277 | getlocaltime=276 278 | getsystemtime=277 279 | getsystemtimeasfiletime=278 280 | gettickcount=279 281 | ntcreatemutant=280 282 | ntdelayexecution=281 283 | ntquerysystemtime=282 284 | timegettime=283 285 | lookupprivilegevaluew=284 286 | getnativesysteminfo=285 287 | getsysteminfo=286 288 | isdebuggerpresent=287 289 | outputdebugstringa=288 290 | seterrormode=289 291 | ldrgetdllhandle=290 292 | ldrgetprocedureaddress=291 293 | ldrloaddll=292 294 | ldrunloaddll=293 295 | ntclose=294 296 | ntduplicateobject=295 297 | ntloaddriver=296 298 | ntunloaddriver=297 299 | rtlcompressbuffer=298 300 | rtldecompressbuffer=299 301 | rtldecompressfragment=300 302 | exitwindowsex=301 303 | getasynckeystate=302 304 | getkeystate=303 305 | getkeyboardstate=304 306 | sendnotifymessagea=305 307 | sendnotifymessagew=306 308 | setwindowshookexa=307 309 | setwindowshookexw=308 310 | unhookwindowshookex=309 311 | drawtextexa=310 312 | drawtextexw=311 313 | findwindowa=312 314 | findwindowexa=313 315 | findwindowexw=314 316 | findwindoww=315 317 | getforegroundwindow=316 318 | loadstringa=317 319 | loadstringw=318 320 | messageboxtimeouta=319 321 | messageboxtimeoutw=320 322 | couninitialize=321 323 | ntopenmutant=322 324 | ntquerysysteminformation=323 325 | globalmemorystatus=324 326 | globalmemorystatusex=325 327 | setfiletime=326 328 | getfileversioninfosizew=327 329 | getfileversioninfow=328 330 | createactctxw=329 331 | cogetclassobject=330 332 | cocreateinstanceex=331 333 | iwbemservices_execquery=332 334 | setstdhandle=333 335 | registerhotkey=334 336 | createjobobjectw=335 337 | setinformationjobobject=336 338 | assignprocesstojobobject=337 339 | createremotethreadex=338 340 | iwbemservices_execmethod=339 341 | wnetgetprovidernamew=340 342 | ntshutdownsystem=341 343 | -------------------------------------------------------------------------------- /other/readme.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /overall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocatak/malware_api_class/446f0c7643e93bda26599524d3cb796d9294cd91/overall.png -------------------------------------------------------------------------------- /src/common/HashMap.py: -------------------------------------------------------------------------------- 1 | # Hash Map 2 | 3 | class HashMap: 4 | def __init__(self): 5 | self.size = 6 6 | self.map = [None] * self.size 7 | 8 | def _get_hash(self, key): 9 | hash = 0 10 | for char in str(key): 11 | hash += ord(char) 12 | return hash % self.size 13 | 14 | def add(self, key, value): 15 | key_hash = self._get_hash(key) 16 | key_value = [key, value] 17 | 18 | if self.map[key_hash] is None: 19 | self.map[key_hash] = list([key_value]) 20 | return True 21 | else: 22 | for pair in self.map[key_hash]: 23 | if pair[0] == key: 24 | pair[1] = value 25 | return True 26 | self.map[key_hash].append(key_value) 27 | return True 28 | 29 | def get(self, key): 30 | key_hash = self._get_hash(key) 31 | if self.map[key_hash] is not None: 32 | for pair in self.map[key_hash]: 33 | if pair[0] == key: 34 | return pair[1] 35 | return None 36 | 37 | def delete(self, key): 38 | key_hash = self._get_hash(key) 39 | 40 | if self.map[key_hash] is None: 41 | return False 42 | for i in range(0, len(self.map[key_hash])): 43 | if self.map[key_hash][i][0] == key: 44 | self.map[key_hash].pop(i) 45 | return True 46 | 47 | def print(self): 48 | print('------------') 49 | for item in self.map: 50 | if item is not None: 51 | print(str(item)) 52 | 53 | def write(self, fileName): 54 | file = open(fileName, "w") 55 | for item in self.map: 56 | if item is not None: 57 | for tm in item: 58 | file.write(str(tm)+ "\n") 59 | file.close() 60 | 61 | def __str__(self): 62 | tmpStr = "" 63 | for item in self.map: 64 | if item is not None: 65 | tmpStr += str(item) + ", " 66 | 67 | return tmpStr -------------------------------------------------------------------------------- /src/common/WinApi.py: -------------------------------------------------------------------------------- 1 | from common.HashMap import HashMap 2 | 3 | class WinApi: 4 | 5 | keymap = HashMap() 6 | callMap = HashMap() 7 | 8 | keyIndex = 0 9 | 10 | def __init__(self): 11 | file = open("../data/WinAPIs.txt", "r") 12 | 13 | self.keyIndex = 0 14 | for line in file: 15 | if line == "" or line == "\n": 16 | continue 17 | if line.startswith(":"): 18 | continue 19 | 20 | key = line.replace("\n", "").lower() 21 | self.addApi(key) 22 | 23 | def getCode(self, key): 24 | tmpKey = key.lower() 25 | code = self.keymap.get(tmpKey) 26 | 27 | if (code == None): 28 | print(key + " not found in file. And added to map") 29 | self.addApi(tmpKey) 30 | return self.keymap.get(tmpKey.lower()) 31 | 32 | return code 33 | 34 | def getAPICode(self, key): 35 | code = self.getCode(key) 36 | self.callMap.add(key,code) 37 | return code 38 | 39 | def addApi(self, key): 40 | self.keymap.add(key, str(self.keyIndex)) 41 | self.keyIndex += 1 42 | 43 | 44 | def writeKeys(self): 45 | self.keymap.write("../data/result/ApiMap.txt") 46 | self.callMap.write("../data/result/CallApiMap.txt") -------------------------------------------------------------------------------- /src/common/readme.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/multiclass/AnalizeRunner.py: -------------------------------------------------------------------------------- 1 | from sklearn.model_selection import train_test_split 2 | from sklearn.metrics import confusion_matrix 3 | from sklearn.metrics import accuracy_score 4 | from sklearn.metrics import classification_report 5 | import pandas as pd 6 | from keras import preprocessing 7 | from keras.utils import to_categorical 8 | import numpy 9 | from keras.models import Sequential 10 | from keras.layers import Dense, LSTM, Dropout 11 | from keras.layers.embeddings import Embedding 12 | from keras.layers import Flatten 13 | import matplotlib.pyplot as plt 14 | import os 15 | from keras import regularizers 16 | import datetime 17 | from keras.utils import plot_model 18 | from keras.callbacks import EarlyStopping 19 | from .ModelUtil import ModelUtil 20 | from .LatexReporter import LatexReporter 21 | from .LSTMParameter import LSTMParameters 22 | from .LSTMParameter import LSTM2Parameters 23 | from .SVMParameter import SVMParameters 24 | from sklearn.svm import SVC 25 | from sklearn.neighbors import KNeighborsClassifier 26 | from .KNNParameter import KNNParameters 27 | from sklearn.ensemble import RandomForestClassifier 28 | from .RFParameter import RFParameters 29 | from sklearn.tree import DecisionTreeClassifier 30 | from .DTParameter import DTParameters 31 | from sklearn.utils import class_weight 32 | from sklearn.utils.class_weight import compute_class_weight 33 | 34 | 35 | 36 | class AnalizeRunner: 37 | 38 | modelUtil = ModelUtil() 39 | latexReporter = LatexReporter() 40 | 41 | def startAnalize(self, X, y, path): 42 | 43 | 44 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 45 | 46 | self.start2LayerLSTMAnalize(X_train, X_test, y_train, y_test, path) 47 | self.startLSTMAnalize(X_train, X_test, y_train, y_test, path) 48 | self.startSVMAnalize(X_train, X_test, y_train, y_test, path) 49 | self.startKNNAnalize(X_train, X_test, y_train, y_test, path) 50 | self.startDTAnalize(X_train, X_test, y_train, y_test, path) 51 | self.startRFAnalize(X_train, X_test, y_train, y_test, path) 52 | 53 | def startDTAnalize(self, X_train, X_test, y_train, y_test, path): 54 | dtPath = "DT\\" 55 | latex_file = self.createFolder(path + dtPath) 56 | 57 | params = DTParameters() 58 | 59 | index = params.index 60 | for param in params.parameters: 61 | 62 | analizePath = dtPath + "Analize"+ str(index) +"\\" 63 | os.makedirs(path + analizePath) 64 | 65 | matrix, report = self.dtModelFit(X_train, X_test, y_train, y_test, param) 66 | 67 | self.saveGResultFiles(matrix, report, (path + analizePath)) 68 | self.createAndWriteDTLatex(latex_file, report, matrix, param, index) 69 | 70 | index = index + 1 71 | 72 | latex_file.close() 73 | 74 | def startRFAnalize(self, X_train, X_test, y_train, y_test, path): 75 | rfPath = "RF\\" 76 | latex_file = self.createFolder(path + rfPath) 77 | 78 | params = RFParameters() 79 | 80 | index = params.index 81 | for param in params.parameters: 82 | 83 | analizePath = rfPath + "Analize"+ str(index) +"\\" 84 | os.makedirs(path + analizePath) 85 | 86 | matrix, report = self.rfModelFit(X_train, X_test, y_train, y_test, param) 87 | 88 | self.saveGResultFiles(matrix, report, (path + analizePath)) 89 | self.createAndWriteRFLatex(latex_file, report, matrix, param, index) 90 | 91 | index = index + 1 92 | 93 | latex_file.close() 94 | 95 | def startKNNAnalize(self, X_train, X_test, y_train, y_test, path): 96 | knnPath = "KNN\\" 97 | latex_file = self.createFolder(path + knnPath) 98 | 99 | params = KNNParameters() 100 | 101 | index = params.index 102 | for param in params.parameters: 103 | 104 | analizePath = knnPath + "Analize"+ str(index) +"\\" 105 | os.makedirs(path + analizePath) 106 | 107 | matrix, report = self.knnModelFit(X_train, X_test, y_train, y_test, param) 108 | 109 | self.saveGResultFiles(matrix, report, (path + analizePath)) 110 | self.createAndWriteKNNLatex(latex_file, report, matrix, param, index) 111 | 112 | index = index + 1 113 | 114 | latex_file.close() 115 | 116 | def startSVMAnalize(self, X_train, X_test, y_train, y_test, path): 117 | 118 | svmPath = "SVM\\" 119 | latex_file = self.createFolder(path + svmPath) 120 | 121 | params = SVMParameters() 122 | 123 | index = params.index 124 | for param in params.parameters: 125 | 126 | analizePath = svmPath + "Analize"+ str(index) +"\\" 127 | os.makedirs(path + analizePath) 128 | 129 | matrix, report = self.svmModelFit(X_train, X_test, y_train, y_test, param) 130 | 131 | self.saveGResultFiles(matrix, report, (path + analizePath)) 132 | self.createAndWriteSVMLatex(latex_file, report, matrix, param, index) 133 | 134 | index = index + 1 135 | 136 | latex_file.close() 137 | 138 | 139 | def startLSTMAnalize(self, X_train, X_test, y_train, y_test, path): 140 | 141 | lstmPath = "LSTM\\" 142 | latex_file = self.createFolder(path + lstmPath) 143 | 144 | params = LSTMParameters() 145 | 146 | index = params.index 147 | for param in params.parameters: 148 | 149 | analizePath = lstmPath + "Analize"+ str(index) +"\\" 150 | os.makedirs(path + analizePath) 151 | 152 | model, history = self.oneLayerlstmModelFit(X_train, y_train, param) 153 | prediction = model.predict_classes(X_test) 154 | matrix = confusion_matrix(y_test, prediction) 155 | report = classification_report(y_test, prediction) 156 | self.saveLSTMResultFiles(model, history, matrix, report, (path + analizePath)) 157 | 158 | self.createAndWriteOneLayerLSTMLatex(latex_file, report, matrix, param, index) 159 | 160 | index = index + 1 161 | 162 | latex_file.close() 163 | 164 | def start2LayerLSTMAnalize(self, X_train, X_test, y_train, y_test, path): 165 | 166 | lstmPath = "LSTM-2\\" 167 | latex_file = self.createFolder(path + lstmPath) 168 | 169 | params = LSTM2Parameters() 170 | 171 | index = params.index 172 | for param in params.parameters: 173 | 174 | analizePath = lstmPath + "Analize"+ str(index) +"\\" 175 | os.makedirs(path + analizePath) 176 | 177 | model, history = self.twoLayerlstmModelFit(X_train, y_train, param) 178 | prediction = model.predict_classes(X_test) 179 | matrix = confusion_matrix(y_test, prediction) 180 | report = classification_report(y_test, prediction) 181 | self.saveLSTMResultFiles(model, history, matrix, report, (path + analizePath)) 182 | 183 | self.createAndWriteTwoLayerLSTMLatex(latex_file, report, matrix, param, index) 184 | 185 | index = index + 1 186 | 187 | latex_file.close() 188 | 189 | def twoLayerlstmModelFit(self, X_train, y_train, param): 190 | 191 | model = Sequential() 192 | model.add(Embedding(342, param.embedding_units, input_length=342)) 193 | model.add(LSTM(param.units, activation=param.lstm_activation, return_sequences=True)) 194 | model.add(Dropout(param.dropout)) 195 | model.add(LSTM(param.units, activation= param.lstm_activation ,dropout=param.dropout, recurrent_dropout=param.recurrent_dropout)) 196 | model.add(Dense(8, activation='softmax')) 197 | # model.add(Dense(2, activation="softmax", kernel_regularizer=regularizers.l2(0.01), 198 | # activity_regularizer=regularizers.l1(0.01))) 199 | 200 | # compile the model 201 | model.compile(loss=param.loss_func, optimizer=param.optimizer, metrics=['acc']) 202 | # summarize the model 203 | model.summary() 204 | 205 | es = EarlyStopping(monitor='val_loss', verbose=1, min_delta=0.0001, patience=2, mode='auto') 206 | # evaluate the model 207 | 208 | history = model.fit(X_train, to_categorical(y_train), epochs=param.epochs, batch_size=param.batch_size, verbose=1, 209 | validation_split=0.3, callbacks=[es]) 210 | 211 | return model, history 212 | 213 | def oneLayerlstmModelFit(self, X_train, y_train, param): 214 | 215 | # define the model 216 | model = Sequential() 217 | model.add(Embedding(342, param.embedding_units, input_length=342)) 218 | 219 | model.add(LSTM(param.units, activation= param.lstm_activation ,dropout=param.dropout, recurrent_dropout=param.recurrent_dropout)) 220 | model.add(Dense(8, activation='softmax')) 221 | # compile the model 222 | model.compile(loss=param.loss_func, optimizer=param.optimizer, metrics=['acc']) 223 | # summarize the model 224 | model.summary() 225 | 226 | es = EarlyStopping(monitor='val_loss', verbose=1, min_delta=0.0001, patience=2, mode='auto') 227 | # evaluate the model 228 | 229 | history = model.fit(X_train, to_categorical(y_train), epochs=param.epochs, batch_size=param.batch_size, verbose=1, 230 | validation_split=0.3, callbacks=[es]) 231 | 232 | return model, history 233 | 234 | 235 | def dtModelFit(self, X_train, X_test, y_train, y_test, param): 236 | clf = DecisionTreeClassifier(random_state=param.random_state, min_samples_split=param.min_samples_split, 237 | min_samples_leaf=param.min_samples_leaf, max_depth=param.max_depth) 238 | clf.fit(X_train, y_train) 239 | 240 | predictions = clf.predict_proba(X_test) 241 | 242 | matrix = confusion_matrix(y_test, predictions.argmax(axis=1)) 243 | report = classification_report(y_test, predictions.argmax(axis=1)) 244 | 245 | return matrix, report 246 | 247 | def rfModelFit(self, X_train, X_test, y_train, y_test, param): 248 | 249 | class_weights = compute_class_weight('balanced', numpy.unique(y_train), y_train) 250 | 251 | dic = {0: class_weights[0], 1: class_weights[1], 2: class_weights[2], 3: class_weights[3], 4: class_weights[4], 252 | 5: class_weights[5], 6: class_weights[6], 7: class_weights[7]} 253 | param.class_weights = dic 254 | 255 | clf = RandomForestClassifier(n_estimators=param.n_estimators, max_depth=param.max_depth, 256 | min_samples_split=param.min_samples_split, min_samples_leaf=param.min_samples_leaf, 257 | class_weight=dic) 258 | clf.fit(X_train, y_train) 259 | 260 | predictions = clf.predict_proba(X_test) 261 | 262 | matrix = confusion_matrix(y_test, predictions.argmax(axis=1)) 263 | report = classification_report(y_test, predictions.argmax(axis=1)) 264 | 265 | return matrix, report 266 | 267 | def knnModelFit(self, X_train, X_test, y_train, y_test, param): 268 | clf = KNeighborsClassifier(n_neighbors=param.n_neighbors, p=param.p, 269 | algorithm=param.algorithm) 270 | clf.fit(X_train, y_train) 271 | 272 | predictions = clf.predict_proba(X_test) 273 | 274 | matrix = confusion_matrix(y_test, predictions.argmax(axis=1)) 275 | report = classification_report(y_test, predictions.argmax(axis=1)) 276 | 277 | return matrix, report 278 | 279 | 280 | def svmModelFit(self, X_train, X_test, y_train, y_test, param): 281 | 282 | class_weights = compute_class_weight('balanced', numpy.unique(y_train), y_train) 283 | 284 | dic = {0: class_weights[0], 1: class_weights[1], 2: class_weights[2], 3: class_weights[3], 4: class_weights[4], 285 | 5: class_weights[5], 6: class_weights[6], 7: class_weights[7]} 286 | param.class_weights = dic 287 | clf = SVC(probability=True, kernel=param.kernel, C=param.c, class_weight=dic) 288 | clf.fit(X_train, y_train) 289 | 290 | predictions = clf.predict_proba(X_test) 291 | 292 | matrix = confusion_matrix(y_test, predictions.argmax(axis=1)) 293 | report = classification_report(y_test, predictions.argmax(axis=1)) 294 | 295 | return matrix, report 296 | 297 | def createAndWriteOneLayerLSTMLatex(self, latex_file, report, matrix, param, index): 298 | figurePath = "LSTM/Analize" + str(index) 299 | 300 | self.writeToFile(self.latexReporter.prepareLSTMSectionTitle(index, "Tek"), latex_file) 301 | self.writeToFile(self.latexReporter.prepareLSTMDef("Tek"), latex_file) 302 | 303 | self.writeToFile(self.latexReporter.prepareLSTMParameters(param), latex_file) 304 | 305 | self.writeToFile(self.latexReporter.prepareDefFigures(index), latex_file) 306 | self.writeToFile(self.latexReporter.prepareTrainFigure(figurePath, index, ""), latex_file) 307 | 308 | self.writeToFile(self.latexReporter.prepareDefConfMatrix(index, "LSTM"), latex_file) 309 | self.writeToFile(self.latexReporter.prepareConfisuonMatrix(matrix, index, "LSTM"), latex_file) 310 | 311 | self.writeToFile(self.latexReporter.prepareDefResultTable(index, "LSTM"), latex_file) 312 | self.writeToFile(self.latexReporter.prepareResultTable(report, index, "LSTM"), latex_file) 313 | 314 | def createAndWriteTwoLayerLSTMLatex(self, latex_file, report, matrix, param, index): 315 | figurePath = "LSTM-2/Analize" + str(index) 316 | 317 | self.writeToFile(self.latexReporter.prepareLSTMSectionTitle(index, "İki"), latex_file) 318 | self.writeToFile(self.latexReporter.prepareLSTMDef("İki"), latex_file) 319 | 320 | self.writeToFile(self.latexReporter.prepare2LSTMParameters(param), latex_file) 321 | 322 | self.writeToFile(self.latexReporter.prepareDefFigures(index), latex_file) 323 | self.writeToFile(self.latexReporter.prepareTrainFigure(figurePath, index, "2"), latex_file) 324 | 325 | self.writeToFile(self.latexReporter.prepareDefConfMatrix(index, "LSTM2"), latex_file) 326 | self.writeToFile(self.latexReporter.prepareConfisuonMatrix(matrix, index, "LSTM2"), latex_file) 327 | 328 | self.writeToFile(self.latexReporter.prepareDefResultTable(index, "LSTM2"), latex_file) 329 | self.writeToFile(self.latexReporter.prepareResultTable(report, index, "LSTM2"), latex_file) 330 | 331 | def createAndWriteSVMLatex(self, latex_file, report, matrix, param, index): 332 | 333 | self.writeToFile(self.latexReporter.prepareGSectionTitle(index, "SVM"), latex_file) 334 | self.writeToFile(self.latexReporter.prepareGDef("SVM"), latex_file) 335 | 336 | self.writeToFile(self.latexReporter.prepareSVMParameters(param), latex_file) 337 | 338 | self.writeToFile(self.latexReporter.prepareDefConfMatrix(index, "SVM"), latex_file) 339 | self.writeToFile(self.latexReporter.prepareConfisuonMatrix(matrix, index, "SVM"), latex_file) 340 | 341 | self.writeToFile(self.latexReporter.prepareDefResultTable(index, "SVM"), latex_file) 342 | self.writeToFile(self.latexReporter.prepareResultTable(report, index, "SVM"), latex_file) 343 | 344 | def createAndWriteKNNLatex(self, latex_file, report, matrix, param, index): 345 | 346 | self.writeToFile(self.latexReporter.prepareGSectionTitle(index, "kNN"), latex_file) 347 | self.writeToFile(self.latexReporter.prepareGDef("kNN"), latex_file) 348 | 349 | self.writeToFile(self.latexReporter.prepareKNNParameters(param), latex_file) 350 | 351 | self.writeToFile(self.latexReporter.prepareDefConfMatrix(index, "kNN"), latex_file) 352 | self.writeToFile(self.latexReporter.prepareConfisuonMatrix(matrix, index, "kNN"), latex_file) 353 | 354 | self.writeToFile(self.latexReporter.prepareDefResultTable(index, "kNN"), latex_file) 355 | self.writeToFile(self.latexReporter.prepareResultTable(report, index, "kNN"), latex_file) 356 | 357 | def createAndWriteRFLatex(self, latex_file, report, matrix, param, index): 358 | 359 | self.writeToFile(self.latexReporter.prepareGSectionTitle(index, "RF"), latex_file) 360 | self.writeToFile(self.latexReporter.prepareGDef("RF"), latex_file) 361 | 362 | self.writeToFile(self.latexReporter.prepareRFParameters(param), latex_file) 363 | 364 | self.writeToFile(self.latexReporter.prepareDefConfMatrix(index, "RF"), latex_file) 365 | self.writeToFile(self.latexReporter.prepareConfisuonMatrix(matrix, index, "RF"), latex_file) 366 | 367 | self.writeToFile(self.latexReporter.prepareDefResultTable(index, "RF"), latex_file) 368 | self.writeToFile(self.latexReporter.prepareResultTable(report, index, "RF"), latex_file) 369 | 370 | def createAndWriteDTLatex(self, latex_file, report, matrix, param, index): 371 | 372 | self.writeToFile(self.latexReporter.prepareGSectionTitle(index, "DT"), latex_file) 373 | self.writeToFile(self.latexReporter.prepareGDef("DT"), latex_file) 374 | 375 | self.writeToFile(self.latexReporter.prepareDTParameters(param), latex_file) 376 | 377 | self.writeToFile(self.latexReporter.prepareDefConfMatrix(index, "DT"), latex_file) 378 | self.writeToFile(self.latexReporter.prepareConfisuonMatrix(matrix, index, "DT"), latex_file) 379 | 380 | self.writeToFile(self.latexReporter.prepareDefResultTable(index, "DT"), latex_file) 381 | self.writeToFile(self.latexReporter.prepareResultTable(report, index, "DT"), latex_file) 382 | 383 | def writeToFile(self, latexStr, file): 384 | file.write(str(latexStr)) 385 | file.write("\n\n") 386 | 387 | def createFolder(self, fullPath): 388 | os.makedirs(fullPath) 389 | return open(fullPath + "LatexFile.txt", "w") 390 | 391 | def saveLSTMResultFiles(self, model, history, matrix, report, analizePath): 392 | model.save(analizePath + "Model") 393 | self.modelUtil.saveAccHistory(history, analizePath) 394 | self.modelUtil.saveLostHistory(history, analizePath) 395 | self.modelUtil.saveModelLayer(model, analizePath) 396 | self.modelUtil.saveConfisuonMatrixAndResult(matrix, report, analizePath) 397 | 398 | def saveGResultFiles(self, matrix, report, analizePath): 399 | self.modelUtil.saveConfisuonMatrixAndResult(matrix, report, analizePath) 400 | -------------------------------------------------------------------------------- /src/multiclass/DTParameter.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | class DTParameter: 4 | def __init__(self, random_state, min_samples_split, min_samples_leaf, max_depth): 5 | 6 | #Embedding 7 | self.random_state = random_state 8 | self.min_samples_split = min_samples_split 9 | self.min_samples_leaf = min_samples_leaf 10 | self.max_depth = max_depth 11 | 12 | 13 | class DTParameters: 14 | def __init__(self): 15 | # model 16 | self.parameters = [] 17 | 18 | #2019-07-06 09_09_39.367144 19 | 20 | self.parameters.append(DTParameter(0, 3, 2, 1)) 21 | self.parameters.append(DTParameter(0, 5, 2, 3)) 22 | self.parameters.append(DTParameter(0, 10, 2, 7)) 23 | 24 | self.parameters.append(DTParameter(0, 3, 3, 1)) 25 | self.parameters.append(DTParameter(0, 5, 5, 3)) 26 | self.parameters.append(DTParameter(0, 10, 7, 5)) 27 | 28 | self.parameters.append(DTParameter(0, 10, 7, 7)) 29 | self.parameters.append(DTParameter(0, 10, 7, 9)) 30 | self.parameters.append(DTParameter(0, 3, 2, 1)) 31 | self.parameters.append(DTParameter(0, 5, 2, 3)) 32 | self.parameters.append(DTParameter(0, 10, 2, 7)) 33 | 34 | self.parameters.append(DTParameter(0, 3, 3, 1)) 35 | 36 | self.parameters.append(DTParameter(0, 3, 2, 1)) 37 | self.parameters.append(DTParameter(0, 5, 2, 3)) 38 | self.parameters.append(DTParameter(0, 10, 2, 7)) 39 | 40 | self.parameters.append(DTParameter(0, 3, 3, 1)) 41 | self.parameters.append(DTParameter(0, 5, 5, 3)) 42 | self.parameters.append(DTParameter(0, 10, 7, 5)) 43 | 44 | self.parameters.append(DTParameter(0, 10, 7, 7)) 45 | self.parameters.append(DTParameter(0, 10, 7, 9)) 46 | 47 | 48 | self.index = 0 49 | 50 | 51 | -------------------------------------------------------------------------------- /src/multiclass/KNNParameter.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | class KNNParameter: 4 | def __init__(self, n_neighbors, p, algorithm): 5 | 6 | #Embedding 7 | self.n_neighbors = n_neighbors 8 | self.p = p 9 | self.algorithm = algorithm 10 | 11 | 12 | 13 | class KNNParameters: 14 | def __init__(self): 15 | # model 16 | self.parameters = [] 17 | # 2019-07-06 09_09_39.367144 18 | #1- 33 self.parameters.append(KNNParameter(3)) 19 | #2- 31 self.parameters.append(KNNParameter(5)) 20 | #3- 31 self.parameters.append(KNNParameter(9)) 21 | #4- 32 self.parameters.append(KNNParameter(15)) 22 | 23 | # 2019-07-06 13_51_03.456234 24 | #5- 30 self.parameters.append(KNNParameter(21)) 25 | 26 | self.parameters.append(KNNParameter(3, 3, "auto")) 27 | self.parameters.append(KNNParameter(3, 5, "auto")) 28 | self.parameters.append(KNNParameter(3, 7, "auto")) 29 | 30 | self.parameters.append(KNNParameter(3, 2, "ball_tree")) 31 | self.parameters.append(KNNParameter(3, 2, "kd_tree")) 32 | self.parameters.append(KNNParameter(3, 2, "brute")) 33 | 34 | self.parameters.append(KNNParameter(5, 2, "ball_tree")) 35 | self.parameters.append(KNNParameter(5, 2, "kd_tree")) 36 | self.parameters.append(KNNParameter(5, 2, "brute")) 37 | 38 | self.parameters.append(KNNParameter(7, 2, "brute")) 39 | 40 | self.parameters.append(KNNParameter(3, 3, "auto")) 41 | self.parameters.append(KNNParameter(3, 5, "auto")) 42 | self.parameters.append(KNNParameter(3, 7, "auto")) 43 | 44 | self.parameters.append(KNNParameter(3, 2, "ball_tree")) 45 | self.parameters.append(KNNParameter(3, 2, "kd_tree")) 46 | self.parameters.append(KNNParameter(3, 2, "brute")) 47 | 48 | self.parameters.append(KNNParameter(5, 2, "ball_tree")) 49 | self.parameters.append(KNNParameter(5, 2, "kd_tree")) 50 | self.parameters.append(KNNParameter(5, 2, "brute")) 51 | 52 | self.parameters.append(KNNParameter(7, 2, "brute")) 53 | 54 | self.index = 0 55 | 56 | 57 | -------------------------------------------------------------------------------- /src/multiclass/LSTMMultiClass.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Wed Aug 1 14:52:43 2018 4 | 5 | @author: user 6 | """ 7 | 8 | import pandas as pd 9 | from keras import preprocessing 10 | import os 11 | import datetime 12 | from multiclass.AnalizeRunner import AnalizeRunner 13 | 14 | ################################################## 15 | 16 | prefix = "dataset" 17 | 18 | data_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\deep-learning\Data\\result\\2018-09-19 23_05_12.089157\\filtered\\" 19 | model_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\multiclass\\result\\" 20 | main_folder_name = model_path + str(datetime.datetime.now()).replace(":", "_") + "\\" 21 | 22 | runner = AnalizeRunner() 23 | 24 | def read_type_data(): 25 | df = pd.read_csv(data_path + prefix + "_types.zip", delimiter=' ', header=None, compression="zip") 26 | df[0] = df[0].astype('category') 27 | cat = df[0].cat 28 | df[0] = df[0].cat.codes 29 | y = df[0].values 30 | return y 31 | 32 | def read_call_data(): 33 | df = pd.read_csv(data_path + prefix + "_calls.zip", delimiter=' ', header=None, compression="zip") 34 | D = df.values 35 | ds_tmp = D[:, 0].tolist() 36 | ds = [] 37 | for v in ds_tmp: 38 | ds.append(v.split(',')) 39 | 40 | X = preprocessing.sequence.pad_sequences(ds, maxlen=342) 41 | print(X.shape) 42 | return X 43 | 44 | 45 | 46 | os.makedirs(main_folder_name) 47 | 48 | print("-------------------basliyor------------") 49 | X = read_call_data() 50 | y = read_type_data() 51 | 52 | 53 | runner.startAnalize(X, y, main_folder_name) -------------------------------------------------------------------------------- /src/multiclass/LSTMParameter.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | class LSTMParameter: 4 | def __init__(self, embedding_units, unit, dropout, recurrent_dropout, lstm_activation, loss_func, optimizer, epochs, batch_size): 5 | 6 | #Embedding 7 | self.embedding_units = embedding_units 8 | 9 | #model 10 | self.units = unit 11 | self.dropout = dropout 12 | self.recurrent_dropout = recurrent_dropout 13 | self.lstm_activation = lstm_activation 14 | 15 | #model.compile 16 | self.loss_func = loss_func 17 | self.optimizer = optimizer 18 | 19 | #model.fit 20 | self.epochs = epochs 21 | self.batch_size = batch_size 22 | 23 | class LSTM2Parameter: 24 | def __init__(self, embedding_units, unit, dropout, recurrent_dropout, lstm_activation, loss_func, optimizer, epochs, batch_size): 25 | 26 | #Embedding 27 | self.embedding_units = embedding_units 28 | 29 | #model 30 | self.units = unit 31 | self.dropout = dropout 32 | self.recurrent_dropout = recurrent_dropout 33 | self.lstm_activation = lstm_activation 34 | 35 | #model.compile 36 | self.loss_func = loss_func 37 | self.optimizer = optimizer 38 | 39 | #model.fit 40 | self.epochs = epochs 41 | self.batch_size = batch_size 42 | 43 | 44 | class LSTMParameters: 45 | def __init__(self): 46 | # model 47 | 48 | self.parameters = [] 49 | #2019-07-06 09_09_39.367144 50 | #1- 30 51 | self.parameters.append(LSTMParameter(16, 100, 0.2, 0.2, "tanh", "categorical_crossentropy", "adam", 2, 50)) 52 | # #2- X 53 | # self.parameters.append(LSTMParameter(16, 100, 0.2, 0.2, "relu", "categorical_crossentropy", "adam", 50, 50)) 54 | # #3- 46 55 | # self.parameters.append(LSTMParameter(16, 100, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "adam", 50, 50)) 56 | # #4- X 57 | # self.parameters.append(LSTMParameter(16, 100, 0.2, 0.2, "softplus", "categorical_crossentropy", "adam", 50, 50)) 58 | # #5- 35 59 | # self.parameters.append(LSTMParameter(16, 100, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 50, 50)) 60 | # #6- 31 61 | # self.parameters.append(LSTMParameter(16, 100, 0.2, 0.2, "softmax", "categorical_crossentropy", "adam", 50, 50)) 62 | # #7- X 63 | # self.parameters.append(LSTMParameter(16, 100, 0.2, 0.2, "linear", "categorical_crossentropy", "adam", 50, 50)) 64 | # 65 | # # 2019-07-06 13_51_03.456234 66 | # #8- 31 67 | # self.parameters.append(LSTMParameter(16, 100, 0.1, 0.1, "tanh", "categorical_crossentropy", "adam", 150, 50)) 68 | # #9- 46 69 | # self.parameters.append(LSTMParameter(16, 100, 0.1, 0.1, "sigmoid", "categorical_crossentropy", "adam", 150, 50)) 70 | # #10- 36 71 | # self.parameters.append(LSTMParameter(16, 100, 0.1, 0.1, "softsign", "categorical_crossentropy", "adam", 150, 50)) 72 | # #11- 35 73 | # self.parameters.append(LSTMParameter(16, 100, 0.1, 0.1, "softmax", "categorical_crossentropy", "adam", 150, 50)) 74 | # 75 | # #12- 37 76 | # self.parameters.append(LSTMParameter(16, 100, 0.3, 0.3, "tanh", "categorical_crossentropy", "adam", 150, 50)) 77 | # #13- 40 78 | # self.parameters.append(LSTMParameter(16, 100, 0.3, 0.3, "sigmoid", "categorical_crossentropy", "adam", 150, 50)) 79 | # #14- 29 80 | # self.parameters.append(LSTMParameter(16, 100, 0.3, 0.3, "softsign", "categorical_crossentropy", "adam", 150, 50)) 81 | # #15- 27 82 | # self.parameters.append(LSTMParameter(16, 100, 0.3, 0.3, "softmax", "categorical_crossentropy", "adam", 150, 50)) 83 | # 84 | # #16- 44 85 | # self.parameters.append(LSTMParameter(16, 50, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "adam", 150, 50)) 86 | # #17- 44 87 | # self.parameters.append(LSTMParameter(32, 100, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "adam", 150, 50)) 88 | # #18- 47 89 | # self.parameters.append(LSTMParameter(32, 200, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "adam", 150, 50)) 90 | # 91 | # 92 | # #19- 32 93 | # self.parameters.append(LSTMParameter(16, 200, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "adam", 100, 25)) 94 | # #20- 39 95 | # self.parameters.append(LSTMParameter(16, 300, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "adam", 100, 50)) 96 | # 97 | # #21- 17 98 | # self.parameters.append(LSTMParameter(16, 200, 0.03, 0.03, "tanh", "categorical_crossentropy", "adam", 100, 50)) 99 | # #22- 42 100 | # self.parameters.append(LSTMParameter(16, 200, 0.03, 0.03, "sigmoid", "categorical_crossentropy", "adam", 100, 50)) 101 | # #23- 27 102 | # self.parameters.append(LSTMParameter(16, 200, 0.03, 0.03, "softsign", "categorical_crossentropy", "adam", 100, 50)) 103 | # #24- 27 104 | # self.parameters.append(LSTMParameter(16, 200, 0.03, 0.03, "softmax", "categorical_crossentropy", "adam", 100, 50)) 105 | # 106 | # #25 41 107 | # self.parameters.append(LSTMParameter(32, 200, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "adam", 150, 50)) 108 | # #26 41 109 | # self.parameters.append(LSTMParameter(16, 200, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "adam", 150, 100)) 110 | # 111 | # self.parameters.append(LSTMParameter(32, 200, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "sgd", 150, 50)) 112 | # self.parameters.append(LSTMParameter(32, 200, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "adagrad", 150, 50)) 113 | # self.parameters.append(LSTMParameter(32, 200, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "adadelta", 150, 50)) 114 | # self.parameters.append(LSTMParameter(32, 200, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "rmsprop", 150, 50)) 115 | # 116 | # self.parameters.append(LSTMParameter(32, 50, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "sgd", 150, 50)) 117 | # self.parameters.append(LSTMParameter(32, 50, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "adagrad", 150, 50)) 118 | # self.parameters.append(LSTMParameter(32, 50, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "adadelta", 150, 50)) 119 | # self.parameters.append(LSTMParameter(32, 50, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "rmsprop", 150, 50)) 120 | 121 | # self.parameters.append(LSTMParameter(16, 100, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "adagrad", 150, 50)) 122 | # self.parameters.append(LSTMParameter(16, 100, 0.3, 0.3, "sigmoid", "categorical_crossentropy", "adagrad", 150, 50)) 123 | 124 | self.index = 34 125 | 126 | 127 | class LSTM2Parameters: 128 | def __init__(self): 129 | # model 130 | self.parameters = [] 131 | 132 | # #2019-07-06 13_51_03.456234 133 | # #1- 35 134 | # self.parameters.append(LSTM2Parameter(16, 100, 0.2, 0.2, "tanh", "categorical_crossentropy", "adam", 150, 50)) 135 | # #2- X 136 | # self.parameters.append(LSTM2Parameter(16, 100, 0.2, 0.2, "relu", "categorical_crossentropy", "adam", 150, 50)) 137 | # #3- 32 138 | # self.parameters.append(LSTM2Parameter(16, 100, 0.2, 0.2, "sigmoid", "categorical_crossentropy", "adam", 150, 50)) 139 | # #4- X 140 | # self.parameters.append(LSTM2Parameter(16, 100, 0.2, 0.2, "softplus", "categorical_crossentropy", "adam", 150, 50)) 141 | # #5- 37 142 | # self.parameters.append(LSTM2Parameter(16, 100, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 143 | # #6- 3 144 | # self.parameters.append(LSTM2Parameter(16, 100, 0.2, 0.2, "softmax", "categorical_crossentropy", "adam", 150, 50)) 145 | # #7- X 146 | # self.parameters.append(LSTM2Parameter(16, 100, 0.2, 0.2, "linear", "categorical_crossentropy", "adam", 150, 50)) 147 | # 148 | # 149 | # #2019-07-06 19_20_29.489964 150 | # #8- 35 151 | # self.parameters.append(LSTM2Parameter(16, 100, 0.1, 0.1, "tanh", "categorical_crossentropy", "adam", 150, 50)) 152 | # #9- 25 153 | # self.parameters.append(LSTM2Parameter(16, 100, 0.1, 0.1, "sigmoid", "categorical_crossentropy", "adam", 150, 50)) 154 | # #10- 35 155 | # self.parameters.append(LSTM2Parameter(16, 100, 0.1, 0.1, "softsign", "categorical_crossentropy", "adam", 150, 50)) 156 | # 157 | # #11-35 158 | # self.parameters.append(LSTM2Parameter(16, 100, 0.3, 0.3, "tanh", "categorical_crossentropy", "adam", 150, 50)) 159 | # #12-27 160 | # self.parameters.append(LSTM2Parameter(16, 100, 0.3, 0.3, "sigmoid", "categorical_crossentropy", "adam", 150, 50)) 161 | # #13-39 162 | # self.parameters.append(LSTM2Parameter(16, 100, 0.3, 0.3, "softsign", "categorical_crossentropy", "adam", 150, 50)) 163 | # 164 | # 165 | # #14 34 166 | # self.parameters.append(LSTM2Parameter(16, 100, 0.4, 0.4, "softsign", "categorical_crossentropy", "adam", 150, 50)) 167 | # #15 37 168 | # self.parameters.append(LSTM2Parameter(16, 50, 0.4, 0.4, "softsign", "categorical_crossentropy", "adam", 150, 50)) 169 | # 170 | # #16 39 171 | # self.parameters.append(LSTM2Parameter(16, 25, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 172 | # #17 39 173 | # self.parameters.append(LSTM2Parameter(16, 50, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 174 | # #18 38 175 | # self.parameters.append(LSTM2Parameter(16, 200, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 176 | # #19 32 177 | # self.parameters.append(LSTM2Parameter(16, 300, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 178 | # #20 33 179 | # self.parameters.append(LSTM2Parameter(16, 100, 0.3, 0.3, "softsign", "categorical_crossentropy", "adam", 150, 100)) 180 | # #21 37 181 | # self.parameters.append(LSTM2Parameter(32, 100, 0.3, 0.3, "softsign", "categorical_crossentropy", "adam", 150, 100)) 182 | # 183 | # self.parameters.append(LSTM2Parameter(16, 15, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 184 | # self.parameters.append(LSTM2Parameter(16, 10, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 185 | # self.parameters.append(LSTM2Parameter(16, 5, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 186 | # self.parameters.append(LSTM2Parameter(16, 2, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 187 | # 188 | # self.parameters.append(LSTM2Parameter(32, 15, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 189 | # self.parameters.append(LSTM2Parameter(32, 10, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 190 | # self.parameters.append(LSTM2Parameter(32, 5, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 191 | # self.parameters.append(LSTM2Parameter(32, 2, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 192 | # 193 | # self.parameters.append(LSTM2Parameter(64, 15, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 194 | # self.parameters.append(LSTM2Parameter(64, 10, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 195 | # self.parameters.append(LSTM2Parameter(64, 5, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 196 | # self.parameters.append(LSTM2Parameter(64, 2, 0.2, 0.2, "softsign", "categorical_crossentropy", "adam", 150, 50)) 197 | # 198 | # self.parameters.append(LSTM2Parameter(16, 25, 0.2, 0.2, "softsign", "categorical_crossentropy", "sgd", 150, 50)) 199 | # self.parameters.append(LSTM2Parameter(16, 25, 0.2, 0.2, "softsign", "categorical_crossentropy", "adagrad", 150, 50)) 200 | # self.parameters.append(LSTM2Parameter(16, 25, 0.2, 0.2, "softsign", "categorical_crossentropy", "adadelta", 150, 50)) 201 | # self.parameters.append(LSTM2Parameter(16, 25, 0.2, 0.2, "softsign", "categorical_crossentropy", "rmsprop", 150, 50)) 202 | # 203 | # 204 | 205 | 206 | # self.parameters.append(LSTM2Parameter(16, 15, 0.2, 0.2, "tanh", "categorical_crossentropy", "adam", 150, 50)) 207 | # self.parameters.append(LSTM2Parameter(16, 10, 0.2, 0.2, "tanh", "categorical_crossentropy", "adam", 150, 50)) 208 | # self.parameters.append(LSTM2Parameter(16, 5, 0.2, 0.2, "tanh", "categorical_crossentropy", "adam", 150, 50)) 209 | # self.parameters.append(LSTM2Parameter(16, 2, 0.2, 0.2, "tanh", "categorical_crossentropy", "adam", 150, 50)) 210 | # 211 | # self.parameters.append(LSTM2Parameter(32, 15, 0.2, 0.2, "tanh", "categorical_crossentropy", "adam", 150, 50)) 212 | # self.parameters.append(LSTM2Parameter(32, 10, 0.2, 0.2, "tanh", "categorical_crossentropy", "adam", 150, 50)) 213 | # self.parameters.append(LSTM2Parameter(32, 5, 0.2, 0.2, "tanh", "categorical_crossentropy", "adam", 150, 50)) 214 | # self.parameters.append(LSTM2Parameter(32, 2, 0.2, 0.2, "tanh", "categorical_crossentropy", "adam", 150, 50)) 215 | # 216 | # self.parameters.append(LSTM2Parameter(64, 15, 0.2, 0.2, "tanh", "categorical_crossentropy", "adam", 150, 50)) 217 | # self.parameters.append(LSTM2Parameter(64, 10, 0.2, 0.2, "tanh", "categorical_crossentropy", "adam", 150, 50)) 218 | # self.parameters.append(LSTM2Parameter(64, 5, 0.2, 0.2, "tanh", "categorical_crossentropy", "adam", 150, 50)) 219 | # self.parameters.append(LSTM2Parameter(64, 2, 0.2, 0.2, "tanh", "categorical_crossentropy", "adam", 150, 50)) 220 | # 221 | # self.parameters.append(LSTM2Parameter(16, 25, 0.2, 0.2, "tanh", "categorical_crossentropy", "sgd", 150, 50)) 222 | # self.parameters.append(LSTM2Parameter(16, 25, 0.2, 0.2, "tanh", "categorical_crossentropy", "adagrad", 150, 50)) 223 | # self.parameters.append(LSTM2Parameter(16, 25, 0.2, 0.2, "tanh", "categorical_crossentropy", "adadelta", 150, 50)) 224 | # self.parameters.append(LSTM2Parameter(16, 25, 0.2, 0.2, "tanh", "categorical_crossentropy", "rmsprop", 150, 50)) 225 | 226 | self.index = 34 -------------------------------------------------------------------------------- /src/multiclass/LatexReporter.py: -------------------------------------------------------------------------------- 1 | class LatexReporter: 2 | 3 | 4 | def prepareLSTMSectionTitle(self, index, alg): 5 | return "\\subsubsection {"+str(alg)+" Katmanlı LSTM Analiz-" + str(index) +" Sonuçları}" 6 | 7 | def prepareGSectionTitle(self, index, alg): 8 | return "\\subsubsection {"+str(alg)+" Analiz-" + str(index) +" Sonuçları}" 9 | 10 | def prepareLSTMDef(self, prefix): 11 | return str(prefix) + " katmanlı bir LSTM modeli oluşturulmuştur. Bu model 0-7 arasında bir çıktı üretmektedir. Bu değerler zararlı yazılım türlerini temsil etmektedir." 12 | 13 | def prepareGDef(self, prefix): 14 | return str(prefix) + " algoritması kullanılarak bir sınıflandırma modeli oluşturulmuştur. Bu model 0-7 arasında bir çıktı üretmektedir. Bu değerler zararlı yazılım türlerini temsil etmektedir." 15 | 16 | def prepareLSTMParameters(self, param): 17 | latexStr = """Bu model oluşturulurken kullanılan parametreler aşağıdadır. 18 | \\begin{itemize}[noitemsep,nolistsep] 19 | \\item Embedding units: """ + str(param.embedding_units) + """ 20 | \\item units: """ + str(param.units) + """ 21 | \\item dropout: """ + str(param.dropout) + """ 22 | \\item recurrent_dropout: """ + str(param.recurrent_dropout) + """ 23 | \\item activation: """ + param.lstm_activation + """ 24 | \\item loss_func: """ + param.loss_func + """ 25 | \\item optimizer: """ + param.optimizer + """ 26 | \\item epochs: """ + str(param.epochs) + """ 27 | \\item batch_size: """ + str(param.batch_size) + """ 28 | \\end{itemize}""" 29 | 30 | return latexStr.replace("_", "\\_") 31 | 32 | def prepare2LSTMParameters(self, param): 33 | latexStr = """Bu model oluşturulurken kullanılan parametreler aşağıdadır. 34 | \\begin{itemize}[noitemsep,nolistsep] 35 | \\item Embedding units: """ + str(param.embedding_units) + """ 36 | \\item units: """ + str(param.units) + """ 37 | \\item dropout: """ + str(param.dropout) + """ 38 | \\item activation: """ + param.lstm_activation + """ 39 | \\item loss_func: """ + param.loss_func + """ 40 | \\item optimizer: """ + param.optimizer + """ 41 | \\item epochs: """ + str(param.epochs) + """ 42 | \\item batch_size: """ + str(param.batch_size) + """ 43 | \\end{itemize}""" 44 | 45 | return latexStr.replace("_", "\\_") 46 | 47 | def prepareSVMParameters(self, param): 48 | latexStr = """Bu model oluşturulurken kullanılan parametreler aşağıdadır. 49 | \\begin{itemize}[noitemsep,nolistsep] 50 | \\item kernel: """ + str(param.kernel) + """ 51 | \\item C: """ + str(param.c) + """ 52 | \\item gamma: """ + str(param.gamma) + """ 53 | \\item class_weights: """ + str(param.class_weights) + """ 54 | \\end{itemize}""" 55 | 56 | return latexStr.replace("_", "\\_") 57 | 58 | def prepareKNNParameters(self, param): 59 | latexStr = """Bu model oluşturulurken kullanılan parametreler aşağıdadır. 60 | \\begin{itemize}[noitemsep,nolistsep] 61 | \\item n_neighbors: """ + str(param.n_neighbors) + """ 62 | \\item p: """ + str(param.p) + """ 63 | \\item algorithm: """ + str(param.algorithm) + """ 64 | \\end{itemize}""" 65 | 66 | return latexStr.replace("_", "\\_") 67 | 68 | def prepareRFParameters(self, param): 69 | latexStr = """Bu model oluşturulurken kullanılan parametreler aşağıdadır. 70 | \\begin{itemize}[noitemsep,nolistsep] 71 | \\item n_estimators: """ + str(param.n_estimators) + """ 72 | \\item max_depth: """ + str(param.max_depth) + """ 73 | \\item min_samples_split: """ + str(param.min_samples_split) + """ 74 | \\item min_samples_leaf: """ + str(param.min_samples_leaf) + """ 75 | \\item class_weight: """ + str(param.class_weights) + """ 76 | \\end{itemize}""" 77 | 78 | return latexStr.replace("_", "\\_") 79 | 80 | def prepareDTParameters(self, param): 81 | latexStr = """Bu model oluşturulurken kullanılan parametreler aşağıdadır. 82 | \\begin{itemize}[noitemsep,nolistsep] 83 | \\item random_state: """ + str(param.random_state) + """ 84 | \\item min_samples_split: """ + str(param.min_samples_split) + """ 85 | \\item max_depth: """ + str(param.max_depth) + """ 86 | \\end{itemize}""" 87 | 88 | return latexStr.replace("_", "\\_") 89 | 90 | def prepareDefFigures(self, index): 91 | latexStr = """İlgili parametreler kullanılarak oluşturulan modelin eğitim geçmişi, doğruluk (accuracy) ve kayıp (loss) grafikleri 92 | Şekil \\ref{fig:lstm_model_""" + str(index) + """_acc_lost}‘ de verilmiştir.""" 93 | return latexStr 94 | 95 | def prepareTrainFigure(self, analizePath, index, suffix): 96 | return """\\begin{figure}[H] 97 | \centering 98 | \\begin{subfigure}[b]{0.48\\textwidth} 99 | \includegraphics[width=\\textwidth]{./Figures/""" + analizePath + """/acc.eps} 100 | \caption{Doğruluk(accurancy) grafiği} 101 | \end{subfigure} 102 | ~ 103 | \\begin{subfigure}[b]{0.48\\textwidth} 104 | \includegraphics[width=\\textwidth]{./Figures/""" + analizePath + """/loss.eps} 105 | \caption{Kayıp(loss) grafiği} 106 | \end{subfigure} 107 | ~ 108 | \caption{LSTM""" + str(suffix) + """ Model-""" + str(index) + """ doğruluk-kayıp grafikleri} 109 | \label{fig:lstm_model_""" + str(index) + """_acc_lost} 110 | \end{figure}""" 111 | 112 | def prepareDefConfMatrix(self, index, alg): 113 | return """Eğitilen sınıflandırma modelinin test edilmesi sonucunda elde edilen Hata Matris (Confusion Matrix) bilgileri 114 | Tablo \\ref{tablo_""" + str(alg) + """_conf_matrix_Model-""" + str(index) + """}‘ de verilmiştir.""" 115 | 116 | def prepareConfisuonMatrix(self, matrix, index, alg): 117 | 118 | return """\\begin{table}[htb] 119 | \\caption{""" + str(alg) + """ Model-""" + str(index) + """ Analiz Hata Matrisi} 120 | \\label{tablo_""" + str(alg) + """_conf_matrix_Model-""" + str(index) + """} 121 | \\begin{center} 122 | \\footnotesize\\begin{tabular}{|c|c|c|c|c|c|c|c|}\hline 123 | """+str(matrix[0][0])+""" & """+str(matrix[0][1])+""" & """+str(matrix[0][2])+""" & """+str(matrix[0][3])+""" & """+str(matrix[0][4])+""" & """+str(matrix[0][5])+""" & """+str(matrix[0][6])+""" & """+str(matrix[0][7])+""" \\\\ \hline 124 | """+str(matrix[1][0])+""" & """+str(matrix[1][1])+""" & """+str(matrix[1][2])+""" & """+str(matrix[1][3])+""" & """+str(matrix[1][4])+""" & """+str(matrix[1][5])+""" & """+str(matrix[1][6])+""" & """+str(matrix[1][7])+""" \\\\ \hline 125 | """+str(matrix[2][0])+""" & """+str(matrix[2][1])+""" & """+str(matrix[2][2])+""" & """+str(matrix[2][3])+""" & """+str(matrix[2][4])+""" & """+str(matrix[2][5])+""" & """+str(matrix[2][6])+""" & """+str(matrix[2][7])+""" \\\\ \hline 126 | """+str(matrix[3][0])+""" & """+str(matrix[3][1])+""" & """+str(matrix[3][2])+""" & """+str(matrix[3][3])+""" & """+str(matrix[3][4])+""" & """+str(matrix[3][5])+""" & """+str(matrix[3][6])+""" & """+str(matrix[3][7])+""" \\\\ \hline 127 | """+str(matrix[4][0])+""" & """+str(matrix[4][1])+""" & """+str(matrix[4][2])+""" & """+str(matrix[4][3])+""" & """+str(matrix[4][4])+""" & """+str(matrix[4][5])+""" & """+str(matrix[4][6])+""" & """+str(matrix[4][7])+""" \\\\ \hline 128 | """+str(matrix[5][0])+""" & """+str(matrix[5][1])+""" & """+str(matrix[5][2])+""" & """+str(matrix[5][3])+""" & """+str(matrix[5][4])+""" & """+str(matrix[5][5])+""" & """+str(matrix[5][6])+""" & """+str(matrix[5][7])+""" \\\\ \hline 129 | """+str(matrix[6][0])+""" & """+str(matrix[6][1])+""" & """+str(matrix[6][2])+""" & """+str(matrix[6][3])+""" & """+str(matrix[6][4])+""" & """+str(matrix[6][5])+""" & """+str(matrix[6][6])+""" & """+str(matrix[6][7])+""" \\\\ \hline 130 | """+str(matrix[7][0])+""" & """+str(matrix[7][1])+""" & """+str(matrix[7][2])+""" & """+str(matrix[7][3])+""" & """+str(matrix[7][4])+""" & """+str(matrix[7][5])+""" & """+str(matrix[7][6])+""" & """+str(matrix[7][7])+""" \\\\ \hline 131 | \end{tabular} 132 | \end{center} 133 | \end{table}""" 134 | 135 | 136 | def prepareDefResultTable(self, index, alg): 137 | return """Eğitilen sınıflandırma modelinin test edilmesi sonucunda elde edilen analiz sonuçları 138 | Tablo \\ref{tablo_""" + str(alg) + """_result_Model-"""+str(index)+"""}' de gösterilmektedir.""" 139 | 140 | def prepareResultTable(self, report, index, alg): 141 | 142 | arr = report.split("\n\n") 143 | values = arr[1].split("\n") 144 | 145 | adware = values[0].split() 146 | backdoor = values[1].split() 147 | downloader = values[2].split() 148 | dropper = values[3].split() 149 | spyware = values[4].split() 150 | trojan = values[5].split() 151 | virus = values[6].split() 152 | worm = values[7].split() 153 | 154 | avg = arr[2].split() 155 | 156 | latexStr = """\\begin{table}[htb] 157 | \\caption{""" + str(alg) + """ Model-"""+str(index)+""" Sınıflandırma Analiz Sonuçları} 158 | \\label{tablo_""" + str(alg) + """_result_Model-"""+str(index)+"""} 159 | \\begin{center} 160 | \\footnotesize\\begin{tabular}{|c|c|c|c|}\hline 161 | &Hassasiyet &Anımsama &F1 \\\\ \hline 162 | Adware &""" + adware[1] + """ &""" +adware[2] + """ &""" +adware[3] + """\\\\ \hline 163 | Backdoor &""" + backdoor[1]+ """ &""" + backdoor[2]+ """ &""" + backdoor[3]+ """\\\\ \hline 164 | Downloader &""" + downloader[1]+ """ &""" + downloader[2]+ """ &""" + downloader[3]+ """\\\\ \hline 165 | Dropper &""" + dropper[1]+ """ &""" + dropper[2]+ """ &""" + dropper[3]+ """\\\\ \hline 166 | Spyware &""" + spyware[1]+ """ &""" + spyware[2]+ """ &""" + spyware[3]+ """\\\\ \hline 167 | Trojan &""" + trojan[1]+ """ &""" + trojan[2]+ """ &""" + trojan[3]+ """\\\\ \hline 168 | Virus &""" + virus[1]+ """ &""" + virus[2]+ """ &""" + virus[3]+ """\\\\ \hline 169 | Worm &""" + worm[1]+ """ &""" + worm[2]+ """ &""" + worm[3]+ """\\\\ \hline 170 | \end{tabular} 171 | \end{center} 172 | \end{table} 173 | 174 | Farklı modellerin karşılaştırılmasında kullanabileceğimiz, 175 | Tablo \\ref{tablo_""" + str(alg) + """_result_Model-"""+str(index)+"""}' da gösterilen verilen ortalama bilgileri 176 | Tablo \\ref{tablo_""" + str(alg) + """_result_sum_Model-"""+str(index)+"""}' da gösterilmektedir. 177 | 178 | \\begin{table}[htb] 179 | \\begin{center} 180 | \\caption{""" + str(alg) + """ Model-"""+str(index)+""" Analiz Sonuç Ortalaması} 181 | \\label{tablo_""" + str(alg) + """_result_sum_Model-"""+str(index)+"""} 182 | \\footnotesize\\begin{tabular}{|c|c|c|c|}\hline 183 | Ortalama &""" + avg[3] + """ &""" + avg[4] + """ &""" + avg[5] + """\\\\ \hline 184 | \end{tabular} 185 | \end{center} 186 | \end{table}""" 187 | return latexStr 188 | 189 | -------------------------------------------------------------------------------- /src/multiclass/ModelUtil.py: -------------------------------------------------------------------------------- 1 | from sklearn.model_selection import train_test_split 2 | from sklearn.metrics import confusion_matrix 3 | from sklearn.metrics import classification_report 4 | import pandas as pd 5 | from keras import preprocessing 6 | from keras.utils import to_categorical 7 | 8 | from keras.models import Sequential 9 | from keras.layers import Dense, LSTM, Dropout 10 | from keras.layers.embeddings import Embedding 11 | from keras.layers import Flatten 12 | import matplotlib.pyplot as plt 13 | import os 14 | from keras import regularizers 15 | import datetime 16 | from keras.utils import plot_model 17 | from keras.callbacks import EarlyStopping 18 | 19 | 20 | class ModelUtil: 21 | 22 | def saveConfisuonMatrixAndResult(self, matrix, report, filePath): 23 | cm_file = open(filePath + "Result_report_matrix.txt", "w") 24 | cm_file.write(str(matrix)) 25 | cm_file.write("\n\n") 26 | cm_file.write(report) 27 | cm_file.close() 28 | print(matrix) 29 | print(report) 30 | 31 | def saveModelLayer(self, model, filePath): 32 | os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/' 33 | image = filePath + "img" 34 | plot_model(model, show_layer_names= False, show_shapes=True, to_file=image + ".png") 35 | plot_model(model, show_shapes=True, to_file=image + ".eps") 36 | 37 | def saveLostHistory(self, history, filePath): 38 | plt.plot(history.history['loss']) 39 | plt.plot(history.history['val_loss']) 40 | plt.ylabel('kayip', fontsize=18) 41 | plt.xlabel('devir', fontsize=18) 42 | plt.legend(['eğitim', 'doğrulama'], loc='upper left') 43 | plt.savefig(filePath + "loss.png") 44 | plt.savefig(filePath + "loss.eps") 45 | plt.close() 46 | 47 | def saveAccHistory(self, history, filePath): 48 | plt.plot(history.history['acc']) 49 | plt.plot(history.history['val_acc']) 50 | plt.ylabel('doğruluk', fontsize=18) 51 | plt.xlabel('devir', fontsize=18) 52 | plt.legend(['eğitim', 'doğrulama'], loc='upper left') 53 | plt.savefig(filePath + "acc.png") 54 | plt.savefig(filePath + "acc.eps") 55 | # plt.show() 56 | plt.close() -------------------------------------------------------------------------------- /src/multiclass/RFParameter.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | class RFParameter: 4 | def __init__(self, n_estimators, max_depth, min_samples_split, min_samples_leaf = 1, class_weights={}): 5 | 6 | #Embedding 7 | self.n_estimators = n_estimators 8 | self.max_depth = max_depth 9 | self.min_samples_split = min_samples_split 10 | self.min_samples_leaf = min_samples_leaf 11 | self.class_weights = class_weights 12 | 13 | 14 | 15 | class RFParameters: 16 | def __init__(self): 17 | # model 18 | self.parameters = [] 19 | # 2019-07-06 09_09_39.367144 20 | #1 - 49 self.parameters.append(RFParameter(50)) 21 | #2 - 51 self.parameters.append(RFParameter(100)) 22 | 23 | # 2019-07-06 13_51_03.456234 24 | #3 - 52 self.parameters.append(RFParameter(250)) 25 | 26 | #4 - 51 self.parameters.append(RFParameter(500)) 27 | 28 | self.parameters.append(RFParameter(1, None, 2)) 29 | self.parameters.append(RFParameter(2, None, 2)) 30 | self.parameters.append(RFParameter(3, None, 2)) 31 | self.parameters.append(RFParameter(6, None, 2)) 32 | self.parameters.append(RFParameter(16, None, 2)) 33 | 34 | self.parameters.append(RFParameter(32, None, 2)) 35 | self.parameters.append(RFParameter(64, None, 2)) 36 | self.parameters.append(RFParameter(100, None, 2)) 37 | self.parameters.append(RFParameter(200, None, 2)) 38 | self.parameters.append(RFParameter(500, None, 2)) 39 | self.parameters.append(RFParameter(1, None, 2)) 40 | self.parameters.append(RFParameter(2, None, 2)) 41 | self.parameters.append(RFParameter(3, None, 2)) 42 | self.parameters.append(RFParameter(6, None, 2)) 43 | self.parameters.append(RFParameter(16, None, 2)) 44 | 45 | self.parameters.append(RFParameter(32, None, 2)) 46 | self.parameters.append(RFParameter(64, None, 2)) 47 | self.parameters.append(RFParameter(100, None, 2)) 48 | self.parameters.append(RFParameter(200, None, 2)) 49 | self.parameters.append(RFParameter(500, None, 2)) 50 | # 51 | # self.parameters.append(RFParameter(200,1, 2)) 52 | # self.parameters.append(RFParameter(200,3, 2)) 53 | # 54 | # self.parameters.append(RFParameter(200,7, 2)) 55 | # 56 | # self.parameters.append(RFParameter(200,11, 2)) 57 | # self.parameters.append(RFParameter(200,15, 2)) 58 | # self.parameters.append(RFParameter(200,19, 2)) 59 | # self.parameters.append(RFParameter(200,23, 2)) 60 | # self.parameters.append(RFParameter(200,27, 2)) 61 | # self.parameters.append(RFParameter(200,32, 2)) 62 | # 63 | # self.parameters.append(RFParameter(200, None, 2)) 64 | # self.parameters.append(RFParameter(200, None, 3)) 65 | # self.parameters.append(RFParameter(200, None, 5)) 66 | # self.parameters.append(RFParameter(200, None, 7)) 67 | # self.parameters.append(RFParameter(200, None, 9)) 68 | # self.parameters.append(RFParameter(200, None, 15)) 69 | # self.parameters.append(RFParameter(200, None, 25)) 70 | # 71 | # self.parameters.append(RFParameter(200, None, 2, 1)) 72 | # self.parameters.append(RFParameter(200, None, 2, 2)) 73 | # self.parameters.append(RFParameter(200, None, 2, 3)) 74 | # self.parameters.append(RFParameter(200, None, 2, 5)) 75 | # self.parameters.append(RFParameter(200, None, 2, 9)) 76 | # self.parameters.append(RFParameter(200, None, 2, 15)) 77 | # self.parameters.append(RFParameter(200, None, 2, 25)) 78 | 79 | 80 | 81 | 82 | 83 | self.index = 0 84 | 85 | 86 | -------------------------------------------------------------------------------- /src/multiclass/SVMParameter.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | class SVMParameter: 4 | def __init__(self, kernel, c, gamma, class_weights): 5 | 6 | #Embedding 7 | self.kernel = kernel 8 | self.c = c 9 | self.gamma = gamma 10 | self.class_weights = class_weights 11 | 12 | 13 | 14 | class SVMParameters: 15 | def __init__(self): 16 | # model 17 | self.parameters = [] 18 | # 2019-07-06 09_09_39.367144 19 | #1 - 29 self.parameters.append(SVMParameter("rbf", 1.0)) 20 | #2 - 4 self.parameters.append(SVMParameter("sigmoid", 1.0)) 21 | #3 - 29 self.parameters.append(SVMParameter("rbf", 10.0)) 22 | #4 - 4 self.parameters.append(SVMParameter("sigmoid", 10.0)) 23 | #5 - 29 self.parameters.append(SVMParameter("rbf", 100.0)) 24 | #6 - 5 self.parameters.append(SVMParameter("sigmoid", 100.0)) 25 | 26 | # 2019-07-06 13_51_03.456234 27 | #7 - 29 self.parameters.append(SVMParameter("rbf", 1000.0)) 28 | 29 | #8 - 29 self.parameters.append(SVMParameter("rbf", 1.0, 0.1, {})) 30 | #9 - 29 self.parameters.append(SVMParameter("rbf", 1.0, 1, {})) 31 | #10 - 29 self.parameters.append(SVMParameter("rbf", 1.0, 10, {})) 32 | self.parameters.append(SVMParameter("rbf", 1.0, 100, {})) 33 | 34 | self.parameters.append(SVMParameter("rbf", 1.0, 1000, {})) 35 | self.parameters.append(SVMParameter("rbf", 100.0, 0.1, {})) 36 | self.parameters.append(SVMParameter("rbf", 100.0, 10, {})) 37 | self.parameters.append(SVMParameter("rbf", 100.0, 100, {})) 38 | 39 | self.parameters.append(SVMParameter("sigmoid", 100.0, 0.1, {})) 40 | self.parameters.append(SVMParameter("sigmoid", 100.0, 10, {})) 41 | self.parameters.append(SVMParameter("sigmoid", 100.0, 100, {})) 42 | self.parameters.append(SVMParameter("sigmoid", 10.0, 0.1, {})) 43 | self.parameters.append(SVMParameter("sigmoid", 10.0, 10, {})) 44 | 45 | self.parameters.append(SVMParameter("rbf", 1.0, 100, {})) 46 | 47 | self.parameters.append(SVMParameter("rbf", 1.0, 1000, {})) 48 | self.parameters.append(SVMParameter("rbf", 100.0, 0.1, {})) 49 | self.parameters.append(SVMParameter("rbf", 100.0, 10, {})) 50 | self.parameters.append(SVMParameter("rbf", 100.0, 100, {})) 51 | 52 | self.parameters.append(SVMParameter("sigmoid", 100.0, 0.1, {})) 53 | self.parameters.append(SVMParameter("sigmoid", 100.0, 10, {})) 54 | self.parameters.append(SVMParameter("sigmoid", 100.0, 100, {})) 55 | self.parameters.append(SVMParameter("sigmoid", 10.0, 0.1, {})) 56 | self.parameters.append(SVMParameter("sigmoid", 10.0, 10, {})) 57 | 58 | 59 | self.index = 0 60 | 61 | 62 | -------------------------------------------------------------------------------- /src/multiclass/__init__.py: -------------------------------------------------------------------------------- 1 | # -------------------------------------------------------------------------------- /src/multiclass/readme.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/other/OtherAnalize_DT.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Wed Aug 1 14:52:43 2018 4 | 5 | @author: user 6 | """ 7 | 8 | from sklearn.model_selection import train_test_split 9 | from keras import preprocessing 10 | import os 11 | 12 | import pandas as pd 13 | from sklearn.metrics import confusion_matrix,classification_report 14 | from sklearn.tree import DecisionTreeClassifier 15 | 16 | ################################################## 17 | 18 | prefix = "1000" 19 | 20 | data_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\data\\" 21 | model_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\result\\" 22 | 23 | def read_adjust_data(type_index): 24 | df = pd.read_csv(data_path + prefix + "_types.zip", delimiter=' ', header=None ,compression="zip") 25 | df[0] = df[0].astype('category') 26 | cat = df[0].cat 27 | df[0] = df[0].cat.codes 28 | y = df[0].values 29 | 30 | for i in range(len(y)): 31 | val = y[i] 32 | if val == type_index: 33 | y[i] = 1 34 | else: 35 | y[i] = 0 36 | 37 | return y 38 | 39 | def run_analize(X, y, index, kernel, file_name): 40 | 41 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 42 | 43 | # train classifier 44 | clf = DecisionTreeClassifier(random_state=0) 45 | clf.fit(X_train, y_train) 46 | 47 | 48 | # predict and evaluate predictions 49 | predictions = clf.predict_proba(X_test) 50 | 51 | matrix = confusion_matrix(y_test, predictions.argmax(axis=1)) 52 | report = classification_report(y_test, predictions.argmax(axis=1)) 53 | 54 | cm_file = open(model_path + file_name + "\\Confisuon_matrix_" + str(index) + "_" + str(kernel), "w") 55 | cm_file.write(str(matrix)) 56 | cm_file.write("\n\n") 57 | cm_file.write(report) 58 | cm_file.close() 59 | print(matrix) 60 | print(report) 61 | 62 | # os.makedirs(model_path + prefix) 63 | 64 | df = pd.read_csv(data_path + prefix + "_calls.zip", delimiter=' ', header=None,compression="zip" ) 65 | D = df.values 66 | ds_tmp = D[:, 0].tolist() 67 | ds = [] 68 | for v in ds_tmp: 69 | ds.append(v.split(',')) 70 | 71 | maxlen = 350 72 | X = preprocessing.sequence.pad_sequences(ds, maxlen=maxlen) 73 | print(X.shape) 74 | 75 | 76 | for j in range(8): 77 | 78 | file_name = prefix + "__" + str(j) 79 | os.makedirs(model_path + file_name) 80 | y = read_adjust_data(j) 81 | 82 | for kernel in ['DT']: 83 | run_analize(X, y, j + 1, kernel, file_name) 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /src/other/OtherAnalize_KNN.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Wed Aug 1 14:52:43 2018 4 | 5 | @author: user 6 | """ 7 | 8 | from sklearn.model_selection import train_test_split 9 | from keras import preprocessing 10 | import os 11 | 12 | import pandas as pd 13 | from sklearn.svm import SVC 14 | from sklearn.metrics import confusion_matrix,classification_report 15 | from sklearn.neighbors import KNeighborsClassifier 16 | from sklearn.metrics import accuracy_score 17 | 18 | ################################################## 19 | 20 | prefix = "100" 21 | 22 | data_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\data\\" 23 | model_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\result\\" 24 | 25 | def read_adjust_data(type_index): 26 | df = pd.read_csv(data_path + prefix + "_types.zip", delimiter=' ', header=None ,compression="zip") 27 | df[0] = df[0].astype('category') 28 | cat = df[0].cat 29 | df[0] = df[0].cat.codes 30 | y = df[0].values 31 | 32 | for i in range(len(y)): 33 | val = y[i] 34 | if val == type_index: 35 | y[i] = 1 36 | else: 37 | y[i] = 0 38 | 39 | return y 40 | 41 | def run_analize(X, y, index, kernel, file_name): 42 | 43 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 44 | 45 | # train classifier 46 | clf = KNeighborsClassifier(n_neighbors=5) 47 | clf.fit(X_train, y_train) 48 | 49 | 50 | # predict and evaluate predictions 51 | predictions = clf.predict_proba(X_test) 52 | 53 | matrix = confusion_matrix(y_test, predictions.argmax(axis=1)) 54 | report = classification_report(y_test, predictions.argmax(axis=1)) 55 | 56 | cm_file = open(model_path + file_name + "\\Confisuon_matrix_" + str(index) + "_" + str(kernel), "w") 57 | cm_file.write(str(matrix)) 58 | cm_file.write("\n\n") 59 | cm_file.write(report) 60 | cm_file.close() 61 | print(matrix) 62 | print(report) 63 | print(clf) 64 | 65 | # os.makedirs(model_path + prefix) 66 | 67 | df = pd.read_csv(data_path + prefix + "_calls.zip", delimiter=' ', header=None,compression="zip" ) 68 | D = df.values 69 | ds_tmp = D[:, 0].tolist() 70 | ds = [] 71 | for v in ds_tmp: 72 | ds.append(v.split(',')) 73 | 74 | maxlen = 350 75 | X = preprocessing.sequence.pad_sequences(ds, maxlen=maxlen) 76 | print(X.shape) 77 | 78 | 79 | for j in range(8): 80 | 81 | file_name = prefix + "__" + str(j) 82 | os.makedirs(model_path + file_name) 83 | y = read_adjust_data(j) 84 | 85 | for kernel in ['KNN']: 86 | run_analize(X, y, j + 1, kernel, file_name) 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /src/other/OtherAnalize_SVM.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Wed Aug 1 14:52:43 2018 4 | 5 | @author: user 6 | """ 7 | 8 | from sklearn.model_selection import train_test_split 9 | from keras import preprocessing 10 | import os 11 | 12 | import pandas as pd 13 | from sklearn.svm import SVC 14 | from sklearn.metrics import confusion_matrix,classification_report 15 | 16 | ################################################## 17 | 18 | prefix = "1000" 19 | 20 | data_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\data\\" 21 | model_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\result\\" 22 | 23 | def read_adjust_data(type_index): 24 | df = pd.read_csv(data_path + prefix + "_types.zip", delimiter=' ', header=None ,compression="zip") 25 | df[0] = df[0].astype('category') 26 | cat = df[0].cat 27 | df[0] = df[0].cat.codes 28 | y = df[0].values 29 | 30 | return y 31 | 32 | def run_analize(X, y, index, kernel, file_name): 33 | 34 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 35 | 36 | # train classifier 37 | clf = SVC(probability=True, kernel= kernel) 38 | clf.fit(X_train, y_train) 39 | 40 | # predict and evaluate predictions 41 | predictions = clf.predict_proba(X_test) 42 | 43 | matrix = confusion_matrix(y_test, predictions.argmax(axis=1)) 44 | report = classification_report(y_test, predictions.argmax(axis=1)) 45 | 46 | cm_file = open(model_path + file_name + "\\Confisuon_matrix_" + str(index) + "_" + str(kernel), "w") 47 | cm_file.write(str(matrix)) 48 | cm_file.write("\n\n") 49 | cm_file.write(report) 50 | cm_file.close() 51 | print(matrix) 52 | print(report) 53 | 54 | # os.makedirs(model_path + prefix) 55 | 56 | df = pd.read_csv(data_path + prefix + "_calls.zip", delimiter=' ', header=None,compression="zip" ) 57 | D = df.values 58 | ds_tmp = D[:, 0].tolist() 59 | ds = [] 60 | for v in ds_tmp: 61 | ds.append(v.split(',')) 62 | 63 | maxlen = 350 64 | X = preprocessing.sequence.pad_sequences(ds, maxlen=maxlen) 65 | print(X.shape) 66 | 67 | 68 | for j in range(8): 69 | 70 | file_name = prefix + "__" + str(j) 71 | os.makedirs(model_path + file_name) 72 | y = read_adjust_data(j) 73 | 74 | for kernel in ['poly']: 75 | run_analize(X, y, j + 1, kernel, file_name) 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /src/other/OtherAnalize_SVM_mclass.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Wed Aug 1 14:52:43 2018 4 | 5 | @author: user 6 | """ 7 | 8 | from sklearn.model_selection import train_test_split 9 | from keras import preprocessing 10 | import os 11 | 12 | import pandas as pd 13 | from sklearn.svm import SVC 14 | from sklearn.metrics import confusion_matrix,classification_report 15 | 16 | ################################################## 17 | 18 | import datetime 19 | 20 | 21 | prefix = "1000" 22 | 23 | data_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\data\\" 24 | model_path = "C:\\Users\\afy\\PycharmProjects\\AnalizeProject\\other\\result\\" 25 | main_folder_name = model_path + str(datetime.datetime.now()).replace(":", "_") + "\\" 26 | 27 | def read_adjust_data(): 28 | df = pd.read_csv(data_path + prefix + "_types.zip", delimiter=' ', header=None ,compression="zip") 29 | df[0] = df[0].astype('category') 30 | cat = df[0].cat 31 | df[0] = df[0].cat.codes 32 | y = df[0].values 33 | 34 | return y 35 | 36 | def run_analize(X, y, kernel, file_name): 37 | 38 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) 39 | 40 | # train classifier 41 | clf = SVC(probability=True, kernel= kernel) 42 | clf.fit(X_train, y_train) 43 | 44 | # predict and evaluate predictions 45 | predictions = clf.predict_proba(X_test) 46 | 47 | matrix = confusion_matrix(y_test, predictions.argmax(axis=1)) 48 | report = classification_report(y_test, predictions.argmax(axis=1)) 49 | 50 | cm_file = open(main_folder_name + file_name + "\\Confisuon_matrix_" + str(kernel), "w") 51 | cm_file.write(str(matrix)) 52 | cm_file.write("\n\n") 53 | cm_file.write(report) 54 | cm_file.close() 55 | print(matrix) 56 | print(report) 57 | 58 | # os.makedirs(main_folder_name + prefix) 59 | 60 | df = pd.read_csv(data_path + prefix + "_calls.zip", delimiter=' ', header=None,compression="zip" ) 61 | D = df.values 62 | ds_tmp = D[:, 0].tolist() 63 | ds = [] 64 | for v in ds_tmp: 65 | ds.append(v.split(',')) 66 | 67 | maxlen = 342 68 | X = preprocessing.sequence.pad_sequences(ds, maxlen=maxlen) 69 | print(X.shape) 70 | 71 | 72 | os.makedirs(main_folder_name) 73 | 74 | 75 | print("-------------------basliyor------------") 76 | file_name2 = "deneme" 77 | os.makedirs(main_folder_name + "\\" + file_name2) 78 | 79 | y = read_adjust_data() 80 | run_analize(X, y, "rbf", file_name2) 81 | 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /src/other/data/1000_calls.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocatak/malware_api_class/446f0c7643e93bda26599524d3cb796d9294cd91/src/other/data/1000_calls.zip -------------------------------------------------------------------------------- /src/other/data/1000_types.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocatak/malware_api_class/446f0c7643e93bda26599524d3cb796d9294cd91/src/other/data/1000_types.zip -------------------------------------------------------------------------------- /src/other/data/100_calls.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocatak/malware_api_class/446f0c7643e93bda26599524d3cb796d9294cd91/src/other/data/100_calls.zip -------------------------------------------------------------------------------- /src/other/data/100_types.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ocatak/malware_api_class/446f0c7643e93bda26599524d3cb796d9294cd91/src/other/data/100_types.zip -------------------------------------------------------------------------------- /src/other/data/ApiIndex.txt: -------------------------------------------------------------------------------- 1 | __process__=0 2 | __anomaly__=1 3 | __exception__=2 4 | __missing__=3 5 | certcontrolstore=4 6 | certcreatecertificatecontext=5 7 | certopenstore=6 8 | certopensystemstorea=7 9 | certopensystemstorew=8 10 | cryptacquirecontexta=9 11 | cryptacquirecontextw=10 12 | cryptcreatehash=11 13 | cryptdecrypt=12 14 | cryptencrypt=13 15 | cryptexportkey=14 16 | cryptgenkey=15 17 | crypthashdata=16 18 | cryptdecodemessage=17 19 | cryptdecodeobjectex=18 20 | cryptdecryptmessage=19 21 | cryptencryptmessage=20 22 | crypthashmessage=21 23 | cryptprotectdata=22 24 | cryptprotectmemory=23 25 | cryptunprotectdata=24 26 | cryptunprotectmemory=25 27 | prf=26 28 | ssl3generatekeymaterial=27 29 | setunhandledexceptionfilter=28 30 | rtladdvectoredcontinuehandler=29 31 | rtladdvectoredexceptionhandler=30 32 | rtldispatchexception=31 33 | rtlremovevectoredcontinuehandler=32 34 | rtlremovevectoredexceptionhandler=33 35 | copyfilea=34 36 | copyfileexw=35 37 | copyfilew=36 38 | createdirectoryexw=37 39 | createdirectoryw=38 40 | deletefilew=39 41 | deviceiocontrol=40 42 | findfirstfileexa=41 43 | findfirstfileexw=42 44 | getfileattributesexw=43 45 | getfileattributesw=44 46 | getfileinformationbyhandle=45 47 | getfileinformationbyhandleex=46 48 | getfilesize=47 49 | getfilesizeex=48 50 | getfiletype=49 51 | getshortpathnamew=50 52 | getsystemdirectorya=51 53 | getsystemdirectoryw=52 54 | getsystemwindowsdirectorya=53 55 | getsystemwindowsdirectoryw=54 56 | gettemppathw=55 57 | getvolumenameforvolumemountpointw=56 58 | getvolumepathnamew=57 59 | getvolumepathnamesforvolumenamew=58 60 | movefilewithprogressw=59 61 | removedirectorya=60 62 | removedirectoryw=61 63 | searchpathw=62 64 | setendoffile=63 65 | setfileattributesw=64 66 | setfileinformationbyhandle=65 67 | setfilepointer=66 68 | setfilepointerex=67 69 | ntcreatedirectoryobject=68 70 | ntcreatefile=69 71 | ntdeletefile=70 72 | ntdeviceiocontrolfile=71 73 | ntopendirectoryobject=72 74 | ntopenfile=73 75 | ntqueryattributesfile=74 76 | ntquerydirectoryfile=75 77 | ntqueryfullattributesfile=76 78 | ntqueryinformationfile=77 79 | ntreadfile=78 80 | ntsetinformationfile=79 81 | ntwritefile=80 82 | colescript_compile=81 83 | cdocument_write=82 84 | celement_put_innerhtml=83 85 | chyperlink_seturlcomponent=84 86 | ciframeelement_createelement=85 87 | cscriptelement_put_src=86 88 | cwindow_addtimeoutcode=87 89 | getusernamea=88 90 | getusernamew=89 91 | lookupaccountsidw=90 92 | getcomputernamea=91 93 | getcomputernamew=92 94 | getdiskfreespaceexw=93 95 | getdiskfreespacew=94 96 | gettimezoneinformation=95 97 | writeconsolea=96 98 | writeconsolew=97 99 | coinitializesecurity=98 100 | uuidcreate=99 101 | getusernameexa=100 102 | getusernameexw=101 103 | readcabinetstate=102 104 | shgetfolderpathw=103 105 | shgetspecialfolderlocation=104 106 | enumwindows=105 107 | getcursorpos=106 108 | getsystemmetrics=107 109 | netgetjoininformation=108 110 | 111 | netusergetinfo=110 112 | 113 | netusergetlocalgroups=112 114 | netshareenum=113 115 | dnsquery_a=114 116 | dnsquery_utf8=115 117 | dnsquery_w=116 118 | getadaptersaddresses=117 119 | getadaptersinfo=118 120 | getbestinterfaceex=119 121 | getinterfaceinfo=120 122 | obtainuseragentstring=121 123 | urldownloadtofilew=122 124 | deleteurlcacheentrya=123 125 | deleteurlcacheentryw=124 126 | httpopenrequesta=125 127 | httpopenrequestw=126 128 | httpqueryinfoa=127 129 | httpsendrequesta=128 130 | httpsendrequestw=129 131 | internetclosehandle=130 132 | internetconnecta=131 133 | internetconnectw=132 134 | internetcrackurla=133 135 | internetcrackurlw=134 136 | internetgetconnectedstate=135 137 | internetgetconnectedstateexa=136 138 | internetgetconnectedstateexw=137 139 | internetopena=138 140 | internetopenurla=139 141 | internetopenurlw=140 142 | internetopenw=141 143 | internetqueryoptiona=142 144 | internetreadfile=143 145 | internetsetoptiona=144 146 | internetsetstatuscallback=145 147 | internetwritefile=146 148 | connectex=147 149 | getaddrinfow=148 150 | transmitfile=149 151 | wsaaccept=150 152 | wsaconnect=151 153 | wsarecv=152 154 | wsarecvfrom=153 155 | wsasend=154 156 | wsasendto=155 157 | wsasocketa=156 158 | wsasocketw=157 159 | wsastartup=158 160 | accept=159 161 | bind=160 162 | closesocket=161 163 | connect=162 164 | getaddrinfo=163 165 | gethostbyname=164 166 | getsockname=165 167 | ioctlsocket=166 168 | listen=167 169 | recv=168 170 | recvfrom=169 171 | select=170 172 | send=171 173 | sendto=172 174 | setsockopt=173 175 | shutdown=174 176 | socket=175 177 | cocreateinstance=176 178 | coinitializeex=177 179 | oleinitialize=178 180 | createprocessinternalw=179 181 | createremotethread=180 182 | createthread=181 183 | createtoolhelp32snapshot=182 184 | module32firstw=183 185 | module32nextw=184 186 | process32firstw=185 187 | process32nextw=186 188 | readprocessmemory=187 189 | thread32first=188 190 | thread32next=189 191 | writeprocessmemory=190 192 | system=191 193 | ntallocatevirtualmemory=192 194 | ntcreateprocess=193 195 | ntcreateprocessex=194 196 | ntcreatesection=195 197 | ntcreatethread=196 198 | ntcreatethreadex=197 199 | ntcreateuserprocess=198 200 | ntfreevirtualmemory=199 201 | ntgetcontextthread=200 202 | ntmakepermanentobject=201 203 | ntmaketemporaryobject=202 204 | ntmapviewofsection=203 205 | ntopenprocess=204 206 | ntopensection=205 207 | ntopenthread=206 208 | ntprotectvirtualmemory=207 209 | ntqueueapcthread=208 210 | ntreadvirtualmemory=209 211 | ntresumethread=210 212 | ntsetcontextthread=211 213 | ntsuspendthread=212 214 | ntterminateprocess=213 215 | ntterminatethread=214 216 | ntunmapviewofsection=215 217 | ntwritevirtualmemory=216 218 | rtlcreateuserprocess=217 219 | rtlcreateuserthread=218 220 | shellexecuteexw=219 221 | regclosekey=220 222 | regcreatekeyexa=221 223 | regcreatekeyexw=222 224 | regdeletekeya=223 225 | regdeletekeyw=224 226 | regdeletevaluea=225 227 | regdeletevaluew=226 228 | regenumkeyexa=227 229 | regenumkeyexw=228 230 | regenumkeyw=229 231 | regenumvaluea=230 232 | regenumvaluew=231 233 | regopenkeyexa=232 234 | regopenkeyexw=233 235 | regqueryinfokeya=234 236 | regqueryinfokeyw=235 237 | regqueryvalueexa=236 238 | regqueryvalueexw=237 239 | regsetvalueexa=238 240 | regsetvalueexw=239 241 | ntcreatekey=240 242 | ntdeletekey=241 243 | ntdeletevaluekey=242 244 | ntenumeratekey=243 245 | ntenumeratevaluekey=244 246 | ntloadkey=245 247 | ntloadkey2=246 248 | ntloadkeyex=247 249 | ntopenkey=248 250 | ntopenkeyex=249 251 | ntquerykey=250 252 | ntquerymultiplevaluekey=251 253 | ntqueryvaluekey=252 254 | ntrenamekey=253 255 | ntreplacekey=254 256 | ntsavekey=255 257 | ntsavekeyex=256 258 | ntsetvaluekey=257 259 | findresourcea=258 260 | findresourceexa=259 261 | findresourceexw=260 262 | findresourcew=261 263 | loadresource=262 264 | sizeofresource=263 265 | controlservice=264 266 | createservicea=265 267 | createservicew=266 268 | deleteservice=267 269 | enumservicesstatusa=268 270 | enumservicesstatusw=269 271 | openscmanagera=270 272 | openscmanagerw=271 273 | openservicea=272 274 | openservicew=273 275 | startservicea=274 276 | startservicew=275 277 | getlocaltime=276 278 | getsystemtime=277 279 | getsystemtimeasfiletime=278 280 | gettickcount=279 281 | ntcreatemutant=280 282 | ntdelayexecution=281 283 | ntquerysystemtime=282 284 | timegettime=283 285 | lookupprivilegevaluew=284 286 | getnativesysteminfo=285 287 | getsysteminfo=286 288 | isdebuggerpresent=287 289 | outputdebugstringa=288 290 | seterrormode=289 291 | ldrgetdllhandle=290 292 | ldrgetprocedureaddress=291 293 | ldrloaddll=292 294 | ldrunloaddll=293 295 | ntclose=294 296 | ntduplicateobject=295 297 | ntloaddriver=296 298 | ntunloaddriver=297 299 | rtlcompressbuffer=298 300 | rtldecompressbuffer=299 301 | rtldecompressfragment=300 302 | exitwindowsex=301 303 | getasynckeystate=302 304 | getkeystate=303 305 | getkeyboardstate=304 306 | sendnotifymessagea=305 307 | sendnotifymessagew=306 308 | setwindowshookexa=307 309 | setwindowshookexw=308 310 | unhookwindowshookex=309 311 | drawtextexa=310 312 | drawtextexw=311 313 | findwindowa=312 314 | findwindowexa=313 315 | findwindowexw=314 316 | findwindoww=315 317 | getforegroundwindow=316 318 | loadstringa=317 319 | loadstringw=318 320 | messageboxtimeouta=319 321 | messageboxtimeoutw=320 322 | couninitialize=321 323 | ntopenmutant=322 324 | ntquerysysteminformation=323 325 | globalmemorystatus=324 326 | globalmemorystatusex=325 327 | setfiletime=326 328 | getfileversioninfosizew=327 329 | getfileversioninfow=328 330 | createactctxw=329 331 | cogetclassobject=330 332 | cocreateinstanceex=331 333 | iwbemservices_execquery=332 334 | setstdhandle=333 335 | registerhotkey=334 336 | createjobobjectw=335 337 | setinformationjobobject=336 338 | assignprocesstojobobject=337 339 | createremotethreadex=338 340 | iwbemservices_execmethod=339 341 | wnetgetprovidernamew=340 342 | ntshutdownsystem=341 343 | -------------------------------------------------------------------------------- /src/utility/VTService.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import time 3 | 4 | 5 | class VTService: 6 | 7 | def rescan_virus(self, resource, api_key): 8 | params = {'apikey': api_key, 'input': resource} 9 | 10 | response = requests.post('https://www.virustotal.com/vtapi/v2/file/rescan', 11 | params=params) 12 | json_response = response.json() 13 | print(json_response) 14 | return json_response 15 | 16 | def report_virus(self, resource, api_key): 17 | 18 | params = {'apikey': api_key, 'resource': resource} 19 | headers = { 20 | "Accept-Encoding": "gzip, deflate", 21 | "User-Agent": "gzip, My Python requests library example client or username" 22 | } 23 | response = requests.get('https://www.virustotal.com/vtapi/v2/file/report', 24 | params=params, headers=headers) 25 | json_response = response.json() 26 | # print(json_response) 27 | return json_response 28 | 29 | 30 | def ask_to_virus_total_service(self, resource, api_key): 31 | try: 32 | return self.report_virus(resource, api_key) 33 | except Exception as e: 34 | print("ask_to_virus_total_service..." + str(e)) 35 | time.sleep(3) 36 | return self.ask_to_virus_total_service(resource, api_key) 37 | 38 | def fetch_engine_values(self, resource, api_key): 39 | result_str = resource + ":" 40 | response = self.ask_to_virus_total_service(resource, api_key) 41 | scans = response.get("scans") 42 | 43 | for engine in scans: 44 | engine_info = scans.get(engine) 45 | if engine_info.get("detected") is True: 46 | tmp_str = str(engine_info.get("result")) 47 | result_str = result_str + engine + "_" + tmp_str + "," 48 | 49 | return result_str 50 | -------------------------------------------------------------------------------- /src/utility/analize_filter.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | def filter_and_save_data(line_length, types_file_path, calls_file_path, max_analize_count, min_analize_cell_count, type_group): 5 | 6 | types_file = open(types_file_path, "r") 7 | calls_file = open(calls_file_path, "r") 8 | 9 | types_file_filtered = open("destination/filtered_types_file", "w") 10 | calls_file_filtered = open("destination/filtered_calls_file", "w") 11 | 12 | 13 | for i in range(line_length): 14 | type_line_str = types_file.readline() 15 | call_line_str = calls_file.readline() 16 | 17 | type_line = type_line_str.strip() 18 | call_line = call_line_str.strip() 19 | 20 | if type_line in "": 21 | break 22 | 23 | if type_line not in type_group: 24 | continue 25 | 26 | call_str = [] 27 | for cell in call_line.split(","): 28 | if cell not in call_str: 29 | call_str.append(cell) 30 | 31 | if len(call_str) < min_analize_cell_count: 32 | # print(type_line + ": " + str(call_str)) 33 | continue 34 | 35 | if typ_group[type_line] > max_analize_count: 36 | continue 37 | 38 | typ_group[type_line] = typ_group[type_line] + 1 39 | 40 | types_file_filtered.write(type_line_str) 41 | calls_file_filtered.write(call_line_str) 42 | 43 | 44 | print(typ_group) 45 | 46 | 47 | typ_group = {"Backdoor": 0, "Downloader": 0, "Dropper":0, "Spyware":0, "Trojan":0, "Virus":0, "Worms":0} 48 | 49 | filter_and_save_data(10400, "../Data/types_2000.txt", "../Data/calls_2000.txt", 2000, 10 , typ_group) -------------------------------------------------------------------------------- /src/utility/ask_all_malware_to_vt.py: -------------------------------------------------------------------------------- 1 | from utility.VTService import VTService 2 | import time 3 | 4 | 5 | vt_service = VTService() 6 | 7 | file_name = 1 8 | 9 | 10 | vt_api_keys = [ 11 | "76ebd939301445249b9dfd7bb58e8be4d85f572de382cd6eceeb4a56ad7587f6", 12 | "583680f214840a461ead2cec8fae769c1eb3ee5461e362455e0d6daf38be12db", 13 | "02e4d9d35863b2c2e057289311bbd37f2eb21a7dd2496a04d298b3e680de2fd5", 14 | "a2db6727abaf1f4908d2d422c15371d25c9bc7debdc0fd23a4f50426d24e5a96", 15 | "ab8421085f362f075cc88cb1468534253239be0bc482da052d8785d422aaabd7", 16 | "ac6f89d4a5f58fa8d539d0e07de38d4f73012954348123d5cfdaa63f503ad706", 17 | "72b066aa76a58a2a29e0bc58fb85271e9a4222c552ecf97701f8526edd49670f", 18 | "d92949f61388b91e18c5c75a0c668e7cc512039b719d2d5523266e843982a599", 19 | "7d0967f369b915aceec2b784c7d425f6c113e0b2713d4c221e78d9b507e9eeb7", 20 | "6d179b22ca63010c75c01e0df2e6f2b5492b1b17d61fd036498b8c65a14e5c3f", 21 | "a2114d52e027e3cbe908f75eef6343e2210918cd348e360d9ba523f52ae6a227", 22 | "35008f6f8c59a23e388fea8128618bb3ceb17b6b3b34003dbdb6025d44c31819", 23 | "0202c928cb410a25b09b6c635aab89b86fed89446c7f34d8167985bdcdda17a4" 24 | ] 25 | 26 | 27 | 28 | 29 | 30 | index = 0 31 | 32 | vt_api_key_index = 0 33 | 34 | for i in range(264): 35 | 36 | if i < 262: 37 | continue 38 | 39 | file = open("destination/malware_hascode/" + str(i), "r") 40 | vt_result_file = open("destination/malware_vt_result/" + str(i), "w") 41 | 42 | print("FileName : " + str(i)) 43 | 44 | for line in file: 45 | index = index + 1 46 | vt_api_key = vt_api_keys[vt_api_key_index] 47 | response = vt_service.fetch_engine_values(line.strip(), vt_api_key) 48 | print(str(time.strftime("%H-%M-%S")) + ": " + str(index) + ": " + vt_api_key + ": " + response) 49 | 50 | vt_api_key_index = vt_api_key_index + 1 51 | 52 | if vt_api_key_index == len(vt_api_keys): 53 | vt_api_key_index = 0 54 | 55 | try: 56 | vt_result_file.write(response + "\n") 57 | except Exception as e: 58 | vt_result_file.write("Error\n") 59 | print(e) 60 | 61 | time.sleep(0.5) 62 | 63 | vt_result_file.close() 64 | file.close() 65 | 66 | # a.farukyazi = 72b066aa76a58a2a29e0bc58fb85271e9a4222c552ecf97701f8526edd49670f 67 | # testafy1 = 35008f6f8c59a23e388fea8128618bb3ceb17b6b3b34003dbdb6025d44c31819 68 | # testAfy2 = d92949f61388b91e18c5c75a0c668e7cc512039b719d2d5523266e843982a599 69 | # testAfy3 = 76ebd939301445249b9dfd7bb58e8be4d85f572de382cd6eceeb4a56ad7587f6 70 | # testAfy4 = 583680f214840a461ead2cec8fae769c1eb3ee5461e362455e0d6daf38be12db 71 | # testAfy5 02e4d9d35863b2c2e057289311bbd37f2eb21a7dd2496a04d298b3e680de2fd5 72 | # tbtk 7d0967f369b915aceec2b784c7d425f6c113e0b2713d4c221e78d9b507e9eeb7 73 | # şehir 6d179b22ca63010c75c01e0df2e6f2b5492b1b17d61fd036498b8c65a14e5c3f 74 | # deneme01 a2114d52e027e3cbe908f75eef6343e2210918cd348e360d9ba523f52ae6a227 75 | # deneme002 a2db6727abaf1f4908d2d422c15371d25c9bc7debdc0fd23a4f50426d24e5a96 76 | # deneme003 ab8421085f362f075cc88cb1468534253239be0bc482da052d8785d422aaabd7 77 | # deneme0004 ac6f89d4a5f58fa8d539d0e07de38d4f73012954348123d5cfdaa63f503ad706 78 | # deneme0005 0202c928cb410a25b09b6c635aab89b86fed89446c7f34d8167985bdcdda17a4 -------------------------------------------------------------------------------- /src/utility/convert_software_call.py: -------------------------------------------------------------------------------- 1 | from common.HashMap import HashMap 2 | 3 | 4 | 5 | file = open("source/CallApiMap.txt", "r") 6 | 7 | map = HashMap() 8 | for line in file: 9 | line = line.strip() 10 | if line == "": 11 | continue 12 | splitted = line.split("=") 13 | print(line) 14 | map.add(splitted[0], splitted[1]) 15 | 16 | map.print() 17 | file.close() 18 | 19 | s_file = open("destination/software_calls.txt", "w") 20 | 21 | file = open("source/02-CSDMC_API_Train.csv", "r") 22 | for line in file: 23 | line = line.strip() 24 | splitted = line.split(",") 25 | if splitted[0] == "0": 26 | continue 27 | 28 | calls = splitted[1].split(" ") 29 | 30 | callLine = "" 31 | for callStr in calls: 32 | 33 | if callLine != "": 34 | callLine = callLine + "," 35 | 36 | callStr = callStr.lower() 37 | val = map.get(callStr) 38 | if val == None: 39 | print("hatalı durum---------------") 40 | continue 41 | 42 | callLine = callLine + val 43 | 44 | s_file.write(callLine + "\n") 45 | 46 | s_file.close() 47 | -------------------------------------------------------------------------------- /src/utility/destination/readme.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/utility/extract_specific_malware_from_zip.py: -------------------------------------------------------------------------------- 1 | import zipfile 2 | 3 | 4 | def extract_file(zip_path, destination_path, file_name): 5 | archive = zipfile.ZipFile(zip_path) 6 | archive.extract(file_name, path=destination_path, pwd=bytes('infected','utf-8')) 7 | 8 | def extract_malware_files(zip_path, destination_path, malware_type, malware_count, start_line): 9 | file = open("destination/malware_grouped_result/" + str(malware_type), "r") 10 | 11 | for i in range(malware_count): 12 | 13 | if i < start_line: 14 | continue 15 | 16 | hash_code = file.readline().strip() 17 | file_name_in_archive = "VirusShare_" + str(hash_code) 18 | extract_file(zip_path, destination_path, file_name_in_archive) 19 | 20 | file.close() 21 | 22 | extract_malware_files('D:\malwares\VirusShare_00000.zip', 'D:\malwares', "Virus" , 10, 5) -------------------------------------------------------------------------------- /src/utility/group_malware_accordingto_type.py: -------------------------------------------------------------------------------- 1 | from common.HashMap import HashMap 2 | 3 | 4 | def get_family_type_0(lookup, type): 5 | for item in lookup: 6 | if item in type: 7 | return True 8 | return False 9 | 10 | 11 | def is_defined_type(type): 12 | 13 | if type is "Worms": 14 | return True 15 | if type is "Adware": 16 | return True 17 | if type is "Virus": 18 | return True 19 | if type is "Riskware": 20 | return True 21 | if type is "Spyware": 22 | return True 23 | if type is "Keylogger": 24 | return True 25 | if type is "Ransomware": 26 | return True 27 | if type is "Spam": 28 | return True 29 | if type is "Backdoor": 30 | return True 31 | if type is "Dropper": 32 | return True 33 | if type is "Downloader": 34 | return True 35 | if type is "Crypt": 36 | return True 37 | if type is "Agent": 38 | return True 39 | if type is "Rootkit": 40 | return True 41 | if type is "Trojan": 42 | return True 43 | if type is "Undefined": 44 | return True 45 | 46 | return False 47 | 48 | 49 | def get_family_type(type): 50 | 51 | if type == "_": 52 | return None 53 | 54 | tmp_str = str(type).lower().replace(" ", "") 55 | 56 | if get_family_type_0(['worm', '[wrm]'], tmp_str) is True: 57 | return "Worms" 58 | 59 | if get_family_type_0(['adware'], tmp_str) is True: 60 | return "Adware" 61 | 62 | if get_family_type_0(['virus', 'expiro'], tmp_str) is True: 63 | return "Virus" 64 | 65 | if get_family_type_0(['riskware'], tmp_str) is True: 66 | return "Riskware" 67 | 68 | if get_family_type_0(['spyware', 'spy'], tmp_str) is True: 69 | return "Spyware" 70 | 71 | if get_family_type_0(['keylogger'], tmp_str) is True: 72 | return "Keylogger" 73 | 74 | if get_family_type_0(['ransom'], tmp_str) is True: 75 | return "Ransomware" 76 | 77 | if get_family_type_0(['spam'], tmp_str) is True: 78 | return "Spam" 79 | 80 | if get_family_type_0(['backdoor'], tmp_str) is True: 81 | return "Backdoor" 82 | 83 | if get_family_type_0(['dropper'], tmp_str) is True: 84 | return "Dropper" 85 | 86 | if get_family_type_0(['downloader'], tmp_str) is True: 87 | return "Downloader" 88 | 89 | if get_family_type_0(['crypt'], tmp_str) is True: 90 | return "Crypt" 91 | 92 | if get_family_type_0(['agent'], tmp_str) is True: 93 | return "Agent" 94 | 95 | if get_family_type_0(["trjoan",'trj/','trojan', 'troj', '[trj]'], tmp_str) is True: 96 | return "Trojan" 97 | 98 | if get_family_type_0(["rootkit"], tmp_str) is True: 99 | return "Rootkit" 100 | 101 | if get_family_type_0(['unsafe', 'unclassified', "unknown"], tmp_str) is True: 102 | return None 103 | 104 | return type 105 | 106 | 107 | def choose_f_type(selected_choice): 108 | choose_type = "" 109 | count = 0 110 | for item in selected_choice.map: 111 | if item is not None: 112 | for tmp in item: 113 | if tmp[1] > count: 114 | count = tmp[1] 115 | choose_type = tmp[0] 116 | if not is_defined_type(choose_type): 117 | print(choose_type + " " + str(count)) 118 | choose_type = "Undefined" 119 | return choose_type 120 | 121 | def parse_and_determine_malware_type(line): 122 | selected_choice = HashMap() 123 | for cell in line.split(","): 124 | if cell is "": 125 | continue 126 | 127 | if "_" not in cell: 128 | continue 129 | 130 | index = cell.index("_") 131 | type = cell[index + 1:] 132 | 133 | family_type = get_family_type(type) 134 | if family_type is None: 135 | continue 136 | typeCount = selected_choice.get(family_type) 137 | if typeCount is not None: 138 | typeCount += 1 139 | else: 140 | typeCount = 1 141 | 142 | if family_type is not None: 143 | selected_choice.add(family_type, typeCount) 144 | 145 | return choose_f_type(selected_choice) 146 | 147 | 148 | def parse_vt_data(file_name, type_map): 149 | file = open(file_name, "r") 150 | for line in file: 151 | line = line.strip() 152 | if line == "Error": 153 | continue 154 | 155 | index = line.index(":") 156 | hash_code = line[:index] 157 | line = line[index + 1:] 158 | 159 | choose_type = parse_and_determine_malware_type(line) 160 | # print(choose_type + " : " + str(selected_choice) ) 161 | c_type_count = type_map.get(choose_type) 162 | if c_type_count is None: 163 | type_map.add(choose_type, 1) 164 | else: 165 | type_map.add(choose_type, c_type_count + 1) 166 | 167 | type_file = open("destination/malware_grouped_result/" + str(choose_type), "a") 168 | type_file.write(hash_code + " \n") 169 | type_file.close() 170 | 171 | 172 | type_map = HashMap() 173 | for i in range(263): 174 | print("File------------------" + str(i)) 175 | parse_vt_data("destination/malware_vt_result/" + str(i), type_map) 176 | print(type_map) -------------------------------------------------------------------------------- /src/utility/readme.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/utility/source/CallApiMap.txt: -------------------------------------------------------------------------------- 1 | __process__=0 2 | __anomaly__=1 3 | __exception__=2 4 | __missing__=3 5 | certcontrolstore=4 6 | certcreatecertificatecontext=5 7 | certopenstore=6 8 | certopensystemstorea=7 9 | certopensystemstorew=8 10 | cryptacquirecontexta=9 11 | cryptacquirecontextw=10 12 | cryptcreatehash=11 13 | cryptdecrypt=12 14 | cryptencrypt=13 15 | cryptexportkey=14 16 | cryptgenkey=15 17 | crypthashdata=16 18 | cryptdecodemessage=17 19 | cryptdecodeobjectex=18 20 | cryptdecryptmessage=19 21 | cryptencryptmessage=20 22 | crypthashmessage=21 23 | cryptprotectdata=22 24 | cryptprotectmemory=23 25 | cryptunprotectdata=24 26 | cryptunprotectmemory=25 27 | prf=26 28 | ssl3generatekeymaterial=27 29 | setunhandledexceptionfilter=28 30 | rtladdvectoredcontinuehandler=29 31 | rtladdvectoredexceptionhandler=30 32 | rtldispatchexception=31 33 | rtlremovevectoredcontinuehandler=32 34 | rtlremovevectoredexceptionhandler=33 35 | copyfilea=34 36 | copyfileexw=35 37 | copyfilew=36 38 | createdirectoryexw=37 39 | createdirectoryw=38 40 | deletefilew=39 41 | deviceiocontrol=40 42 | findfirstfileexa=41 43 | findfirstfileexw=42 44 | getfileattributesexw=43 45 | getfileattributesw=44 46 | getfileinformationbyhandle=45 47 | getfileinformationbyhandleex=46 48 | getfilesize=47 49 | getfilesizeex=48 50 | getfiletype=49 51 | getshortpathnamew=50 52 | getsystemdirectorya=51 53 | getsystemdirectoryw=52 54 | getsystemwindowsdirectorya=53 55 | getsystemwindowsdirectoryw=54 56 | gettemppathw=55 57 | getvolumenameforvolumemountpointw=56 58 | getvolumepathnamew=57 59 | getvolumepathnamesforvolumenamew=58 60 | movefilewithprogressw=59 61 | removedirectorya=60 62 | removedirectoryw=61 63 | searchpathw=62 64 | setendoffile=63 65 | setfileattributesw=64 66 | setfileinformationbyhandle=65 67 | setfilepointer=66 68 | setfilepointerex=67 69 | ntcreatedirectoryobject=68 70 | ntcreatefile=69 71 | ntdeletefile=70 72 | ntdeviceiocontrolfile=71 73 | ntopendirectoryobject=72 74 | ntopenfile=73 75 | ntqueryattributesfile=74 76 | ntquerydirectoryfile=75 77 | ntqueryfullattributesfile=76 78 | ntqueryinformationfile=77 79 | ntreadfile=78 80 | ntsetinformationfile=79 81 | ntwritefile=80 82 | colescript_compile=81 83 | cdocument_write=82 84 | celement_put_innerhtml=83 85 | chyperlink_seturlcomponent=84 86 | ciframeelement_createelement=85 87 | cscriptelement_put_src=86 88 | cwindow_addtimeoutcode=87 89 | getusernamea=88 90 | getusernamew=89 91 | lookupaccountsidw=90 92 | getcomputernamea=91 93 | getcomputernamew=92 94 | getdiskfreespaceexw=93 95 | getdiskfreespacew=94 96 | gettimezoneinformation=95 97 | writeconsolea=96 98 | writeconsolew=97 99 | coinitializesecurity=98 100 | uuidcreate=99 101 | getusernameexa=100 102 | getusernameexw=101 103 | readcabinetstate=102 104 | shgetfolderpathw=103 105 | shgetspecialfolderlocation=104 106 | enumwindows=105 107 | getcursorpos=106 108 | getsystemmetrics=107 109 | netgetjoininformation=108 110 | 111 | netusergetinfo=110 112 | 113 | netusergetlocalgroups=112 114 | netshareenum=113 115 | dnsquery_a=114 116 | dnsquery_utf8=115 117 | dnsquery_w=116 118 | getadaptersaddresses=117 119 | getadaptersinfo=118 120 | getbestinterfaceex=119 121 | getinterfaceinfo=120 122 | obtainuseragentstring=121 123 | urldownloadtofilew=122 124 | deleteurlcacheentrya=123 125 | deleteurlcacheentryw=124 126 | httpopenrequesta=125 127 | httpopenrequestw=126 128 | httpqueryinfoa=127 129 | httpsendrequesta=128 130 | httpsendrequestw=129 131 | internetclosehandle=130 132 | internetconnecta=131 133 | internetconnectw=132 134 | internetcrackurla=133 135 | internetcrackurlw=134 136 | internetgetconnectedstate=135 137 | internetgetconnectedstateexa=136 138 | internetgetconnectedstateexw=137 139 | internetopena=138 140 | internetopenurla=139 141 | internetopenurlw=140 142 | internetopenw=141 143 | internetqueryoptiona=142 144 | internetreadfile=143 145 | internetsetoptiona=144 146 | internetsetstatuscallback=145 147 | internetwritefile=146 148 | connectex=147 149 | getaddrinfow=148 150 | transmitfile=149 151 | wsaaccept=150 152 | wsaconnect=151 153 | wsarecv=152 154 | wsarecvfrom=153 155 | wsasend=154 156 | wsasendto=155 157 | wsasocketa=156 158 | wsasocketw=157 159 | wsastartup=158 160 | accept=159 161 | bind=160 162 | closesocket=161 163 | connect=162 164 | getaddrinfo=163 165 | gethostbyname=164 166 | getsockname=165 167 | ioctlsocket=166 168 | listen=167 169 | recv=168 170 | recvfrom=169 171 | select=170 172 | send=171 173 | sendto=172 174 | setsockopt=173 175 | shutdown=174 176 | socket=175 177 | cocreateinstance=176 178 | coinitializeex=177 179 | oleinitialize=178 180 | createprocessinternalw=179 181 | createremotethread=180 182 | createthread=181 183 | createtoolhelp32snapshot=182 184 | module32firstw=183 185 | module32nextw=184 186 | process32firstw=185 187 | process32nextw=186 188 | readprocessmemory=187 189 | thread32first=188 190 | thread32next=189 191 | writeprocessmemory=190 192 | system=191 193 | ntallocatevirtualmemory=192 194 | ntcreateprocess=193 195 | ntcreateprocessex=194 196 | ntcreatesection=195 197 | ntcreatethread=196 198 | ntcreatethreadex=197 199 | ntcreateuserprocess=198 200 | ntfreevirtualmemory=199 201 | ntgetcontextthread=200 202 | ntmakepermanentobject=201 203 | ntmaketemporaryobject=202 204 | ntmapviewofsection=203 205 | ntopenprocess=204 206 | ntopensection=205 207 | ntopenthread=206 208 | ntprotectvirtualmemory=207 209 | ntqueueapcthread=208 210 | ntreadvirtualmemory=209 211 | ntresumethread=210 212 | ntsetcontextthread=211 213 | ntsuspendthread=212 214 | ntterminateprocess=213 215 | ntterminatethread=214 216 | ntunmapviewofsection=215 217 | ntwritevirtualmemory=216 218 | rtlcreateuserprocess=217 219 | rtlcreateuserthread=218 220 | shellexecuteexw=219 221 | regclosekey=220 222 | regcreatekeyexa=221 223 | regcreatekeyexw=222 224 | regdeletekeya=223 225 | regdeletekeyw=224 226 | regdeletevaluea=225 227 | regdeletevaluew=226 228 | regenumkeyexa=227 229 | regenumkeyexw=228 230 | regenumkeyw=229 231 | regenumvaluea=230 232 | regenumvaluew=231 233 | regopenkeyexa=232 234 | regopenkeyexw=233 235 | regqueryinfokeya=234 236 | regqueryinfokeyw=235 237 | regqueryvalueexa=236 238 | regqueryvalueexw=237 239 | regsetvalueexa=238 240 | regsetvalueexw=239 241 | ntcreatekey=240 242 | ntdeletekey=241 243 | ntdeletevaluekey=242 244 | ntenumeratekey=243 245 | ntenumeratevaluekey=244 246 | ntloadkey=245 247 | ntloadkey2=246 248 | ntloadkeyex=247 249 | ntopenkey=248 250 | ntopenkeyex=249 251 | ntquerykey=250 252 | ntquerymultiplevaluekey=251 253 | ntqueryvaluekey=252 254 | ntrenamekey=253 255 | ntreplacekey=254 256 | ntsavekey=255 257 | ntsavekeyex=256 258 | ntsetvaluekey=257 259 | findresourcea=258 260 | findresourceexa=259 261 | findresourceexw=260 262 | findresourcew=261 263 | loadresource=262 264 | sizeofresource=263 265 | controlservice=264 266 | createservicea=265 267 | createservicew=266 268 | deleteservice=267 269 | enumservicesstatusa=268 270 | enumservicesstatusw=269 271 | openscmanagera=270 272 | openscmanagerw=271 273 | openservicea=272 274 | openservicew=273 275 | startservicea=274 276 | startservicew=275 277 | getlocaltime=276 278 | getsystemtime=277 279 | getsystemtimeasfiletime=278 280 | gettickcount=279 281 | ntcreatemutant=280 282 | ntdelayexecution=281 283 | ntquerysystemtime=282 284 | timegettime=283 285 | lookupprivilegevaluew=284 286 | getnativesysteminfo=285 287 | getsysteminfo=286 288 | isdebuggerpresent=287 289 | outputdebugstringa=288 290 | seterrormode=289 291 | ldrgetdllhandle=290 292 | ldrgetprocedureaddress=291 293 | ldrloaddll=292 294 | ldrunloaddll=293 295 | ntclose=294 296 | ntduplicateobject=295 297 | ntloaddriver=296 298 | ntunloaddriver=297 299 | rtlcompressbuffer=298 300 | rtldecompressbuffer=299 301 | rtldecompressfragment=300 302 | exitwindowsex=301 303 | getasynckeystate=302 304 | getkeystate=303 305 | getkeyboardstate=304 306 | sendnotifymessagea=305 307 | sendnotifymessagew=306 308 | setwindowshookexa=307 309 | setwindowshookexw=308 310 | unhookwindowshookex=309 311 | drawtextexa=310 312 | drawtextexw=311 313 | findwindowa=312 314 | findwindowexa=313 315 | findwindowexw=314 316 | findwindoww=315 317 | getforegroundwindow=316 318 | loadstringa=317 319 | loadstringw=318 320 | messageboxtimeouta=319 321 | messageboxtimeoutw=320 322 | couninitialize=321 323 | ntopenmutant=322 324 | ntquerysysteminformation=323 325 | globalmemorystatus=324 326 | globalmemorystatusex=325 327 | setfiletime=326 328 | getfileversioninfosizew=327 329 | getfileversioninfow=328 330 | createactctxw=329 331 | cogetclassobject=330 332 | cocreateinstanceex=331 333 | iwbemservices_execquery=332 334 | setstdhandle=333 335 | registerhotkey=334 336 | createjobobjectw=335 337 | setinformationjobobject=336 338 | assignprocesstojobobject=337 339 | createremotethreadex=338 340 | iwbemservices_execmethod=339 341 | wnetgetprovidernamew=340 342 | ntshutdownsystem=341 343 | 344 | getstartupinfoa=349 345 | freeenvironmentstringsw=351 346 | getmodulefilenamea=362 347 | regopenkeyw=369 348 | changeserviceconfiga=371 349 | createwindowexw=373 350 | readfile=375 351 | wsalookupservicebegina=381 352 | wsalookupservicenextw=382 353 | globallock=391 354 | globalsize=394 355 | setenvironmentvariablea=411 356 | heaprealloc=422 357 | getenvironmentvariablea=423 358 | deletefilea=424 359 | getfullpathnamea=428 360 | locallock=433 361 | imessenger3::mycontacts=444 362 | localsize=454 363 | gettemppatha=461 364 | findfirstfilea=469 365 | getprivateprofilesectionw=470 366 | netwkstausergetinfo=472 367 | unlockfile=481 368 | exitthread=482 369 | wsaioctl=488 370 | getprivateprofileintw=490 371 | convertthreadtofiber=493 372 | wnetaddconnection2a=500 373 | heapalloc=343 374 | getprocessheap=347 375 | getprocessversion=356 376 | regnotifychangekeyvalue=357 377 | createfilea=364 378 | getmodulehandlew=370 379 | isbadstringptrw=387 380 | getcurrentthread=388 381 | globalrealloc=392 382 | loadlibraryexw=398 383 | getlongpathnamew=400 384 | getdrivetypea=419 385 | openprocess=427 386 | getcurrentdirectoryw=437 387 | setcurrentdirectoryw=438 388 | getfileattributesexa=440 389 | getprofilestringw=442 390 | findfirstchangenotificationw=445 391 | localrealloc=455 392 | process32next=457 393 | inet_ntoa=467 394 | wsacleanup=468 395 | netapibufferfree=473 396 | wsaasyncselect=476 397 | gethostname=477 398 | getprofileinta=484 399 | switchtofiber=495 400 | wnetcloseenum=498 401 | loadlibraryw=342 402 | getcurrentthreadid=346 403 | localalloc=348 404 | getcommandlinew=353 405 | virtualalloc=360 406 | createwindowexa=374 407 | shellexecutea=378 408 | inet_addr=379 409 | wsalookupservicenexta=383 410 | isbadwriteptr=386 411 | globalalloc=389 412 | regqueryvaluew=390 413 | createprocessw=399 414 | isbadcodeptr=403 415 | regopenkeya=404 416 | geturlcacheheaderdata=405 417 | setthreadpriority=409 418 | getfileattributesa=413 419 | gettempfilenamea=421 420 | getthreadpriority=426 421 | getprivateprofilestringw=441 422 | findclosechangenotification=446 423 | virtualprotect=452 424 | setfileattributesa=463 425 | getprivateprofileinta=478 426 | createdirectorya=479 427 | regcreatekeyw=487 428 | getexitcodeprocess=491 429 | createfiber=494 430 | virtualquery=354 431 | loadlibraryexa=363 432 | getmodulehandlea=368 433 | wsalookupserviceend=384 434 | isbadreadptr=385 435 | sleep=401 436 | muldiv=402 437 | queryservicestatus=406 438 | htonl=408 439 | setcurrentdirectorya=412 440 | _llseek=414 441 | _lread=415 442 | findnextfilea=429 443 | findclose=430 444 | exitprocess=431 445 | globalhandle=439 446 | showwindow=443 447 | isbadstringptra=448 448 | getcurrentdirectorya=453 449 | wsasetlasterror=465 450 | wsagetlasterror=466 451 | netwkstagetinfo=471 452 | netuseadd=502 453 | netusedel=504 454 | querydosdevicew=505 455 | getprofilestringa=506 456 | heapfree=344 457 | getprocaddress=345 458 | getenvironmentstringsw=350 459 | getcommandlinea=352 460 | getmodulefilenamew=355 461 | getcurrentprocess=365 462 | loadlibrarya=366 463 | regcreatekeya=377 464 | wsalookupservicebeginw=380 465 | getenvironmentvariablew=396 466 | getfullpathnamew=397 467 | htons=407 468 | heapcreate=410 469 | getprivateprofilestringa=435 470 | heapdestroy=436 471 | regqueryvaluea=447 472 | ntohs=449 473 | findfirstfilew=451 474 | process32first=456 475 | getstartupinfow=458 476 | waitforinputidle=459 477 | globalflags=462 478 | getdiskfreespacea=464 479 | searchpatha=480 480 | suspendthread=486 481 | createprocessa=489 482 | getlogicaldrivestringsa=492 483 | wnetopenenuma=496 484 | wnetenumresourcea=497 485 | netusegetinfo=501 486 | localfree=358 487 | getcurrentprocessid=359 488 | virtualfree=361 489 | freelibrary=367 490 | closeservicehandle=372 491 | writefile=376 492 | globalunlock=393 493 | globalfree=395 494 | _lclose=416 495 | resumethread=417 496 | createfilew=418 497 | getshortpathnamea=420 498 | getdrivetypew=425 499 | heapsize=432 500 | localunlock=434 501 | regenumkeya=450 502 | getexitcodethread=460 503 | netuseenum=474 504 | winexec=475 505 | writeprivateprofilestringa=483 506 | getprofilesectionw=485 507 | netserverenum=499 508 | wnetcancelconnection2a=503 -------------------------------------------------------------------------------- /src/utility/take_all_malware_hascode.py: -------------------------------------------------------------------------------- 1 | 2 | import zipfile 3 | 4 | 5 | def fetch_hascode_from_file_name(file_name): 6 | if not "VirusShare" in file_name: 7 | return None 8 | 9 | start = file_name.find("_") 10 | if start < 1: 11 | return "" 12 | 13 | return file_name[start + 1:] 14 | 15 | archive = zipfile.ZipFile('D:\malwares\VirusShare_00000.zip', 'r') 16 | 17 | destination_path = "destination/malware_hascode/" 18 | 19 | index = 0 20 | file_name = 0 21 | for malware_file_name in archive.filelist: 22 | print(malware_file_name.filename) 23 | 24 | if index == 500: 25 | index = 0 26 | file_name = file_name + 1 27 | 28 | if index == 0: 29 | hascode_file = open("destination/malware_hascode/" + str(file_name), "w") 30 | 31 | hascode = fetch_hascode_from_file_name(malware_file_name.filename) 32 | hascode_file.write(hascode + "\n") 33 | 34 | index = index + 1 --------------------------------------------------------------------------------