Tam Sürümünü Görmek İçin : Perl'de enkript edilmiş kaynak kod dosyaları, netcrypt
Skeleton
19/06/2006, 14:20
Üzerinde çalıştığım bir projede bazı perl scriptleri bulunmakta. Bunların çoğunun uzantısı .pm ve içlerindeki kod şifrelenmiş. Hepsinin ilk 2 satırında aşağıdaki kodlar var ve gerisi şifrelenmiş bir metin olarak devam ediyor.
use Filter::netcrypt;
CM 1/4/96
M"XG' P #% 1@"L9C%(A0: 0<M*W " >H?A$$!Q9AY !8&P(( @ H&!$4"4
M(544 -^@9D: %_R%L&A<8:P%%>A: 601L67# :@$TQ6#H"1 (61 (5$?D.A
M18Q1 \!'%X'7&<"@ H6 )8)0!4QA!DGF%8=01H11 U3P)E/T%00F? 7P%<;1
M&LKW987 ) !P<D;@+=?"!8AA&%.01E%7$ =@ <=1(,(7/9?0!$1E$L6@? QP
M+ %0+P+7" ( %,;R/D:1#86S 8" )$;Q%4=Q MSG6P+6 %U%!M.C:9?0"X1
M!9!@%((A,<<0%</@!D"F+PM3"T!#1$13&4IA94[7/\ 5$:!&85@%<&Q-]DG
...
...
Sanırım netcrypt diye bir kütüphane ile bu yapılıyor. Ve beklenen soruyu soruyorum: Bu şifrelenmiş kodu normal haline döndürebilmek mümkün müdür? :D Biraz araştırdım ancak bırakın kodu dönüştürmeyi, netcrypt ile ilgili hiç ele avuca gelir bir şey bulamadım.
Filter modülü var bununla decrypt yapılabiliyor anacak netcrypt normal cpan arşivinde yok. Özel bir modül. Ama bu modül sizin kullandığınız kodlarda vardır. istersen dosyalari ziple koy bir bakalım.
cappytoi
19/06/2006, 16:17
Filter modülü var bununla decrypt yapılabiliyor anacak netcrypt normal cpan arşivinde yok. Özel bir modül. Ama bu modül sizin kullandığınız kodlarda vardır. istersen dosyalari ziple koy bir bakalım.
başka şifreleme yolları (modüller) ve çözümleri neler olabilir perlci?
Skeleton
19/06/2006, 16:50
Filter modülü var bununla decrypt yapılabiliyor anacak netcrypt normal cpan arşivinde yok. Özel bir modül. Ama bu modül sizin kullandığınız kodlarda vardır. istersen dosyalari ziple koy bir bakalım.
Uygulamanın klasöründe (C:\epages5) netcrypt diye arattım ve şöyle bir sonuç çıktı:
3369
Aynı yapıda dosyaları şöyle sıkıştırdım:
3370
Teşekkürler şimdiden.
evet inceledim,tabi kullanımı yani POD dökümanı yok. Ama encryp kodları (senin sitede gösterdiğin) UUdecode, yada decryp ile geri alınabilir ama elimde encryp edilmiş kod yok. Ben normalde bir perl kodunu encryp edip tekrar decryp edebiliorum ama o bana göre olanı.
istersen örnek bir encryp edilmiş dosyada ekle ancak ondan sonra bu konuda birşey diyebilirim.
başka şifreleme yolları (modüller) ve çözümleri neler olabilir perlci?
Aslında çok var mesala aşağıdaki adreslere bakabilirsin.
http://search.cpan.org/~aar/Module-Crypt-0.04/Crypt.pm
http://search.cpan.org/~shay/Filter-Crypto-1.17/CryptFile/lib/Filter/Crypto/CryptFile.pm
http://search.cpan.org/~autrijus/Module-CryptSource-0.02/CryptSource.pm
http://search.cpan.org dan encryp yada crypt yazdığında birçok modül farklı amaçlar için var.
cappytoi
19/06/2006, 19:52
saolasın perlci inceleyeceğim
Skeleton
19/06/2006, 23:03
evet inceledim,tabi kullanımı yani POD dökümanı yok. Ama encryp kodları (senin sitede gösterdiğin) UUdecode, yada decryp ile geri alınabilir ama elimde encryp edilmiş kod yok. Ben normalde bir perl kodunu encryp edip tekrar decryp edebiliorum ama o bana göre olanı.
istersen örnek bir encryp edilmiş dosyada ekle ancak ondan sonra bu konuda birşey diyebilirim.
Öncelikle ilginden dolayı teşekkürler. Ekte bir tane şifrelenmiş .pm dosyası koydum (lazım olursa başka da atabilirim) bir de bu firmanın kendi yaptığı şifeleme programını (encrypt.exe) da koyuyorum, belki kendi yazdığın daha basit perl kodlarını şifreleyerek bir şeyler çıkartabilirsin. Bir de benim düşünceme göre bu yaptıkları şifreleme (ve senin bahsettiğin benzerleri) geri dönüşü olmayan bir şifreleme değil heralde? Mesela MD5 ile şifreleriz bunun geri dönüşü olmaz ama bazı şifrelemeler vardır deşifre algoritması ile tekrar geri dönülebilir. Bu hangi sınıfa giriyor sence?
3371
Skeleton, asıl şifrelemyi yapan program C ile yazılmış. Çözmek içinde yine C ile yazılan netcrypt.c kodu aşağıda. Gördüğün gibi çözmek için key gerekiyor. encrypt(key, buf, 8); burda anahtar istendiği ortada. netcrypt.c perl modülü olarak derlenebiliyor DLL burda önemli olan DLL onuda sen bir önceki dosyalarla birlikte göndermiştin. Yaklaşık 8 KB büyüklüğünde. DLL dosyası referans alınarak modüle dahil edildiği için şifreleme öyle çözülüyor. Tabi key kısmı sanırım DLL de.
netcrypt.c
#include <u.h>
#include <libc.h>
#include <auth.h>
int
netcrypt(void *key, void *chal)
{
uchar buf[8], *p;
strncpy((char*)buf, chal, 7);
buf[7] = '\0';
for(p = buf; *p && *p != '\n'; p++)
;
*p = '\0';
encrypt(key, buf, 8);
sprint(chal, "%.2ux%.2ux%.2ux%.2ux", buf[0], buf[1], buf[2], buf[3]);
return 1;
}
Yani bu durumda DLL deki referansları bilmeden kodu çözmek zor.
Skeleton
20/06/2006, 01:57
Hmm ok, sağol. Verdikleri döküman ile yetineceğiz o zaman :)
Forum Yazılımı : vBulletin v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.