Kürzel um ABAP-Coding zu verstecken

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
14 Beiträge • Seite 1 von 1
14 Beiträge Seite 1 von 1

Kürzel um ABAP-Coding zu verstecken

Beitrag von Marcel (ForumUser / 8 / 0 / 0 ) »
Hi,
ich möchte ein ABAP-Coding verstecken, also die Variante mit dem bestimmten Kürzel in die erste Codezeile, irgendwas mit % und & und $...

kennt jemand das Kürzel ?
Ich hatte es mal, ist mir aber leider verloren gegangen !!!

Vielen Dank im voraus,
8) Marcel

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von Azreal (Specialist / 182 / 1 / 0 ) »
Hi Marcel,

einfach mal *@#@@[SAP] in die erste zeile deines programms angeben.

Gruß Azreal

Beitrag von Marcel (ForumUser / 8 / 0 / 0 ) »
Hi Jan (oder ?),

DANKSCHEE, genau des hab ich gesucht... habs bestimmt schon tausendmal gehabt, und wieder verlore... aber jetzt wirds notiert, des is ab und zu echt hilfreich...

Wünsch noch an scheener Tag !!!
8) Marcel

Beitrag von DaMannemer ( / / 0 / 3 ) »
offtopic-on
Ach wie schön sich die alten Kollegen weiterhelfen können :wink:
CU
DeZone
offtopic-off

Beitrag von dexter (ForumUser / 91 / 0 / 0 ) »
was bewirkt das ?? (nur mal so aus neugier) =)

Beitrag von Marcel (ForumUser / 8 / 0 / 0 ) »
Du mußt das Kürzel in die erste Zeile des Programmes einfügen. Das kannst Du nicht mit dem Editor, sondern musst eben ein kleines Programm schreiben, das Dir in ein Programm das Kürzel einfügt.

Danach kannst Du Dir das Coding nicht mehr anschauen, kannst es nicht mehr ändern, kannst es auch nicht mehr debuggen, und diese Funktion lässt sich nicht mehr widerrufen !!!

Beitrag von Hermann ( / / 0 / 3 ) »
Das glaubst aber auch nur DU, das sich das nicht mehr widerrufen läßt :lol:

Hermann

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Hermann hat geschrieben:Das glaubst aber auch nur DU, das sich das nicht mehr widerrufen läßt
Eben. Als "Schutz" taugt es wenig.
(Erst recht nicht, wenn man den so "geschützten" Quelltext an Kunden ausliefert, die nicht wissen sollen, wie der Quelltext aussieht - abgesehen davon, dass ich mich frage, welcher Kunde so etwas akzeptiert.
Und da zu 6.10 z.B. SAPMSYST keinen solchen Kommentar mehr enthält, sondern der "Schutz" hart im SAP-Kernel kodiert ist, würde ich mich auch nicht darauf verlassen, dass dieser Schutzmechanismus noch ewig funktioniert.)

Und wenn Du das "Schützen" des Quelltextes mit niemandem abgestimmt hast, bereite Dich schon mal auf Ärger vor.
Als Sysadmin würde ich das nicht hinnehmen.
(Ein Programm zum Auffinden von "geschützten" Quelltexten benötigt nur 2 Zeilen Source.)

Frank

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Da ich per Mail eine Nachfrage zu meiner Aussage
Frank Dittrich hat geschrieben:Ein Programm zum Auffinden von "geschützten" Quelltexten benötigt nur 2 Zeilen Source.
bekommen habe, hier die auf das absolute Mimimun gekürzte Fassung eines Programms, das alle "geschützten" Quelltexte findet und in einer Liste ausgibt:

Code: Alles auswählen.

REPORT.DATA:s(255) OCCURS 0,p(40).SELECT name FROM trdir INTO p.READ
REPORT p INTO s.CHECK sy-subrc NE 0.WRITE:/ sy-subrc,p.ENDSELECT.
Ab Release 6.10 passt das sogar bequem in eine Quelltextzeile.
Da der Quelltext wegen dieser Reduzierung auf's Wesentliche alles andere als schön ist, noch ein paar Kommentare:
-der Programmname in der REPORT-Anweisung ist optional, kann also weggelassen werden
Leerzeichen zwichen Anweisungen müssen auch nicht sein.
-itabs sollte man besser nicht mit DATA itab(len) occurs n definieren, ist aber die kürzest mögliche Form.

-Länge 255 ist hier für Releases ab 6.10 nötig, da Quelltexte bis zu 255 Zeichen Zeilenlänge haben können. Ich weiss, dass ich zu 6.10 auch eine itab mit Zeilentyp STRING nehmen kann, es gibt da auch einen Zusatz MAXIMUM WIDTH INTO w zu READ REPORT, nur sollte das Beispiel auch abwärtskompatibel zu älteren Releases sein. Und den Zusatz STATE habe ich auch weggelassen, da ich nur an der aktiven Version interessiert bin (Inaktive Quelltexte finde ich nicht in TRDIR, sondern nur in PROGDIR mit STATE = 'I')
-ebenso würde man normalerweise das Feld für den Programmnamen mit Typ-Bezug definieren, aber Länge 40 passt bisher für alle Releases.
-ohne ORDER BY ist nicht garantiert, dass die EInträge sortiert geliefert werden, aber für eine eigentlich sehr kurze Liste sollte das zu verschmerzen sein.
-es gibt keine SELECT-OPTION für den Programmnamen, aber das würde ich nicht mal als Mangel bezeichnen - man sollte nicht gutgläubig davon ausgehen, dass Entwickler nur im Kundennamensraum herumpfuschen
-das Programm gibt (zumindest zu 6.10) auch eine Zeile mit SY-SUBRC 4 und Programmnamen space aus - dieses "Programm" keinesfalls löschen!

Alle anderen Einträge geben Quelltexte aus, die laut TRDIR-Eintrag vorhanden sein sollten, aber nicht mit READ REPORT gelesen werden können.

Dabei bedeuten

SY-SUBRC = 8:
Das Programm wurde mit der SAP-Standard-Methode (spezieller Kommentar in Quelltext-Zeile 1oder seit 6.10 hart kodierter "Schutz" direkt im SAP-Kernel) "geschützt".
Dieser Fall kann in allen Releases seit 4.0 auftreten.

SY-SUBRC = 4:
Bis auf die eine Zeile ohne Programmame sind die (Rahmen-)Programme durch Manipulation der Tabelle D010S per EXEC SQL ... ENDEXEC "geschützt" worden.
Diese Methode taugt überhaupt nichts und verursacht weit mehr Probleme als die SAP-Standard-Methode. Die Programme - besser gesagt, Kopien ein und desselben Originals, die dazu im Internet und diversen Foren kursieren, enthalten etliche Bugs.
Ausserdem hat diese Methode schon vom Konzept her etliche Mängel, so dass ich mich nicht weiter darüber auslassen will - umgehbar ist dieser "Schutz" allerdings mindestens ebenso leicht wie der Schutz nach der SAP-Standard-Methode.
Und seit 6.10 funktioniert diese Methode gar nicht mehr, weil die Quelltexte nicht mehr in D010S, sondern in Tabelle REPOSRC liegen, und TRDIR ist als View auf REPOSRC definiert.

Normalerweise sollte das Programm folgende Liste ausgeben
  • 4
    8 RSDECBAC
    8 RSDECBAS
    8 SAPMSYST
Alle anderen Einträge sind verdächtig.
Allerdings gibt es manche AddOn-Anbieter, die einige ihrer Programme "schützen", weil darin z.B. eine Lizenzschlüsselprüfung kodiert ist, die nicht so leicht umgangen werden soll.
Und dass die Programme RSDECBAC, RSDECBAS und SAPMSYST in der Liste auftauchen dürfen, heisst noch nicht, dass sie nicht kompromittiert sind.
SAPMSYST ist manipulierbar, um z.B. Klartext-Passworte der Benutzer abzufangen.
(Entsprechende Versuche gibt es immer wieder, dummerweise fallen stümperhafte Versuche, das Programm zu manipulieren, recht schnell auf, wenn dann plötzlich keine Dialog-Anmeldung mehr möglich ist.)

RSDECBAS hingegen wird eigentlich nie gebraucht, Manipulationen können also lange unentdeckt bleiben, dagegen hilft nur, dem Programm eine Berechtigungsgruppe (TRDIR-SECU) zu verpassen, für die niemand die Berechttigung hat.

Ansonsten muss man halt jemanden zu Rate ziehen, der in der Lage ist, die o.g. Programme auf Manipulationen zu untersuchen.
Oder man liest den komprimierten Quelltext in eine itab, bildet eine Prüfsumme und vergleicht diese mit der Prüfsumme des gleichen Programms für ein anderes, garantiert noch nicht kompromittiertes System.

Frank

Danke

Beitrag von Oliver_S ( / / 0 / 3 ) »
Vielen Dank für die Info.


Gruss
Oliver

Re: Danke

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Oliver_S hat geschrieben:Vielen Dank für die Info.
Krieg ich jetzt einen Preis für das kürzeste sinnvolle ABAP-Programm?

Re: Danke

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Frank Dittrich hat geschrieben:Krieg ich jetzt einen Preis für das kürzeste sinnvolle ABAP-Programm?

Code: Alles auswählen.

REPORT. WRITE 42.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von CaptainTom (ForumUser / 3 / 0 / 0 ) »
Die Diskussion hat mich jetzt neugierig gemacht und ich habe quick and dirty ein kleines Programm geschrieben, das die REPOSRC ausliest.

Jetzt ist da aber ein Feld vom Typ XSTRING. :shock:
Damit kann ich leider jetzt gar nichts anfangen.
Wie können die Daten des Feldes DATA (was XSTRING ist) auslesen und in "sichtbare" Form bringen?
Enthält das Feld DATA überhaupt das Coding des jeweiligen Reports?
Und, ist das Feld evtl. verschlüsselt? :o :(

Währe schön, mir könnte jemand helfen bevor mich die Neugierde umbringt..... :?: :?:

Grüße,
CaptainTom

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
CaptainTom hat geschrieben:Die Diskussion hat mich jetzt neugierig gemacht und ich habe quick and dirty ein kleines Programm geschrieben, das die REPOSRC ausliest.
Du hast also ein Release 6.x.
Jetzt ist da aber ein Feld vom Typ XSTRING. :shock:
Damit kann ich leider jetzt gar nichts anfangen.
Wie können die Daten des Feldes DATA (was XSTRING ist) auslesen und in "sichtbare" Form bringen?
Enthält das Feld DATA überhaupt das Coding des jeweiligen Reports?
Und, ist das Feld evtl. verschlüsselt? :o :(
DATA enthält den Quelltext. Nicht verschlüsselt, sondern komprimiert (wie auch in der Kurzbeschreibung zum Feld in der SE11 zusehen ist).

Tipps zum Lesen des Quelltextes "geschützter" Programme sind IMO keine so gute Idee, da solche Kenntnisse sich auch leicht zu illegalen Manipulationen an SAPMSYST ... missbrauchen lassen.

Frank

Seite 1 von 1

Vergleichbare Themen

12
Antw.
7588
Views
Coding verstecken
von migrationshansel » 11.03.2007 14:34 • Verfasst in ABAP® Core
3
Antw.
2516
Views
ABAP-Coding CO-Report
von sap-junior » 24.09.2015 10:01 • Verfasst in ABAP® Core
4
Antw.
3091
Views
SE71 (SAPScript) und ABAP Coding
von astera » 05.12.2006 13:54 • Verfasst in ABAP® Core
2
Antw.
1931
Views
Umwandeln von einer Formel in ABAP Coding
von naphro » 06.06.2007 10:37 • Verfasst in ABAP® Core
11
Antw.
12053
Views
ABAP-Coding in HTML umwandeln mit Syntaxhighlighting
von zzcpak » 27.03.2006 10:19 • Verfasst in Tips + Tricks & FAQs

Aktuelle Forenbeiträge

User Exit EXIT_RQCPRM10_001
vor 55 Minuten von Manfred K. 1 / 24
Trennen Strasse und Hausnummer
vor 2 Stunden von payten 13 / 10306
Dialog-Container mit Toolbar/Status
vor 16 Stunden von DeathAndPain gelöst 22 / 3235
Daten an Tabelle binden
vor 21 Stunden von Lukas Sanders 2 / 1094

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

User Exit EXIT_RQCPRM10_001
vor 55 Minuten von Manfred K. 1 / 24
Trennen Strasse und Hausnummer
vor 2 Stunden von payten 13 / 10306
Dialog-Container mit Toolbar/Status
vor 16 Stunden von DeathAndPain gelöst 22 / 3235
Daten an Tabelle binden
vor 21 Stunden von Lukas Sanders 2 / 1094

Unbeantwortete Forenbeiträge

User Exit EXIT_RQCPRM10_001
vor 55 Minuten von Manfred K. 1 / 24
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2654
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9242