\n>>> import dis\n>>> dis.dis(test.func_code)\n 2 0 LOAD_CONST 1 (5)\n 3 STORE_FAST 0 (a)\n\n 3 6 LOAD_CONST 2 (6)\n 9 STORE_FAST 1 (b)\n\n 4 12 LOAD_FAST 0 (a)\n 15 LOAD_CONST 1 (5)\n 18 COMPARE_OP 2 (==)\n 21 JUMP_IF_FALSE 10 (to 34)\n 24 POP_TOP\n\n 5 25 LOAD_CONST 3 (7)\n 28 STORE_FAST 1 (b)\n 31 JUMP_FORWARD 1 (to 35)\n >> 34 POP_TOP\n\n 6 >> 35 LOAD_FAST 1 (b)\n 38 RETURN_VALUE\n<\/pre>\n\u05d6\u05d4 \u05de\u05d3\u05d4\u05d9\u05dd \u05e2\u05d3 \u05db\u05de\u05d4 \u05d6\u05d4 \u05de\u05d3\u05d5\u05d9\u05d9\u05e7, \u05db\u05d5\u05dc\u05dc \u05e9\u05de\u05d5\u05ea \u05de\u05e9\u05ea\u05e0\u05d9\u05dd \u05d5\u05d4\u05db\u05dc.
\n\u05d4\u05de\u05e1\u05e4\u05e8 \u05d4\u05e8\u05d0\u05e9\u05d5\u05df \u05d6\u05d4 \u05de\u05e1\u05e4\u05e8 \u05d4\u05e9\u05d5\u05e8\u05d4 \u05d1\u05e7\u05d5\u05d3 \u05de\u05e7\u05d5\u05e8…
\n\u05d4\u05de\u05e1\u05e4\u05e8 \u05e9\u05de\u05d5\u05e4\u05d9\u05e2 \u05dc\u05e4\u05e0\u05d9 \u05db\u05dc \u05de\u05d9\u05dc\u05d4 \u05d6\u05d4 \u05de\u05e1\u05e4\u05e8 \u05d4Byte
\n\u05d4\u05de\u05d9\u05dc\u05d4, \u05d6\u05d4 \u05d4\u05e4\u05e2\u05d5\u05dc\u05d4 (\u05dc\u05d3\u05d5\u05d2\u05de\u05d4 LOAD_CONST)
\n\u05d4\u05de\u05e1\u05e4\u05e8 \u05d0\u05d7\u05e8\u05d9\u05d4 \u05d6\u05d4 \u05e4\u05e8\u05de\u05d8\u05e8, \u05d5\u05d1\u05e1\u05d5\u05d2\u05e8\u05d9\u05d9\u05dd \u05d6\u05d4 \u05d4\u05e4\u05d9\u05db\u05ea \u05d4\u05e4\u05e8\u05de\u05d8\u05e8 \u05dc\u05de\u05e9\u05d4\u05d5 \u05de\u05e9\u05de\u05e2\u05d5\u05ea\u05d9 \u05d0\u05dd \u05d0\u05e4\u05e9\u05e8.<\/p>\n
\u05e0\u05e2\u05d1\u05d5\u05e8 \u05dc\u05e4\u05d9 \u05d4\u05e1\u05d3\u05e8, \u05d5\u05e0\u05e8\u05d0\u05d4 \u05db\u05de\u05d4 \u05e7\u05dc \u05d6\u05d4 \u05dc\u05d1\u05e0\u05d5\u05ea \u05d7\u05d6\u05e8\u05d4 \u05d0\u05ea \u05d4\u05e7\u05d5\u05d3:
\n\u05e9\u05d5\u05e8\u05d4 2, LOAD_CONST \u05d8\u05d5\u05e2\u05df \u05e7\u05d1\u05d5\u05e2 \u05dc\u05de\u05d7\u05e1\u05e0\u05d9\u05ea, \u05d4\u05e7\u05d1\u05d5\u05e2 \u05d4\u05d5\u05d0 \u05d1\u05d0\u05d9\u05e0\u05d3\u05e7\u05e1 1, \u05d0\u05d1\u05dc \u05d4\u05e2\u05e8\u05da \u05e9\u05dc\u05d5 \u05d4\u05d5\u05d0 5.
\n\u05d5\u05d0\u05d6 STORE_FAST \u05e9\u05d5\u05de\u05e8 \u05d0\u05ea \u05d4\u05e2\u05e8\u05da \u05de\u05d4\u05de\u05d7\u05e1\u05e0\u05d9\u05ea \u05dc\u05ea\u05d5\u05da \u05d4\u05de\u05e9\u05ea\u05e0\u05d4 \u05d1\u05d0\u05d9\u05e0\u05d3\u05e7\u05e1 0, \u05e9\u05e9\u05de\u05d5 a.
\n\u05de\u05d4 \u05db\u05dc \u05e4\u05e2\u05d5\u05dc\u05d4 \u05e2\u05d5\u05e9\u05d4 \u05de\u05ea\u05d5\u05e2\u05d3 \u05d4\u05d9\u05d8\u05d1 \u05d1\u05e7\u05d9\u05e9\u05d5\u05e8 \u05dc\u05de\u05d5\u05d3\u05d5\u05dc DIS, \u05d5\u05de\u05d4 \u05e9\u05e0\u05e9\u05d0\u05e8 \u05d6\u05d4 \u05dc\u05d4\u05d1\u05d9\u05df \u05e9\u05d4\u05e4\u05e7\u05d5\u05d3\u05d4 \u05d4\u05d9\u05d0:<\/p>\n
\na = 5\n<\/pre>\n\u05e9\u05d5\u05e8\u05d4 3, \u05d0\u05d5\u05ea\u05d5 \u05d3\u05d1\u05e8, \u05e0\u05e2\u05d1\u05d5\u05e8 \u05dc\u05e9\u05d5\u05e8\u05d4 4.
\n\u05d8\u05d5\u05e2\u05e0\u05d9\u05dd \u05d0\u05ea a \u05dc\u05de\u05d7\u05e1\u05e0\u05d9\u05ea, \u05d8\u05d5\u05e2\u05e0\u05d9\u05dd 5, \u05d5\u05e2\u05d5\u05e9\u05d9\u05dd COMPARE_OP \u05e2\u05dd ==.
\n\u05d4\u05e4\u05e2\u05d5\u05dc\u05d4 \u05de\u05e9\u05d5\u05d5\u05d4 \u05d1\u05d9\u05df \u05d4\u05e9\u05e0\u05d9\u05d9\u05dd \u05d4\u05d0\u05d7\u05e8\u05d5\u05e0\u05d9\u05dd \u05d1\u05de\u05d7\u05e1\u05e0\u05d9\u05ea \u05d1\u05de\u05d7\u05d6\u05d9\u05e8\u05d4 \u05d0\u05ea \u05d4\u05ea\u05e9\u05d5\u05d1\u05d4 \u05dc\u05de\u05d7\u05e1\u05e0\u05d9\u05ea.
\n\u05e2\u05d3 \u05db\u05d4 \u05d9\u05e9 \u05dc\u05e0\u05d5 a == 5.
\nJUMP_IF_FALSE \u05d1\u05d5\u05d3\u05e7 \u05d0\u05ea \u05d4\u05e2\u05e8\u05da \u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05de\u05d7\u05e1\u05e0\u05d9\u05ea, \u05d5\u05d0\u05dd \u05d4\u05d5\u05d0 FALSE \u05e7\u05d5\u05d1\u05e5 \u05dcByte 34.
\nPOP_TOP \u05e9\u05d5\u05dc\u05e3 \u05d0\u05ea \u05d4\u05e2\u05e8\u05da \u05d4\u05d0\u05d7\u05e8\u05d5\u05df \u05d1\u05de\u05d7\u05e1\u05e0\u05d9\u05ea.
\n\u05d0\u05d6 \u05d0\u05dd \u05e0\u05e8\u05e6\u05d4 \u05dc\u05e9\u05d7\u05d6\u05e8 \u05d0\u05ea \u05d6\u05d4, \u05e6\u05e8\u05d9\u05da \u05dc\u05d4\u05d1\u05d9\u05df \u05e9\u05d1\u05de\u05e7\u05e8\u05d4 \u05e9\u05d4\u05e2\u05e8\u05da \u05d4\u05d5\u05d0 \u05e9\u05e7\u05e8, \u05d4\u05d5\u05d0 \u05de\u05d3\u05dc\u05d2 _\u05de\u05e2\u05dc_ \u05e7\u05d8\u05e2 \u05d4\u05e7\u05d5\u05d3 \u05d4\u05d1\u05d0, \u05d6"\u05d0 \u05d0\u05dd \u05e0\u05e8\u05e6\u05d4 \u05dc\u05e8\u05e9\u05d5\u05dd \u05d0\u05ea \u05d6\u05d4 \u05e8\u05e6\u05d5\u05e3, \u05d0\u05d6 \u05d1\u05de\u05e7\u05e8\u05d4 \u05e9\u05dc \u05d0\u05de\u05ea, \u05d4\u05d5\u05d0 \u05e0\u05db\u05e0\u05e1 \u05dc\u05e7\u05d8\u05e2 \u05e7\u05d5\u05d3, \u05d0\u05d6 \u05d4\u05ea\u05e0\u05d0\u05d9 \u05e0\u05e8\u05d0\u05d4 \u05db\u05da:<\/p>\n
\n if a == 5:\n #... continue here ...\n #... if false jump to here ...\n<\/pre>\n\u05d5\u05d0\u05e4\u05e9\u05e8 \u05dc\u05d4\u05de\u05e9\u05d9\u05da \u05db\u05da \u05d4\u05dc\u05d0\u05d4 \u05e2\u05d3 \u05e9\u05d1\u05d5\u05e0\u05d9\u05dd \u05de\u05d7\u05d3\u05e9 \u05d0\u05ea \u05d4\u05e4\u05d5\u05e0\u05e7\u05e6\u05d9\u05d9\u05d4…<\/p>\n
py2exe<\/h2>\n
\u05d4\u05d9\u05d9\u05e6\u05d5\u05e8 \u05e9\u05e7\u05d5\u05e8\u05d0\u05d9\u05dd \u05dc\u05d5 py2exe \u05d0\u05d5\u05e8\u05d6 \u05d0\u05ea \u05e1\u05e7\u05e8\u05d9\u05e4\u05d8 \u05d4Python, \u05db\u05dc \u05e1\u05e4\u05e8\u05d9\u05d5\u05ea, \u05d5\u05db\u05dc \u05d3\u05d1\u05e8 \u05e9\u05e6\u05e8\u05d9\u05da \u05db\u05d3\u05d9 \u05dc\u05d4\u05e8\u05d9\u05e5 \u05d0\u05d5\u05ea\u05df, \u05dc\u05ea\u05d5\u05da EXE \u05d0\u05d7\u05d3.
\n\u05d5\u05d4\u05d5\u05d0 \u05e2\u05d5\u05d6\u05d4 \u05d0\u05ea \u05d6\u05d4 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05d4\u05d1\u05d0\u05d4:
\n\u05db\u05dc \u05d4DLL\u05d9\u05dd, \u05d5\u05db\u05dc \u05d4\u05e1\u05e4\u05e8\u05d9\u05d5\u05ea \u05e9\u05e2\u05d5\u05e9\u05d9\u05dd \u05dc\u05d4\u05df Import, \u05d4\u05d5\u05d0 \u05de\u05e7\u05de\u05e4\u05dc \u05dcBytecode, \u05d5\u05e9\u05dd \u05d1ZIP, \u05d1\u05ea\u05d5\u05da \u05d4EXE.
\n\u05e0\u05d9\u05ea\u05df \u05dc\u05d7\u05dc\u05e5 \u05d0\u05d5\u05ea\u05d5 \u05de\u05de\u05e9 \u05d1\u05e7\u05dc\u05d5\u05ea \u05e2"\u05d9 7Zip \u05e9\u05de\u05d0\u05ea\u05e8 \u05d0\u05d5\u05ea\u05d5, \u05d5\u05e4\u05e9\u05d5\u05d8 \u05e0\u05d5\u05ea\u05df \u05dc\u05d4\u05d5\u05e6\u05d9\u05d0 \u05de\u05ea\u05d5\u05db\u05d5 \u05e7\u05d1\u05e6\u05d9\u05dd.
\n\u05e2\u05db\u05e9\u05d9\u05d5 \u05e6\u05e8\u05d9\u05da, \u05e8\u05e7 \u05dc\u05de\u05e6\u05d5\u05d0 \u05d0\u05ea \u05d4\u05e1\u05e7\u05e8\u05d9\u05e4\u05d8 \u05d4\u05e8\u05d0\u05e9\u05d9.
\n\u05d4\u05d5\u05d0 \u05e0\u05e9\u05de\u05e8 \u05dbResource \u05d1EXE, \u05d0\u05e4\u05e9\u05e8 \u05d1\u05e7\u05dc\u05d5\u05ea \u05dc\u05e9\u05dc\u05d5\u05e3 \u05d0\u05d5\u05ea\u05d5 \u05e2\u05dd Visual Studio.
\n\u05e4\u05d5\u05ea\u05d7\u05d9\u05dd EXE \u05e2\u05dd \u05d4\u05ea\u05d5\u05db\u05e0\u05d4, \u05d5\u05d4\u05d5\u05d0 \u05de\u05e6\u05d9\u05d2 \u05d0\u05ea \u05db\u05dc \u05d4Resources, \u05d0\u05d7\u05d3 \u05de\u05d4\u05dd \u05d6\u05d4 \u05d4\u05e7\u05d5\u05d3 \u05d4\u05de\u05e7\u05d5\u05de\u05e4\u05dc.<\/p>\n
\u05e8\u05e7 \u05de\u05e9\u05d4\u05d5 \u05e7\u05d8\u05df<\/h2>\n
\u05e7\u05d5\u05d1\u05e5 .pyc \u05de\u05e9\u05d5\u05d9\u05d9\u05da \u05dcPython \u05e9\u05d0\u05d9\u05ea\u05d5 \u05d1\u05e0\u05d5 \u05d0\u05d5\u05ea\u05d5, \u05d5\u05d6\u05d4 \u05dc\u05d0 \u05e1\u05ea\u05dd, \u05db\u05d9 \u05d4Bytecode \u05de\u05e9\u05ea\u05e0\u05d4.
\n\u05db\u05dc \u05d4\u05e7\u05d1\u05e6\u05d9\u05dd \u05e9\u05e0\u05de\u05e6\u05d0\u05d9\u05dd \u05d1ZIP \u05e0\u05d9\u05ea\u05df \u05dc\u05e2\u05e9\u05d5\u05ea \u05dc\u05d4\u05df import \u05db\u05dc \u05e2\u05d5\u05d3 \u05d4\u05d2\u05e8\u05e1\u05d4 \u05e9\u05dc \u05d4\u05e4\u05d9\u05d9\u05d8\u05d5\u05df \u05ea\u05d5\u05d0\u05de\u05ea,
\n\u05d5\u05d0\u05d7\u05e8\u05d9 \u05d6\u05d4 \u05d0\u05e4\u05e9\u05e8 \u05dc\u05d4\u05e8\u05d9\u05e5 dis.dis \u05e2\u05dc \u05d4\u05de\u05d5\u05d3\u05d5\u05dc \u05db\u05d5\u05dc\u05d5. (\u05d0\u05e4\u05e9\u05e8 \u05d2\u05dd \u05e2\u05dc \u05e4\u05d5\u05e0\u05e7\u05e6\u05d9\u05d5\u05ea \u05d1\u05e0\u05e4\u05e8\u05d3).
\n\u05e2\u05dd \u05d4Resource \u05d4\u05e2\u05e0\u05d9\u05d9\u05df \u05e7\u05e6\u05ea \u05d9\u05d5\u05ea\u05e8 \u05d1\u05e2\u05d9\u05d9\u05ea\u05d9, \u05db\u05d9 \u05d4\u05d5\u05d0 \u05dc\u05d0 \u05d1\u05d3\u05d9\u05d5\u05e7 Library, \u05d0\u05dc\u05d0 Marshalled, \u05d1\u05e2\u05d6\u05e8\u05ea \u05de\u05d5\u05d3\u05d5\u05dc marshal.
\n\u05d1\u05e9\u05d9\u05de\u05d5\u05e9 \u05d1\u05de\u05d5\u05d3\u05d5\u05dc \u05d0\u05e4\u05e9\u05e8 \u05dc\u05e9\u05dc\u05d5\u05e3 \u05d0\u05ea \u05d4Code Object \u05d4\u05e8\u05d0\u05e9\u05d9, \u05d5\u05de\u05de\u05e0\u05d5 \u05dc\u05de\u05e6\u05d5\u05d0 \u05db\u05dc Code Object \u05d0\u05d7\u05e8, \u05d5\u05dc\u05d4\u05e2\u05d1\u05d9\u05e8 \u05d0\u05d5\u05ea\u05d5 \u05dcDIS \u05d2\u05dd \u05db\u05df.<\/p>\n
\u05e4\u05e8\u05d5\u05d9\u05e7\u05d8<\/h2>\n
\u05d7\u05e9\u05d1\u05ea\u05d9 \u05dc\u05e2\u05e9\u05d5\u05ea Python Decompiler,
\n\u05d6\u05d4 \u05de\u05ea\u05d7\u05d9\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05e7\u05e9\u05d4 \u05db\u05e9\u05de\u05d2\u05d9\u05e2\u05d9\u05dd \u05dc\u05ea\u05e0\u05d0\u05d9\u05dd \u05de\u05e1\u05d5\u05d1\u05db\u05d9\u05dd, \u05d5\u05dc\u05d5\u05dc\u05d0\u05d5\u05ea \u05e2\u05dd \u05ea\u05e0\u05d0\u05d9\u05dd \u05de\u05e1\u05d5\u05d1\u05db\u05d9\u05dd \u05d1\u05ea\u05d5\u05db\u05df.
\n\u05d0\u05e0\u05d9 \u05d7\u05d5\u05e9\u05d1 \u05e9\u05d6\u05d4 \u05d0\u05e4\u05e9\u05e8\u05d9 \u05dc\u05d7\u05d6\u05d5\u05e8 \u05dc\u05e7\u05d5\u05d3 \u05de\u05e7\u05d5\u05e8 \u05d1\u05e6\u05d5\u05e8\u05d4 \u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9\u05ea, \u05de\u05d4 \u05d3\u05e2\u05ea\u05db\u05dd?
\n(\u05d9\u05e9 \u05db\u05de\u05d4 \u05e0\u05e1\u05d9\u05d5\u05e0\u05d5\u05ea \u05dcDecompiler \u05d1\u05d0\u05d9\u05e0\u05d0\u05e8\u05e0\u05d8, \u05dc\u05d0 \u05e8\u05d0\u05d9\u05ea\u05d9 \u05d0\u05d7\u05d3 \u05e0\u05d5\u05e8\u05de\u05dc\u05d9…)<\/p>\n","protected":false},"excerpt":{"rendered":"
\u05de\u05d1\u05d5\u05d0 \u05de\u05ea\u05d7\u05d9\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05e0\u05e4\u05d5\u05e5 \u05e0\u05d5\u05e9\u05d0 \u05d4\u05e9\u05d9\u05de\u05d5\u05e9 \u05d1\u05e9\u05e4\u05d5\u05ea \u05e1\u05e7\u05e8\u05d9\u05e4\u05d8 \u05dc\u05db\u05ea\u05d9\u05d1\u05ea \u05e7\u05d1\u05e6\u05d9 EXE. \u05d1\u05de\u05d9\u05d5\u05d7\u05d3 \u05d1\u05d7\u05d1\u05e8\u05d5\u05ea Outsourcing \u05e9\u05db\u05dc \u05d4\u05de\u05d8\u05e8\u05d4 \u05e9\u05dc\u05d4\u05df \u05dc\u05db\u05ea\u05d5\u05d1 \u05de\u05d4\u05e8 \u05d5\u05e7\u05dc. \u05d0\u05d7\u05e8\u05d9 \u05e9\u05d4\u05d7\u05d1\u05e8\u05d4 \u05de\u05e1\u05d9\u05d9\u05de\u05ea \u05dc\u05db\u05ea\u05d5\u05d1, \u05de\u05d1\u05d9\u05d0\u05d4 \u05de\u05d5\u05e6\u05e8, \u05e6\u05e8\u05d9\u05da \u05dc\u05d4\u05d1\u05d9\u05df \u05de\u05d4 \u05dc\u05e2\u05d6\u05d0\u05d6\u05dc \u05d4\u05dd \u05e2\u05e9\u05d5 \u05e9\u05dd. Reversing \u05e7\u05dc\u05d0\u05e1\u05d9 \u05dc\u05e7\u05d5\u05d1\u05e5 EXE \u05e9\u05d4\u05d5\u05d0 \u05d1\u05e2\u05e6\u05dd Py2EXE, \u05dc\u05d0 \u05db\u05dc\u05db\u05da \u05e2\u05d5\u05d1\u05d3. \u05d0\u05d6 \u05de\u05d4 \u05e2\u05d5\u05e9\u05d9\u05dd? \u05de\u05d5\u05d3\u05d5\u05dc Dis \u05de\u05d7\u05d9\u05e4\u05d5\u05e9\u05d9\u05dd \u05d1\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8 \u05d3\u05d1\u05e8 \u05e8\u05d0\u05e9\u05d5\u05df \u05e9\u05e0\u05ea\u05e7\u05dc\u05ea\u05d9 \u05d1\u05d5, \u05d6\u05d4 […]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[61,42,7,26],"_links":{"self":[{"href":"https:\/\/www.binaryvision.co.il\/wp-json\/wp\/v2\/posts\/672"}],"collection":[{"href":"https:\/\/www.binaryvision.co.il\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.binaryvision.co.il\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.binaryvision.co.il\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.binaryvision.co.il\/wp-json\/wp\/v2\/comments?post=672"}],"version-history":[{"count":24,"href":"https:\/\/www.binaryvision.co.il\/wp-json\/wp\/v2\/posts\/672\/revisions"}],"predecessor-version":[{"id":718,"href":"https:\/\/www.binaryvision.co.il\/wp-json\/wp\/v2\/posts\/672\/revisions\/718"}],"wp:attachment":[{"href":"https:\/\/www.binaryvision.co.il\/wp-json\/wp\/v2\/media?parent=672"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.binaryvision.co.il\/wp-json\/wp\/v2\/categories?post=672"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.binaryvision.co.il\/wp-json\/wp\/v2\/tags?post=672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}