dropper
dropper copied to clipboard
Max Recursion
Trying to run the newly obfuscated python script/file gave me the following error.
Traceback (most recent call last):
File "/home/ori/Desktop/Dropper/obf_uwu.py", line 21, in <module>
(lambda _0xc7b4:(
File "/home/ori/Desktop/Dropper/obf_uwu.py", line 22, in <lambda>
_0x9828[0x12^0x12](_0x9828[0xd^0xd](_0x9828[0x3d^0x3c])(
RecursionError: maximum recursion depth exceeded during compilation
Everything seems to be obfuscated just fine, but trying to execute/run the file didn't work.
Could you try now?
Could you try now?
Traceback (most recent call last):
File "/home/ori/Desktop/Dropper/obf_uwu.py", line 31, in <module>
(lambda _0x71c3:(
File "/home/ori/Desktop/Dropper/obf_uwu.py", line 32, in <lambda>
_0x873c[0x32^0x32](_0x873c[0x39^0x39](_0x873c[0x60^0x61])(
File "<string>", line 18, in <module>
TypeError: write() argument must be str, not bytes
Command ran to obfuscate:
python -m dropper <file>.py
Could you send the 18th line of uwu.py
?
Thank's.
Could you send the 18th line of
uwu.py
?Thank's.
uwu.py code:
Basic Rundown:
This code opens kcalc(a calculator) on my linux laptop and is me messing around with base64 encoding random variables. (Won't work on mac or windows)
- Defines some variables that are base64 encoded.
- Decodes those variables.
- Uses them to make, open file with "wb", and write bytes (bytes being written are below) into a file, runs said file, then remove the file.
It is using your old dropper obfuscation method.
The data here is assigned to the variable dsgfhgkjlighojh
and is being base64 decoded. And is what is being written in the write() function. It is writing the following to a file. (decoded base64 data) but in bytes b' '
b'import sys\nsys.setrecursionlimit(999999999)\nexec(__import__(\'\\x7a\\x6c\\x69\\x62\').decompress(b\'x\\x9c\\xadYK\\x8f\\xdb6\\x10\\xbe\\xe7W\\x18\\xe9amx\\x0f\\xe2C\\x96\\xd4$\\x06z(\\x02\\xe4\\x16\\x18A.{Y[2Pt\\x91\\x16\\xdd\\xa2\\xe0\\xcf\\xef\\xf0Mj\\xa5\\x19\\xd2\\x8e\\x01\\xc7\\x1b\\x9b3\\xfc\\xf8\\xcd\\x9b:}W\\xaf\\xa7o/_N\\xf0y\\xfe\\xed\\xd3\\xf4\\xdf\\xf3\\xcb\\xd6\\xfc\\xf3\\xf0\\xa4\\x0e\\x02\\xde\\xfd\\x93\\xea\\xf8\\xc3n\\xbbm\\x94\\xe0}\\xe3_\\xc7\\xa3\\x18v{\\xf8\\xb2\\xf9\\xf8Q\\xf2\\xddn\\xbf"t\\x86\\xdfygVN\\x17/\\xca[D\\x801\\xbd\\x885\\xe4\\x0b H\\x0f\\xa1m\\x08\\x08\\x06\\xac\\xd6\\xcd0\\xcd\\x16\\xda\\xee\\xc3\\xf9\\xf7\\x17\\xc3\\xca\\xf9\\xb3a\\xe5\\x94\\x91d\\xf9y\\x9f\\xee\\xf3\\xde\\xf0\\x03\\xfb8D\\x81)P\\xd8yd\\x0b\\x12lzs\\x1a\\x8dV\\xb2u\\x19\\xfd\\xbb\\x10f\\x97C\\x9bc\\x97="f\\xce\\x8d\\x1d\\x1e\\xa0\\x1e<\\x9d\\x00\\x05Xx\\xb7\\xf9e\\xf3\\xe3\\xaf\\x7f7\\xcf\\x9b\\xd7?\\xff\\x18\\xc7\\xe9\\x9f\\xcd\\xaf\\x7f\\xbf\\x03\\x1e4\\x17\\xaf\\x9a\\x9a\\xd3\\xd7G\\xc3\\x94\\xa5G\\xff\\xd7\\xb1d\\xdf\\xf0\\xebg\\xfb\\xa7^\\xf5\\x96G0\\x95\\x9c\\x00\\xe5\\x15\\xde\\xfa\\xb3}\\xd8=\\xbe]\\xd2^\\xed\\xdb,a\\xf0\\x1e\\xf5R\\xff\\xfd\\xa2\\x88>\\xb7^\\xda\\x19\\x0e\\x96\\x97\\x08\\xb71h\\xeb\\x1a\\xf8\\x1c\\xe0}\\xb1 \\x96\\x8e\\r\\\'\\xf8b\\x8e\\xbdx\\x12\\xc4V\\xd2z\\x04\\xbb\\\\RS#\\x96RS\\x9f\\x1a\\x05|\\xc1y\\x85\\xe0\\xb8WX\\x1f\\x87o2\\xf1\\x06\\xd9\\xc9*5\\xf0d\\x16W\\x03"\\xd4\\xf2d\\xa1\\x08\\x1e#\\xb4\\xc7\\xd0\\xcc\\xed?aQ\\xda\\x1bu#\\x9f\\x11\\x80\\x86\\xb6l\\x93\\xd0.H\\x1b\\x89f,o14Q$\\x14\\x04\\xfb\\xc8\\x0e\\x07*\\x0e\\x11(\\xa2\\x1cO\\x8f\\xd1f\\x16a\\xe1\\x81\\x01\\\'\\x82.\\xc9\\\\\\xc1\\xf9\\x00\\xc6\\x80\\xd1S\\xb6\\xef\\x1c\\x85\\xec<[\\x90l\\x08\\xf2\\x8b\\x0c\\xd0\\xb8p*\\xb4\\x81t\\xee>\\xcaL\\x81\\xc4\\xc14e<\\xa7\\x05\\t\\x03\\xa2\\xec\\xf1\\xf7\\xc5^\\xb6\\xc8#\\xeek\\xb5.\\x02\\xd8\\x89\\xa2\\x8c:\\xed\\x02\\xc2\\xa2\\xb8P\\x82\\xf5QF\\xb4AF\\x12\\xf5\\xbc\\xf7\\xb1\\xd4\\x14\\x06=h\\xc7\\x8cl{\\x88}\\xa1\\xef\\x11\\xc11\\xb3o\\x8d\\x8d\\xa9\\xacT\\x93\\xe1\\x8c6\\x11\\x02\\xae\\xbd?A\\x8b.\\xa1\\xbd\\xf6Exm\\xb1-\\xd30CmZ\\x99DBj\\xc2\\xb2\\x81\\xe2\\xb9\\x94\\x8cM[O\\xc5\\x0fv8\\xdf}\\x19MX3[\\xda\\x1e\\xa7\\xc5\\x99SY1v\\xc7\\x95\\x865\\x04\\xe0\\x99\\x88\\xd9\\x8c{\\xees1\\x8cck\\x83}\\xad\\xbf\\xa7\\x8d\\xcb\\n\\x18\\x11\\xb5\\xde\\x90x\\x8fGj\\xce\\xb0\\xb0U7+/XA\\xe7o\\x88\\xf1nP\\x15\\xb0K-\\x7f1m\\xc1S ]\\xa0=\\xa6\\xcf\\x91\\xf5\\xcc\\xa1\\x9ao\\xb2\\x85\\x8c\\xd5\\x82\\xea\\x8c\\xadU\\xe4\\\\\\x01\\xd2\\xe6Vg\\xee\\xac\\xe2QM\\xf7\\x10\\x8aC\\xb1\\x83\\x13C\\x83`a\\x1d\\x0f\\x89\\x0c\\x9b\\x18`"\\x99\\xc1\\xcf\\xa6?\\x14~c\\x87\\xdc!\\xdd\\x12\\x1fXYQ\\xeb\\xbb\\xc8j\\xa1GR\\xe3-5\\x8a\\xc7\\x16\\xf8\\xf2\\x9c\\xed\\x8f\\xcd\\xe2\\xd5\\xe5\\xbd\\xc9\\x1d\\x97\\xe3\\x13{\\xbdr\\xb7\\x83%Ee\\x8d\\xd4\\xcax:\\xf8\\x8cXU)\\x91\\xf10?j\\x13b\\x02\\x0b\\xb6\\x989\\xc7)\\x97o)\\x82\\x08\\xac\\xee\\xee\\xc9\\x8e\\xc7\\xeb\\xa8S\\x9b\\xbb\\xd4\\xe0c\\x88\\xb8T)\\xe2-K\\xb1\\x88C%\\xd1\\xc5f%\\x84H\\x9f\\x050\\x00\\x04\\x0f!\\x8e\\xf0\\xaa\\xec\\xa9\\x8d5\\x0e\\x81GB@\\x96\\x86\\xe1\\x1a6"\\x19\\xebE\\xb7%c\\xd4\\xee\\xe2\\x90K\\xc5\\xfb\\x8c\\xbb\\xee\\xd2r,\\x8eL\\xa2\\xbc*9\\x05\\t\\x1e\\xeeV\\xb1X\\x8bw\\xab\\x15\\x1dM:\\x07-\\x80xN\\xd6\\xf1\\xb4\\x8e\\xdc\\xd7\\x89\\xdc\\xd0q\\xf9<I\\xb1\\xa0\\xb2\\x06\\xb6\\xdc\\xf9\\x88\\x82*\\xc32\\x1e\\xd2\\xb5\\xc0B\\xb7\\xbd.Q\\x87\\xb6&\\xb6\\x1c\\xde\\xd8c`Xb\\xb7\\rXB-\\x10D[\\xe2r\\xe5\\x81%\\x1bb\\xceRu\\xe7\\xe6\\x07,E\\xd4\\x82h\\xce4)\\xe3E\\xc7\\x8d_Z\\x86_\\xf3\\xdbS<m\\xd6\\xd1\\x1f\\xb5\\xc6\\xfb&,\\xa0C2/\\xeeo\\xcdh[\\xd0I)1\\xa62X@_e\\xa6\\xdc[\\x00s\\xfdpW\\xa9f\\xa3\\t\\xd6N\\xf6\\xfdli\\x01C\\xf5\\x16\\xf0\\x9a\\xf3g>+\\xeel=\\xe2\\\\\\xdeQ@\\xdc\\xc8\\xe5\\xbd\\xb0F\\xcd]\\xf7\\xed\\x0b\\xebTzw\\x84?\\xde\\x19r1\\xf4\\xf1N\\x0c\\xdfY\\xec\\xe3A\\xe3\\xdd\\xb3\\xc4\\x0c\\xe6\\xae\\x1b\\xf7\\x1a\\x9b\\xb0g\\x99\\xb0\\xc8g\\xd2*\\x89\\x8f-c\\x86(\\x16J\\xaa\\xa3a\\xf3\\xb6\\xca\\xe6\\x94{\\xeaZ\\x92\\xabxSv\\xe6\\xdb.\\xce\\xb3\\x9c\\xc3\\xb1p\\xbfcF\\x0f;\\x11\\xd9\\xd9\\xd5\\xc3\\x1b\\xf5g\\x97(\\x8b\\x1d\\xd9,\\xe9\\x94M\\xb3\\xe1I[I\\x0cB\\x08R]\\xfd-\\xdd&\\xd57*\\xd1\\xe5R\\xd9\\xdd,\\x96$k\\xd8-\\x0c\\x896\\xf3\\xd88%Q\\x9dV\\x9b\\x87\\x91\\xcdfkA\\x94<D\\xdf\\xe6\\xcf\\x82\\xb7y\\x88="3\\x1es\\xfb\\x04\\x88\\x053\\xf3\\xf1\\x18\\xfb\\x7f\\xf4Q\\xab[\\xa8\\xf5\\x12\\x0f\\xdd\\xfd\\x15\\x86u\\r-\\xb7\\xaew\\xe4e\\x00\\xe2\\x00\\xe9\\xcew\\xc6q\\xd8\\xe3\\x9b\\xdeh\\xc2\\x11t\\x97\\xe4d\\x80\\xe0\\xf1\\xa7]\\xbb\\xe7]\\xed\\xd2#\\x9dK&\\x15\\xbd\\x1c\\xbb<Ul\\x90\\xf9n\\xf1\\x0e\\x83\\xba\\xd5M\\x1e\\x06\\xd5Me\\xf0Zr\\xdc\\xff\\x019\\rH\\x94\'))'
After changing the code to make sure that it is writing a string to the file instead of bytes, basically added .decode() to the b64 decode option without a .decode(). And to have it use "w" instead of "wb" in the with open() function. I tried it out again and it worked but now can't seem to find the newly created file from the with open() function. But the point is, that is isn't throwing that error anymore.
I believe the issue is that after using this new obfuscation method, it needs that to be a string and not bytes.
I have also noted that it doesn't obfuscate float
. Only int
. If I were to set time.sleep(1)
to time.sleep(1.5)
. It won't work.
TLDR;
Errors were caused by my code as
write()
was writing bytes and not strings. Which for some reason causes theobf_uwu.py
file to not work. However the originaluwu.py
file WILL work if not obfuscated. So basically don't write bytes into files and don't use floats.
A fix for this I think, would be to add an option for bytes
along side of strings
and floats
along side of ints
.
Idk, I have no idea why the obfuscated uwu.py file has an issue with writing bytes into a file. But the non obfuscated uwu.py file doesn't.
I have school today.
I'm gonna look into it ASAP.
Thank you.
floats are now fixed:
if _type == NUMBER: ...
changed to
if _type == NUMBER and string.isdigit(): ...
gonna make a function to obfuscate floats too soon.
Hi,
Do you still have issues with bytes?
Hi,
Do you still have issues with bytes?
Traceback (most recent call last):
File "/home/ori/Desktop/Dropper/obf_uwu.py", line 34, in <module>
(lambda _0xa937: (
File "/home/ori/Desktop/Dropper/obf_uwu.py", line 35, in <lambda>
_0xa937[0x4f^0x4f](_0x8e28[0x24^0x24](_0xa937[0x32^0x33])(
File "<string>", line 18, in <module>
TypeError: write() argument must be str, not bytes
I still get this error. the following is my code in case you want to mess with it and test for yourself.
import base64
import os
import subprocess
import time
old_obf_code_b64 = 'aW1wb3J0IHN5cwpzeXMuc2V0cmVjdXJzaW9ubGltaXQoOTk5OTk5OTk5KQpleGVjKF9faW1wb3J0X18oJ1x4N2FceDZjXHg2OVx4NjInKS5kZWNvbXByZXNzKGIneFx4OWNceGFkWUtceDhmXHhkYjZceDEwXHhiZVx4ZTdXXHgxOFx4ZTlhbXhceDBmXHhlMkNceDk2XHhkNCRceDA2eihceDAyXHhlNFx4MTZceDE4QS57WVsyUHRceDkxXHgxNlx4ZGRceGEyXHhlMFx4Y2ZceGVmXHhmME1qXHhhNVx4MTlceGQyXHg4ZVx4MDFceGM3XHgxYlx4OWIzXHhmY1x4ZjhceGNkXHg5Yjp9V1x4YWZceGE3by9fTlx4ZjB5XHhmZVx4ZWRceGQzXHhmNFx4ZGZceGYzXHhjYlx4ZDZceGZjXHhmM1x4ZjBceGE0XHgwZVx4MDJceGRlXHhmZFx4OTNceGVhXHhmOFx4YzNuXHhiYm1ceDk0XHhlMH1ceGUzX1x4YzdceGEzXHgxOHZ7XHhmOFx4YjJceGY5XHhmOFFceGYyXHhkZG5ceGJmInRceDg2XHhkZnlnVk5ceDE3L1x4Y2FbRFx4ODAxXHhiZFx4ODg1XHhlNFx4MGIgSFx4MGZceGExbVx4MDhceDA4XHgwNlx4YWNceGQ2XHhjZDBceGNkXHgxNlx4ZGFceGVlXHhjM1x4ZjlceGY3XHgxN1x4YzNceGNhXHhmOVx4YjNhXHhlNVx4OTRceDkxZFx4Zjl5XHg5Zlx4ZWVceGYzXHhkZVx4ZjBceDAzXHhmYjhEXHg4MSlQXHhkOHlkXHgwYlx4MTJsenNceDFhXHg4ZFZceGIydVx4MTlceGZkXHhiYlx4MTBmXHg5N0NceDliY1x4OTc9ImZceGNlXHg4ZFx4MWRceDFlXHhhMFx4MWU8XHg5ZFx4MDBceDA1WHhceGI3XHhmOWVceGYzXHhlM1x4YWZceDdmN1x4Y2ZceDliXHhkNz9ceGZmXHgxOFx4YzdceGU5XHg5Zlx4Y2RceGFmXHg3Zlx4YmZceDAzXHgxZTRceDE3XHhhZlx4OWFceDlhXHhkM1x4ZDdHXHhjM1x4OTRceGE1R1x4ZmZceGQ3XHhiMWRceGRmXHhmMFx4ZWJnXHhmYlx4YTdeXHhmNVx4OTZHMFx4OTVceDljXHgwMFx4ZTVceDE1XHhkZVx4ZmFceGIzfVx4ZDg9XHhiZV1ceGQyXlx4ZWRceGRiLGFceGYwXHgxZVx4ZjVSXHhmZlx4ZmRceGEyXHg4OD5ceGI3Xlx4ZGFceDE5XHgwZVx4OTZceDk3XHgwOFx4YjcxaFx4ZWJceDFhXHhmOFx4MWNceGUwfVx4YjEgXHg5Nlx4OGVcclwnXHhmOGJceDhlXHhiZHhceDEyXHhjNFZceGQyelx4MDRceGJiXFxSUyNceDk2UlNceDlmXHgxYVx4MDV8XHhjMXlceDg1XHhlMFx4YjhXWFx4MWZceDg3bzJceGYxXHgwNlx4ZDlceGM5KjVceGYwZFx4MTZXXHgwMyJceGQ0XHhmMmRceGExXHgwOFx4MWUjXHhiNFx4YzdceGQwXHhjY1x4ZWQ/YVFceGRhXHgxYnUjXHg5Zlx4MTFceDgwXHg4Nlx4YjZsXHg5M1x4ZDAuSFx4MWJceDg5ZixvMTRRJFx4MTRceDA0XHhmYlx4YzhceDBlXHgwNypceDBlXHgxMShceGEyXHgxY09ceDhmXHhkMWZceDE2YVx4ZTFceDgxXHgwMVwnXHg4Mi5ceGM5XFxceGMxXHhmOVx4MDBceGM2XHg4MFx4ZDFTXHhiNlx4ZWZceDFjXHg4NVx4ZWM8W1x4OTBsXHgwOFx4ZjJceDhiXHgwY1x4ZDBceGI4cCpceGI0XHg4MXRceGVlPlx4Y2FMXHg4MVx4YzRceGMxNGU8XHhhN1x4MDVcdFx4MDNceGEyXHhlY1x4ZjFceGY3XHhjNV5ceGI2XHhjOCNceGVla1x4YjUuXHgwMlx4ZDhceDg5XHhhMlx4OGM6XHhlZFx4MDJceGMyXHhhMlx4YjhQXHg4Mlx4ZjVRRlx4YjRBRlx4MTJceGY1XHhiY1x4ZjdceGIxXHhkNFx4MTRceDA2PWhceGM3XHg4Y2x7XHg4OH1ceGExXHhlZlx4MTFceGMxMVx4YjNvXHg4ZFx4OGRceGE5XHhhY1RceDkzXHhlMVx4OGM2XHgxMVx4MDJceGFlXHhiZD9BXHg4Yi5ceGExXHhiZFx4ZjZFeG1ceGIxLVx4ZDMwQ21aXHg5OURCalx4YzJceGIyXHg4MVx4ZTJceGI5XHg5NFx4OGNNW09ceGM1XHgwZnY4XHhkZn1ceDE5TVgzW1x4ZGFceDFlXHhhN1x4YzVceDk5U1kxdlx4YzdceDk1XHg4NjVceDA0XHhlMFx4OTlceDg4XHhkOVx4OGN7XHhlZXMxXHg4Y2NrXHg4M31ceGFkXHhiZlx4YTdceDhkXHhjYlxuXHgxOFx4MTFceGI1XHhkZVx4OTB4XHg4ZkdqXHhjZVx4YjBceGIwVTcrL1hBXHhlN29ceDg4XHhmMW5QXHgxNVx4YjBLLVx4N2YxbVx4YzFTIF1ceGEwPVx4YTZceGNmXHg5MVx4ZjVceGNjXHhhMVx4OWFvXHhiMlx4ODVceDhjXHhkNVx4ODJceGVhXHg4Y1x4YWRVXHhlNFxcXHgwMVx4ZDJceGU2VmdceGVlXHhhY1x4ZTJRTVx4ZjdceDEwXHg4YUNceGIxXHg4M1x4MTNDXHg4M2BhXHgxZFx4MGZceDg5XHgwY1x4OWJceDE4YCJceDk5XHhjMVx4Y2ZceGE2P1x4MTR+Y1x4ODdceGRjIVx4ZGRceDEyXHgxZlhZUVx4ZWJceGJiXHhjOGpceGExR1JceGUzLTVceDhhXHhjN1x4MTZceGY4XHhmMlx4OWNceGVkXHg4Zlx4Y2RceGUyXHhkNVx4ZTVceGJkXHhjOVx4MWRceDk3XHhlM1x4MTN7XHhiZHJceGI3XHg4MyVFZVx4OGRceGQ0XHhjYXg6XHhmOFx4OGNYVSlceDkxXHhmMTA/alx4MTNiXHgwMlx4MGJceGI2XHg5ODlceGM3KVx4OTdvKVx4ODJceDA4XHhhY1x4ZWVceGVlXHhjOVx4OGVceGM3XHhlYlx4YThTXHg5Ylx4YmJceGQ0XHhlMGNceDg4XHhiOFQpXHhlMi1LXHhiMVx4ODhDJVx4ZDFceGM1ZiVceDg0SFx4OWZceDA1MFx4MDBceDA0XHgwZiFceDhlXHhmMFx4YWFceGVjXHhhOVx4OGQ1XHgwZVx4ODFHQkBceDk2XHg4Nlx4ZTFceDFhNiJceDE5XHhlYkVceGI3JWNceGQ0XHhlZVx4ZTJceDkwS1x4YzVceGZiXHg4Y1x4YmJceGVlXHhkMnIsXHg4ZUxceGEyXHhiYyo5XHgwNVx0XHgxZVx4ZWVWXHhiMVhceDhid1x4YWJceDE1XHgxZE06XHgwNy1ceDgweE5ceGQ2XHhmMVx4YjRceDhlXHhkY1x4ZDdceDg5XHhkY1x4ZDBxXHhmOTxJXHhiMVx4YTBceGIyXHgwNlx4YjZceGRjXHhmOVx4ODhceDgyKlx4YzMyXHgxZVx4ZDJceGI1XHhjMEJceGI3XHhiZC5RXHg4N1x4YjYmXHhiNlx4MWNceGRlXHhkOGNgWGJceGI3XHJYQi1ceDEwRFtceGUyclx4ZTVceDgxJVx4MWJiXHhjZVJ1XHhlN1x4ZTZceDA3LEVceGQ0XHg4MmhceGNlNClceGUzRVx4YzdceDhkX1pceDg2X1x4ZjNceGRiUzxtXHhkNlx4ZDFceDFmXHhiNVx4YzZceGZiJixceGEwQzIvXHhlZW9ceGNkaFtceGQwSSkxXHhhNjJYQF9lXHhhNlx4ZGNbXHgwMHNceGZkcFdceGE5Zlx4YTNcdFx4ZDZOXHhmNlx4ZmRsaVx4MDFDXHhmNVx4MTZceGYwXHg5YVx4ZjNnPitceGVlbD1ceGUyXFxceGRlUUBceGRjXHhjOFx4ZTVceGJkXHhiMEZceGNkXVx4ZjdceGVkXHgwYlx4ZWJUendceDg0P1x4ZGVceDE5cjFceGY0XHhmMU5ceDBjXHhkZllceGVjXHhlM0FceGUzXHhkZFx4YjNceGM0XHgwY1x4ZTZceGFlXHgxYlx4ZjdceDFhXHg5Ylx4YjBnXHg5OVx4YjBceGM4Z1x4ZDIqXHg4OVx4OGYtY1x4ODYoXHgxNkpceGFhXHhhM2FceGYzXHhiNlx4Y2FceGU2XHg5NHtceGVhWlx4OTJceGFieFN2XHhlNlx4ZGIuXHhjZVx4YjNceDljXHhjM1x4YjFwXHhiZmNGXHgwZjtceDExXHhkOVx4ZDlceGQ1XHhjM1x4MWJceGY1Z1x4OTcoXHg4Ylx4MWRceGQ5LFx4ZTlceDk0TVx4YjNceGUxSVtJXHgwY0JceDA4Ul1ceGZkLVx4ZGQmXHhkNTcqXHhkMVx4ZTVSXHhkOVx4ZGQsXHg5NiRrXHhkOC1ceDBjXHg4OTZceGYzXHhkODglUVx4OWRWXHg5Ylx4ODdceDkxXHhjZGZrQVx4OTQ8RFx4ZGZceGU2XHhjZlx4ODJceGI3eVx4ODg9IjNceDFlc1x4ZmJceDA0XHg4OFx4MDUzXHhmM1x4ZjFceDE4XHhmYlx4N2ZceGY0UVx4YWJbXHhhOFx4ZjVceDEyXHgwZlx4ZGRceGZkXHgxNVx4ODZ1XHItXHhiN1x4YWV3XHhlNGVceDAwXHhlMlx4MDBceGU5XHhjZXdceGM2cVx4ZDhceGUzXHg5Ylx4ZGVoXHhjMlx4MTF0XHg5N1x4ZTRkXHg4MFx4ZTBceGYxXHhhN11ceGJiXHhlN11ceGVkXHhkMiNceDlkSyZceDE1XHhiZFx4MWNceGJiPFVsXHg5MFx4ZjluXHhmMVx4MGVceDgzXHhiYVx4ZDVNXHgxZVx4MDZceGQ1TWVceGYwWnJceGRjXHhmZlx4MDE5XHJIXHg5NCcpKQ=='
file_name = 'LmZzZGhnZmp5dXJ0ZGZnai5weQ=='
wb = 'Ync='
python = 'cHl0aG9u'
decoded_old_obf_code_b64 = base64.b64decode(old_obf_code_b64) #old obf code
decoded_file_name = base64.b64decode(file_name).decode() # file name
decoded_wb = base64.b64decode(wb).decode() # wb
decoded_python = base64.b64decode(python).decode() # the word python
with open(decoded_file_name, str(decoded_wb[::-1])) as f:
f.write(decoded_old_obf_code_b64)
f.close()
# This runs the command to execute the newly made file | decoded_file_name. It is optional and can be commented out.
# The issue is with writing to said file in the with open function.
subprocess.call(f'{decoded_python} {decoded_file_name}', shell=True)
time.sleep(1)
os.remove(decoded_file_name)
I have also noticed that when using a path to the file you want to obfuscate, I get this error:
File "/usr/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/home/ori/Desktop/Dropper/dropper/__main__.py", line 70, in <module>
typer.run(main)
File "/home/ori/Desktop/Dropper/drpENV/lib/python3.10/site-packages/typer/main.py", line 864, in run
app()
File "/home/ori/Desktop/Dropper/drpENV/lib/python3.10/site-packages/typer/main.py", line 214, in __call__
return get_command(self)(*args, **kwargs)
File "/home/ori/Desktop/Dropper/drpENV/lib/python3.10/site-packages/click/core.py", line 1128, in __call__
return self.main(*args, **kwargs)
File "/home/ori/Desktop/Dropper/drpENV/lib/python3.10/site-packages/click/core.py", line 1053, in main
rv = self.invoke(ctx)
File "/home/ori/Desktop/Dropper/drpENV/lib/python3.10/site-packages/click/core.py", line 1395, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/ori/Desktop/Dropper/drpENV/lib/python3.10/site-packages/click/core.py", line 754, in invoke
return __callback(*args, **kwargs)
File "/home/ori/Desktop/Dropper/drpENV/lib/python3.10/site-packages/typer/main.py", line 500, in wrapper
return callback(**use_params) # type: ignore
File "/home/ori/Desktop/Dropper/dropper/__main__.py", line 65, in main
with open(f"obf_{file_path}", "w") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'obf_/home/ori/Desktop/Dropper/uwu.py'
despite the file actually existing where it is specified. And the issue is it is appending
obf_
to the beginning of the path.
Perhaps it is just something wrong with my code all together that I don't understand. I try to do the same thing with writing bytes to a file in sample.py
but that works just fine. man, I really don't have a clue anymore xD
Ahahah wtf
I'll fix the path thing soon.
Ahahah wtf
I'll fix the path thing soon.
I think the issue is the way wb
is being passed to with open()
. If I replicate that in sample.py
it throws that same error.
This will throw an error when obfuscated: (reversing the string). It somehow thinks it's bytes instead of a string? even though it will work just fine when not obfuscated.
wb = 'Ync=' #decoded this says "bw"
wb_d = base64.b64decode(wb).decode()
with open(".testing.py", str(wb_d[::-1])) as f:
f.write(val)
f.close()
This will not throw an error when obfuscated:
wb = 'Ync=' #decoded this says "bw"
wb_d = base64.b64decode(wb).decode()
with open(".testing.py", wb_d) as f:
f.write(val)
f.close()
hm
hm
what?
no response
- ez deobfuscation
- ez deobfuscation
I already answered you in #7. You should train your memory more than your deobfuscation skills.