SyntaxError: EOL while scanning string literal
This is the code:
mycode = """
def set_env_variables(user, toImpersonate=False):
template_path = {
'APPDATA' : u'{drive}:\\Users\\{user}\\AppData\\Roaming\\',
'USERPROFILE' : u'{drive}:\\Users\\{user}\\',
'HOMEDRIVE' : u'{drive}:',
'HOMEPATH' : u'{drive}:\\Users\\{user}',
'ALLUSERSPROFILE' : u'{drive}:\\ProgramData',
'COMPOSER_HOME' : u'{drive}:\\Users\\{user}\\AppData\\Roaming\\Composer\\',
'LOCALAPPDATA' : u'{drive}:\\Users\\{user}\\AppData\\Local',
}"""
secret = base64.b64encode(mycode)
f = open('fdsf.txt','w')
f.write(secret)
This code writes the mycode variable in base64 to a file. I copy the contents from this file and try to call eval:
secret = """
CmRlZiBzZXRfZW52X3ZhcmlhYmxlcyh1c2VyLCB0b0ltcGVyc29uYXRlPUZhbHNlKToKCXRlbXBsYXRlX3BhdGggPSB7CgkJJ0FQUERBVEEnCQkJOiB1J3tkcml2ZX06XFVzZXJzXHt1c2VyfVxBcHBEYXRhXFJvYW1pbmdcJywKCQknVVNFUlBST0ZJTEUnCQk6IHUne2RyaXZlfTpcVXNlcnNce3VzZXJ9XCcsCgkJJ0hPTUVEUklWRScJCQk6IHUne2RyaXZlfTonLAoJCSdIT01FUEFUSCcJCQk6IHUne2RyaXZlfTpcVXNlcnNce3VzZXJ9JywKCQknQUxMVVNFUlNQUk9GSUxFJwk6IHUne2RyaXZlfTpcUHJvZ3JhbURhdGEnLCAKCQknQ09NUE9TRVJfSE9NRScJCTogdSd7ZHJpdmV9OlxVc2Vyc1x7dXNlcn1cQXBwRGF0YVxSb2FtaW5nXENvbXBvc2VyXCcsIAoJCSdMT0NBTEFQUERBVEEnCQk6IHUne2RyaXZlfTpcVXNlcnNce3VzZXJ9XEFwcERhdGFcTG9jYWwnLAoJfQ=="""
mydecode = base64.b64decode(secret)
eval(compile(mydecode,'<string>','exec'))
But I get this:
Traceback (most recent call last):
File "testt.py", line 8, in <module>
eval(compile(mydecode,'<string>','exec'))
File "<string>", line 4
'APPDATA' : u'{drive}:\Users\{user}\AppData\Roaming\',
^
SyntaxError: EOL while scanning string literal
How can this be fixed?
PS Here is another example:
# -*- coding: utf-8 -*-
import os
import base64
a = '1'
mycode = """b = '3'
c = '4'"""
secret = """YiA9ICczJwpjID0gJzQn"""
mydecode = base64.b64decode(secret)
eval(compile(mydecode,'<string>','exec'))
res = a + b + c
print res #134 выводит, сценарий не выдает ошибок.
0
1 answers
I screened "slashes" and it worked like this:
import base64
mycode = r"""
def set_env_variables(user, toImpersonate=False):
template_path = {
'APPDATA' : ur'{drive}:\\Users\\{user}\\AppData\\Roaming\\',
'USERPROFILE' : ur'{drive}:\\Users\\{user}\\',
'HOMEDRIVE' : ur'{drive}:',
'HOMEPATH' : ur'{drive}:\\Users\\{user}',
'ALLUSERSPROFILE' : ur'{drive}:\\ProgramData',
'COMPOSER_HOME' : ur'{drive}:\\Users\\{user}\\AppData\\Roaming\\Composer\\',
'LOCALAPPDATA' : ur'{drive}:\\Users\\{user}\\AppData\\Local',
}
return template_path"""
secret = base64.b64encode(mycode)
f = open(r'C:\work\python\data\fdsf.txt','w')
f.write(secret)
secret = """
CmRlZiBzZXRfZW52X3ZhcmlhYmxlcyh1c2VyLCB0b0ltcGVyc29uYXRlPUZhbHNlKToKCXRlbXBsYXRlX3BhdGggPSB7CgkJJ0FQUERBVEEnCQkJOiB1J3tkcml2ZX06XFVzZXJzXHt1c2VyfVxBcHBEYXRhXFJvYW1pbmdcJywKCQknVVNFUlBST0ZJTEUnCQk6IHUne2RyaXZlfTpcVXNlcnNce3VzZXJ9XCcsCgkJJ0hPTUVEUklWRScJCQk6IHUne2RyaXZlfTonLAoJCSdIT01FUEFUSCcJCQk6IHUne2RyaXZlfTpcVXNlcnNce3VzZXJ9JywKCQknQUxMVVNFUlNQUk9GSUxFJwk6IHUne2RyaXZlfTpcUHJvZ3JhbURhdGEnLCAKCQknQ09NUE9TRVJfSE9NRScJCTogdSd7ZHJpdmV9OlxVc2Vyc1x7dXNlcn1cQXBwRGF0YVxSb2FtaW5nXENvbXBvc2VyXCcsIAoJCSdMT0NBTEFQUERBVEEnCQk6IHUne2RyaXZlfTpcVXNlcnNce3VzZXJ9XEFwcERhdGFcTG9jYWwnLAoJfQ=="""
mydecode = base64.b64decode(secret)
print mydecode
eval(compile(mydecode,'<string>','exec'))
print set_env_variables("dsdsd")
1
Author: Eugene Dennis, 2018-08-10 13:28:53