{"id":664,"date":"2007-07-23T17:00:26","date_gmt":"2007-07-23T15:00:26","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/2007\/07\/23\/sql-server\/decrypt-sql-server-objects"},"modified":"2007-07-23T17:00:48","modified_gmt":"2007-07-23T15:00:48","slug":"decrypt-sql-server-objects","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2007\/07\/23\/sql-talk\/sql-server\/decrypt-sql-server-objects","title":{"rendered":"Decrypt SQL Server Objects"},"content":{"rendered":"<p>Omri Bahat beschreibt im Artikel &quot;<a href=\"http:\/\/www.sqlmag.com\/Articles\/ArticleID\/95728\/pg\/1\/1.html\">Decrypt SQL Server Objects<\/a>&quot; (im &quot;SQL Server Magazine&quot;, Ausgabe August 2007) wie man mit vergleichsweise wenig Aufwand den Quellcode den ENCRYPT angelegten Quellcode von Prozeduren\/Funktionen\/Views sichtbar machen kann. Er verwendet dazu zwei Tricks: erstens eine &quot;<a href=\"http:\/\/msdn2.microsoft.com\/en-us\/library\/ms191220.aspx\">Dedicated Admin Connection<\/a>&quot; (DAC, einfach beim Connect vor den Servernamen &quot;ADMIN:&quot; schreiben) und zweitens benutzt er ALTER, um das Objekt zu ver&#228;ndern, um den XOR-Schl&#252;ssel herauszubekommen (nat&#252;rlich in einer Transaktion, um das Original nicht zu zerst&#246;ren.<\/p>\n<p>Den <a href=\"http:\/\/www.sqlmag.com\/Articles\/ArticleID\/95728\/pg\/1\/1.html\">Artikel<\/a> kann man nur als angemeldeter Leser des Magazins sehen, aber die Quelltexte der Beispiele sind freundlicherweise frei zug&#228;nglich.<\/p>\n<p>Damit kann man den verschl&#252;sselten Quelltext aus der Spalte &quot;imageval&quot; der Tabelle &quot;sys.sysobjvalues&quot; (am 2005er, siehe Datei WebListing_01.txt) lesen und dann mittels ALTER-Statement den Hex-Wert (f&#252;r das XOR) ermitteln (siehe Datei Listing_03.txt). Mit den ermittelten Infos kann man den Quellcode dann entschl&#252;sseln (siehe Listing_04.txt). Das geht auch am SQL-Server-2000, nur stehen die Infos da woanders, aber das steht auch alles in seinen Beispieldateien.<\/p>\n<p>Insgesamt ist der Artikel mal erfrischend anders als die sonst eher belehrenden Artikel des Magazins. Ich wei&#223; noch nicht, ob ich das mal ben&#246;tigen werde, aber immer hin ist es gut zu wissen, dass man die Encryption des Quelltextes so leicht &quot;knacken&quot; kann. Langfristig wollen wir den Quelltext unserer Objekte n&#228;mlich encrypted anlegen&#8230; <\/p>\n<p>Disclaimer: Hier ging es jetzt um die Datenverschl&#252;sselung. Die ist nach wie vor richtig sch&#246;n sicher&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Omri Bahat beschreibt im Artikel &quot;Decrypt SQL Server Objects&quot; (im &quot;SQL Server Magazine&quot;, Ausgabe August 2007) wie man mit vergleichsweise wenig Aufwand den Quellcode den ENCRYPT angelegten Quellcode von Prozeduren\/Funktionen\/Views sichtbar machen kann. Er verwendet dazu zwei Tricks: erstens eine &quot;Dedicated Admin Connection&quot; (DAC, einfach beim Connect vor den Servernamen &quot;ADMIN:&quot; schreiben) und zweitens benutzt [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16],"tags":[],"_links":{"self":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/664"}],"collection":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/comments?post=664"}],"version-history":[{"count":0,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/664\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=664"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}