Last active
March 24, 2017 17:16
-
-
Save Elizaveta239/75614dabd39e1bbfb47298c0ed8d5541 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def bar(): | |
a = 1 | |
b1 = 1 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 | |
b2 = 1 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 if a > 1 else 2 if a > 0 else 3 if a > 4 else 23 | |
c = 3 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def _modify_new_lines(code_to_modify, all_inserted_code): | |
""" | |
Update new lines in order to hide inserted code inside the original code | |
:param code_to_modify: code to modify | |
:param all_inserted_code: list of tuples (offset, list of code instructions) with all inserted pieces of code | |
:return: bytes sequence of code with updated lines offsets | |
""" | |
new_list = list(code_to_modify.co_lnotab) | |
abs_offset = 0 | |
print("all inserted", all_inserted_code) | |
print(new_list) | |
i = 0 | |
while i < len(new_list): | |
prev_abs_offset = abs_offset | |
abs_offset += new_list[i] | |
for (inserted_offset, inserted_code) in all_inserted_code: | |
if prev_abs_offset <= inserted_offset < abs_offset: | |
size_of_inserted = len(inserted_code) | |
new_list[i] += size_of_inserted | |
abs_offset += size_of_inserted | |
if new_list[i] > MAX_BYTE: | |
new_list[i] = new_list[i] & MAX_BYTE | |
new_list = new_list[:i] + [MAX_BYTE, 0] + new_list[i:] | |
i += 2 | |
print("result list:") | |
print(new_list) | |
return bytes(new_list) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment