Age: 46 Joined: 05 Nov 2007 Posts: 725 Location: КраснАдар
Posted: Thu Sep 10, 2009 5:26 pm Post subject:
Валерий, привет. Я так понял, что в ECC 6.0 этих табличек уже нет. У меня код валится...
В SE14 поиск по D010* принес другие таблички.
На SDN советуют использовать SCWB_GET_ABAP_CODE_OF_OBJECT для чтения кода. Там внутри дергают TMS_CI_DECODE_TABLE с параметром REPS_ABAPTEXT и табличкой с данными. Наверное это не то, что нужно - но все таки.
Добавил: не поможет, сейчас проследил до конца, через read report считывают.
Age: 165 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Thu Sep 10, 2009 7:47 pm Post subject:
Андрей, привет!
Меня больше интересовало посмотреть прекомпиленный код, а исходный код приведен для примера. Если удастся правильно конвертировать из этой абрыкадабры в читаемый абап текст, то можно предположить, что и кодирование перкомпиленного кода идет по тому же алгоритму.
Задача не прикладная, а так, для саморазвития.
Age: 48 Joined: 15 Apr 2008 Posts: 10 Location: москва
Posted: Fri Sep 11, 2009 11:50 am Post subject:
vga wrote:
Если удастся правильно конвертировать из этой абрыкадабры в читаемый абап текст, то можно предположить, что и кодирование перкомпиленного кода идет по тому же алгоритму
Мне это предположение кажется сомнительным, т.к. байткод не равен исходному коду. Я когда-то разбирался в байткодом Бaaна, это тоже большая ERP ровесник сапа.
Внутри байткода там оказалась стековая машина (см обратная польская запись), выражение 2*3+8 компилируется в push 2; push 3; mul; push 8; add;
И кое-где между последовательностями этих команд стоят инструкции line 12, без дебагера они ничего не делают, а под дебагером, говорят дебагеру показать 12ю строку исходника как текущую выполняемую. Таким образом, исходник хранится вне байткода, зато в чистом виде.
Возвращаясь к сапу, думаю где-то исходный код хранится, скорее всего тем же способом что и обычный, возможно под немного другим ключом, но не в байткоде.
А может и внутри байткода. Скомпилированная программа это вещь со сложной структурой, она содержит множество секций – список констант, список внешних функций, про диалоги наверняка что-нибудь, секцию собственно исполняемого байткода, и тут же может быть и секция исходного кода. И все это в одном бинарнике в D010L.
Age: 165 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Fri Sep 11, 2009 12:06 pm Post subject:
mrand wrote:
т.к. байткод не равен исходному коду
Ну я это и не говорил, предположил, что алгоритм кодировки одинаковый. Вообще понятно, почему sap таким образом защитил исходники. Это закрывает от прямого апдейта через Native SQL системные программы.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.