PDA

Tam Sürümünü Görmek İçin : Şifrelenmiş sayfa çözmek


Sahin
30/03/2003, 13:32
Bir Javascript ya da html sayfası şifrelenebiliyordu sanırım, peki bunu çözebilirmiyiz?


mustafa
30/03/2003, 17:49
nasıl şifrelendiğini bilmeden, nasıl çözüleceğini bilmem nasıl bileceğiz. html kod şifreli ise explorer nasıl görüntülüyor onu? şu işi biraz daha açsana, konuyla ilgili bir şey bilmiyorum ve merâk ettim şimdi.

Sahin
30/03/2003, 17:56
Html kodlarının şifrelendiğini duymuştum ama hiç ilgilenmemiştim bir ara sana dosyayı göndereyim görürsün.

Ansugo
30/03/2003, 23:59
Bu şifreleme HTML sayfasına bir JS içerletip yapılan şifrelemeye benzeyen şey mi?

Sahin
31/03/2003, 00:53
Valla daha önce bir iki sitede görmüştüm acaip bir şekilde karmakarışık hale getiriliyor kodlar. Bahsettiğim .js ise aşağıda ekte ve bu normal olarak çalışıyor sayfada.

mustafa
31/03/2003, 02:07
vayyy... herhalde kodu js ile açabilecekleri şekilde js içine gömüyorlar (bir değişken) sonra onu yine js ile oluşturdukları algoritma ile açıyorlar. iyi bir js'ci algoritmayı çözer. ama helâl valla, sırf html kodu gizlemek için yapılan şu işe bakın. js ile document.write yazarak filân yazdırıyor olmalılar bütün kodu. değer mi bilmem.

fixman
31/03/2003, 12:16
escape() metoduyla şifrelenmiş html kodlarını(ki bu aslında bir şifreleme sayılmaz) unescape() metoduyla eski haline getirebilirsiniz...

Ayrıca Şahin'in belirttiği js dosyasını daha yeni çektim; bu akşam biraz inceleyip yarın sabah tüm püf noktalarını buraya yazarım...

Kaynak kodları görünen algoritmalar kesinlikle çözülebilen algoritmalardır...

Sahin
31/03/2003, 12:27
Valla unescape yapabilirsen fixman bu jsyi büyük sevaba girersin :)

Sahin
31/03/2003, 20:42
Valla ben denedim ama bu çok farklı fixman. Çözemedim.

Sahin
31/03/2003, 22:59
Çözebildiğim kısmı bu oldu :)

eval(unescape('k=unescape("%0D%0A");k2= mrj(tm);document.write(k2);function mrj(s) {var un="";l=s.length;oh=Math.round(l/2);for(i=0;i<=oh;i++){a=s.charAt(i);b=s.charAt(i+oh);c=a+b;un=u n+c;};P=un.substr(0,l);P=P.replace(/`/g,"'");P=P.replace(/@@/g,"\\");f = /qg/g;P=P.replace(f,k);return P;};'));

Sahin
31/03/2003, 23:03
<form>
Type something:<input name="data" width="70" size="70">
<br>
<input type="button" onclick="data2.value=escape(data.value)" value="Escape">
<input type="button" onclick="data2.value=unescape(data.value)" value="unEscape">
<br>
Get your results:<input name="data2" width="70" size="70">
</form>


Belki lazım olur unescape için kullanılacak form.

con_simit
31/03/2003, 23:14
0. Selam

1. Aslında sorulan nedir anlayamadım.
1.1 Gördüğümü yazayım belki işe yarar. Şöyle bir script var:<script>
dl = document.layers;
da = document.all;
ge = document.getElementById;
ws = window.sidebar;
var msg='';function nem(){return true};
window.onerror = nem;var o42;
//---------------------------------------------------------------------------//
// //
// LITEFUNCTIONS.js //
// Version 1.2
// //
//---------------------------------------------------------------------------//
// //
// These are the functions which are necessary for TextArea Rich to operate //
// Each functions is shown below with a description of it's process. //
// //
// If you require any help installing TextArea Rich or have any questions, //
// please visit http://www.textarearich.com/forum/ and post us a question. //
// //
//---------------------------------------------------------------------------//
// //
// Many Thanks for purchasing TextArea Rich, //
// Kind Regards, //
// The TextArea Rich Team //
// //
//---------------------------------------------------------------------------//

<!--htmlgstart -->


//---------------------------------------------------------------------
//function name: doImage
//added: pre 27/11/02
//desc: open the image window
//---------------------------------------------------------------------

function doImage()
{
iView.focus();
imageWin = window.open('insert_image.htm','','width=500,heigh t=430,scrollbars=yes,resizable=yes,titlebar=1');
}


//---------------------------------------------------------------------
//function name: Init
//added: 19/10/02
//desc: init is called when the body is loaded. This will draw the editor
// buttons and set the table borders.
//---------------------------------------------------------------------

function Init()
{
iView.document.designMode = 'On';
viewMode = 1;

// Show all controls
controls_basic.style.display = 'inline';
controls_wysiwyg1.style.display = 'inline';
view_source.style.display = 'none';
view_source_mode.style.display = 'none';
view_wysiwyg.style.display = 'inline';
view_wysiwyg_mode.style.display = 'inline';

}



//---------------------------------------------------------------------
//function name: isSelected
//added: 19/10/02
//desc: check that there is a selection. this can be text or an image (control)
//---------------------------------------------------------------------

function isSelected() {
if ((iView.document.selection.type == "Text") || (iView.document.selection.type == "Control")) {
return true;
} else {
alert("Please highlight the text before pressing this button!");
return false;
}
}


//---------------------------------------------------------------------
//function name: cancel save
//added: 21/10/02
//desc: not used in the editor, but can be used.
// assign the function to a button, and when pressed it will open a dialoge box
// asking if the user is sure they want to exit without saving.
//---------------------------------------------------------------------


function cancelSave() {
var agree=confirm("Are you sure you want to cancel without saving changes?");
if (agree)
return true;
else
return true;
}

//---------------------------------------------------------------------
//function name: save
//added: 21/10/02
//desc: takes the contents of the Editor window and saves
// the data in a hidden field in the form called "content"
//---------------------------------------------------------------------

function savedocument()
{
document.saveform.content.value = iView.document.documentElement.outerHTML;
}

//---------------------------------------------------------------------
//function name: MOUSE OVER / MOUSE OUT class styles
//added: 15/10/02
//desc: init is called when the body is loaded. This will draw the editor
// buttons and set the table borders.
//---------------------------------------------------------------------

function selOn_dis(ctrl)
{
ctrl.style.borderBottom = "buttonshadow solid 1px";
ctrl.style.borderLeft = "buttonhighlight solid 1px";
ctrl.style.borderRight = "buttonshadow solid 1px";
ctrl.style.borderTop = "buttonhighlight solid 1px";

}

function selOn_tab(ctrl)
{
ctrl.style.cursor = 'hand';
}


function selOn(ctrl)
{
ctrl.style.borderColor = '#EE9332';
ctrl.style.cursor = 'hand';
ctrl.style.backgroundColor = '#E2C3A4';
}


function selOff(ctrl)
{
ctrl.style.backgroundColor = '#F0E1CA';
ctrl.style.borderColor = '#F0E1CA';
}


function selDown(ctrl)
{
ctrl.style.borderBottom = "buttonhighlight solid 1px";
ctrl.style.borderLeft = "buttonshadow solid 1px";
ctrl.style.borderRight = "buttonhighlight solid 1px";
ctrl.style.borderTop = "buttonshadow solid 1px";
}


function selUp(ctrl)
{
ctrl.style.backgroundColor = '#E2C3A4';
ctrl = null;
}

//---------------------------------------------------------------------
// BEGIN STANDARD MSHTML CONTROLS
//---------------------------------------------------------------------

// pass the code like:
// onClick="cmdExec('undo','null')"


function cmdExec(cmd,opt) {
iView.focus();
iView.document.execCommand(cmd,"",opt);
}


//---------------------------------------------------------------------
//function name: doForeCol
//added: 25/10/02
//desc: opens a popup window with selection of colours to choose from
// once choice is made, popup closes and forecolor is added
//---------------------------------------------------------------------

function doForeCol(val)
{

if (isSelected())
{

window.open('editor/files/pick_forecol.htm','popuppage','width=500,height=50 0,top=100,left=100');

if (val != null)
{
iView.document.execCommand('forecolor', false, val);
}

}

}

//---------------------------------------------------------------------
//function name: doBackCol
//added: 25/10/02
//desc: opens a popup window with selection of colours to choose from
// once choice is made, popup closes and forecolor is added
//---------------------------------------------------------------------


function doBackCol(val)
{

if (isSelected())
{

window.open('editor/files/pick_backcol.htm','popuppage','width=500,height=50 0,top=100,left=100');

if (val != null)
{
iView.document.execCommand('backcolor', false, val);
}

}

}


//------------------------------------- -------------------------------
//function name: doLink
//added: 15/11/02
//desc: opens a link pop up box. If selection is already a link, the
// default values are loaded. otherwise they are left blank.
//---------------------------------------------------------------------

function doLink()
{
if (isSelected()) {
window.open('editor/files/insert_link.htm','popuppage','width=420,height=350 ,top=100,left=100');
}
}


//---------------------------------------------------------------------
//function name: doFont
//added: 25/10/02
//desc: change the font from the drop down box
//---------------------------------------------------------------------


function doFont(fName)
{
if(fName != '')
iView.document.execCommand('fontname', false, fName);
}

//---------------------------------------------------------------------
//function name: doSize
//added: 25/10/02
//desc: change the size from the drop down box
//---------------------------------------------------------------------

function doSize(fSize)
{
if(fSize != '')
iView.document.execCommand('fontsize', false, fSize);
}

//---------------------------------------------------------------------
//function name: toggle
//added: 12/10/02
//desc: Toggle between SOURCE and WYSIWYG modes
//---------------------------------------------------------------------

function toggle()
{
if(viewMode == 1)
{

iHTML = iView.document.body.outerHTML;
iView.document.body.innerText = iHTML;

// Hide or show controls
controls_basic.style.display = 'inline';
controls_wysiwyg1.style.display = 'none';
view_source.style.display = 'inline';
view_source_mode.style.display = 'inline';
view_wysiwyg.style.display = 'none';
view_wysiwyg_mode.style.display = 'none';


//get the current font/face values
fontFamily = iView.document.body.style.fontFamily
fontSize = iView.document.body.style.fontSize
text = iView.document.body.text
bgColor = iView.document.body.bgColor
background = iView.document.body.background

//change the font to editor code
iView.document.body.style.fontFamily = "Courier"
iView.document.body.style.fontSize = "10pt"
iView.document.body.text = '#333366';
iView.document.body.bgColor = '#ffffff';
iView.document.body.background = '';
iView.focus();

viewMode = 2; // Code
}
else
{
iText = iView.document.body.innerText;
iView.document.body.innerHTML = iText;

// Show all controls
controls_basic.style.display = 'inline';
controls_wysiwyg1.style.display = 'inline';
view_source.style.display = 'none';
view_source_mode.style.display = 'none';
view_wysiwyg.style.display = 'inline';
view_wysiwyg_mode.style.display = 'inline';


iView.document.body.style.fontFamily = fontFamily;
iView.document.body.style.fontSize = fontSize;
iView.document.body.text = text;
iView.document.body.bgColor = bgColor;
iView.document.body.background = background;
iView.focus();

viewMode = 1; // WYSIWYG
}
}



//end litefunctions

<!--htmlgstop -->

2. Kolay gelsin.

Sahin
01/04/2003, 00:37
eline sağlık kardeş ;)

fixman
01/04/2003, 14:07
con_smit benden önce davranmış... Ama yine de dün akşam hazırladığım tutorial'ı yazayım :

JavaScript şifrelemek için gomik bir yöntem... Emin olun bunu ve buna benzer algoritmaları hepiniz çözebilirsiniz...

Başlıyoruz :

Şahin'in yayınladığı script dosyası burada :

http://www21.brinkster.com/kemalersin/fxscode/4ceviz/encode/encoding_script.txt

Şifrelenmiş metin ne kadar karmaşık ve uzun olsa da, şifreleme algoritması bir o kadar basit ve kısa!

Dosyadaki "tm" değişkenine aktarılan ve en alt satırdaki "eval(unescape())" işlemine kadar yayılmış olan metne şifre çözme işlemi uygulandığında bunun bir java script kodu olduğunu görüyoruz :

http://www21.brinkster.com/kemalersin/fxscode/4ceviz/encode/decoding_script.txt

Şifreyi çözen algoritmada yine Şahin'in script dosyasının en alt kısmına gizlenmiş :

eval(unescape('%6B%3D%75%6E%........'));

Burada ilk bakışta kafanızı karıştıran karakterler aslında escape() işleminden geçirilmiş bir fonksiyon. unescape() metoduyla fonksiyon eski haline getirilerek eval() metoduyla çalıştırılıyor. Bu fonksiyona aşağıdaki bağlantıya tıklayarak ulaşabilirsiniz :

http://www21.brinkster.com/kemalersin/fxscode/4ceviz/encode/decoder_function.txt

Az öncede bahsettiğim gibi bu, şifreyi çözmeye yarayan algoritma. Bu fonksiyon kullanılarak şifrelenen metinleri sayfanızda yazdırabilirsiniz. Nihayet bu scriptte de yine bir java script yazdırılıyor.

Eğer şifre çözme algoritması elinizdeyse şifreleme algoritmasını ya da en azından orjinal algoritmaya yakın bir algoritmayı tekrar yazabilirsiniz. Ben şifreleme fonksiyonunu oluştururken "decoder_function.txt" dosyasında verilen fonksiyonu tersine çevirdim :

http://www21.brinkster.com/kemalersin/fxscode/4ceviz/encode/decoder_script.htm

Özgün algoritmaya yaklaştığımı tahmin ediyorum.



var k=unescape("%0D%0A")

function pss(t){

var un1="",un2="",P=""

t=t.replace(/'/g,"`")
t=t.replace(/\\/g,"@@")
for(i=0;i<=t.length;i++)t=t.replace(k,"qg")

l=t.length

for(i=0;i<=l;i+=2){
un1+=t.charAt(i)
un2+=t.charAt(i+1)
}

P=un1+un2
}



Bu fonksiyonu satır satır çözümlersek :

1- k değişkenine "Enter" tuşunun değeri aktarılıyor.
2- Şifrelenecek metin, t değişkenine aktarılıyor.
3- t içindeki "'" karakterleri ` ile değiştiriliyor.
4- t içindeki "\" karakterleri @@ ile değiştiriliyor.
5- t içindeki satırbaşları qg ile değiştiriliyor.
6- l değişkenine t değişkeninin karakter sayısı aktarılıyor.
7- Sıfırdan l değişkeninin değerine kadar sürecek olan bir döngü sayaç her adımda iki arttırılacak şekilde başlatılıyor.
8- t değişkenine aktarılan metin içerisinde sıra numarası çift olan karakterler un1 değişkenine aktarılıyor.
9- t değişkenine aktarılan metin içerisinde sıra numarası tek olan karakterler un2 değişkenine aktarılıyor.
10- un1 ve un2 değişkenleri birleştirilerek yeni değer P değişkenine aktarılıyor.

İşte P değişkeninin değeri bizim şifrelenmiş metnimizdir.

Örneğin "123456" metnini şifrelediğimizi düşünelim :



123456 // Şifrelenmemiş metin


1 2 3 4 5 6
| | | | | |
| | | | | |
| -----|-----------|--------------> Karakter sıra numarası tek olanlar.
| | |
--------------------------------------> Karakter sıra numarası çift olanlar.


un1 = 135
un2 = 246
P = 135246 // Şifrelenmiş metin.



Aynı algoritma uygulandığında "fixman" "fxaimn" oluyor.

Umarım yardımcı olabilmişimdir.

Sevgiler.

Not : Srpi rln aaı!.citnkaııyzrm. :)

fixman
01/04/2003, 14:19
http://www21.brinkster.com/kemalersin/fxscode/4ceviz/encode/decoder_script.htm

adresindeki benim hazırladığım tahmini algoritmayı denemenizi tekrar öneriyorum...

Böylece bu scriptin nasıl şifrelendiğini daha iyi anlayabilirsiniz!

Kolay gelsin...

Not : Örnek olarak algoritma sayfasının(decoder_script.htm) kaynak kodlarını şifreleyebilirsiniz.

Sahin
01/04/2003, 15:22
Teşekkürler fixman, akşam baya kafa patlattım con_simitin yardımıylada escape konusunu çözdüm sonunda :)

fixman
01/04/2003, 15:38
"bu.js" dosyasının kullandığı algoritmayı çözmek o kadar da zor değilmiş di mi Şahin usta?

Sevgiler dost...

:super:

Sahin
01/04/2003, 15:59
Valla zor değilde zaman işte zaman en büyük problem :)

captainzap
26/03/2006, 01:02
Yeniden başlık açmak istemedim...


yıllar önce birkaç programla html i şifreleyerek çalıştırıyordum en azından direk insanlar gelip kaynak koduna bakarak siteden birşeyler yürütmüyorlardı. yalnız html i şifrelerken tabi bunun şifrelenmemiş halinide çözebilirsiniz biraz zaman harcayarak. Bildiğiniz html encoder lar var mı bunu gören siteler de var aslında mesala http://www.codehouse.com/webmaster_tools/html_encoder/

html girişim

<a href="selam.htm">link</a>

Çıktısı

<script type="text/javascript">document.write('\u003c\u0061\u0020\u0068\u0072\u00 65\u0066\u003d\u0022\u0073\u0065\u006c\u0061\u006d \u002e\u0068\u0074\u006d\u0022\u003e\u006c\u0069\u 006e\u006b\u003c\u002f\u0061\u003e')</script>

gerçi bu javascriptle şifreliyor

daha başka türleri de vardır tabi ... araştırmak lazım... bunları yapmak biraz paranoyaklık oluyor gibi :hmmm:

samurai_x
29/05/2008, 19:31
selam arkadaşlar acil lazım bir çözülmeyi bekleyen bir js dosyam var yardım edebilirseniz çok memnun olurum

eval(function(E,I,A,D,J,K,L,H){function C(A){return A<62?String.fromCharCode(A+=A<26?65:A<52?71:-4):A<63?'_':A<64?'$':C(A>>6)+C(A&63)}while(A>0)K[C(D--)]=I[--A];function N(A){return K[A]==L[A]?A:K[A]}if(''.replace(/^/,String)){var M=E.match(J),B=M[0],F=E.split(J),G=0;if(E.indexOf(F[0]))F=[''].concat(F);do{H[A++]=F[G++];H[A++]=N(B)}while(B=M[G]);H[A++]=F[G]||'';return H.join('')}return E.replace(J,N)}('N s=O c(),r=O c(),J,W=O c(),K,e=BP,BG=F,j,b,Q,a;x baslat(){s["S"]=w.$("isim1").Z;r["S"]=w.$("isim2").Z;s["R"]=D;r["R"]=D;Q=E;w.$("isimler").X.t="V";w.$("s").3=s["S"];w.$("r").3=r["S"];BF=w.$("0");L="AEI\\u0130O\\xd6U\\xdc";M(C=D;C<L.k;C++){6=w._("q");6.3=L[C];BF.8(6)}BE=w.$("5");L="BQ\\xc7DFG\\u011eHJKLMNPRS\\u015eTVYZ";M(C=D;C<L.k;C++){6=w._("q");6.3=L[C];BE.8(6)}w.$("oyunalani").X.t="Y";2()}x 2(){d((Q==E?s["S"]:r["S"])+", BM\\xfctfen bir l tutup Tamam BK\\xfc\\u011fmesine BN\\u0131klay\\p");w.$("BC").X.t="V";w.$("1").X.t="Y";w.$("l").Z="";w.$("5").BI=D;w.$("0").BI=D;j=e;7=BG;w.$("j"+((Q==E)?"F":"E")).3=j+"("+7+")";w.$("j"+((Q==E)?"E":"F")).3="";w.$("j"+((Q==E)?"E":"F")).BH="";4=w.$("BA");while(4.hasChildNodes())4.removeChild(4.lastChil d);w.$("BB").P=""}x yeniOyun(){w.$("1").X.t="V";w.$("z").X.t="V";w.$("BC").X.t="Y";w.$("puandurumu").X.t="Y";J=w.$("l").Z;J=J.replace(/C/BL,"<A href="file://\\u0130");J=J.toUpperCase();y=w.getElementsByName("a");M(H=D;H<y.k;H++)I(y[H].checked)a=y[H].Z;o=w._("tr");M(N">\\u0130");J=J.toUpperCase();y=w.getElementsByName("a");M(H=D;H<y.k;H++)I(y[H].checked)a=y[H].Z;o=w._("tr");M(N H=D;H<J.k;H++){m=w._("td");o.8(m);W[H]=m}w.$("BA").8(o);K="";b="";9()}x 9(){N H=true;M(N G=D;G<J.k;G++)I(K.u(J[G])!=-E)W[G].3=J[G];T I(J[G]!=" "){W[G].3="G";H=g}I(H&&K!=J+"B"){w.$("f").3="Kelime bulundu. v : "+(Q==E?r["S"]:s["S"]);w.$("z").X.t="Y";I(Q==E){r["R"]++;Q=F}T{s["R"]++;Q=E}w.$("h").3=s["R"];w.$("BD").3=r["R"]}}x i(H,G){I(G!="A")U=w.$(H?"0":"5").Z;T U=G;I(U=="B")n;I(b.u(U)>=D){d("BJ harfi zaten j ettiniz.");n}T I(G!="A")b+=U;I(J.u(U)>=D){K+=U;9();n}T I(H){I(7>D){7--;j--}T j-=F}T j--;I(j<D)j=D;w.$("BB").P="hangman_"+(e-j-E)+".gif";I(j<=BO)w.$("j"+((Q==E)?"F":"E")).BH="kirmizi";w.$("j"+((Q==E)?"F":"E")).3=j+"("+7+")";I(j<=D){I(Q==E){s["R"]++;Q=F}T{r["R"]++;Q=E}K=J+"B";9();w.$("f").3="Tahmin Hakk\\p\\u0131z doldu. v : "+(Q==F?s["S"]:r["S"]);w.$("z").X.t="Y";w.$("h").3=s["R"];w.$("BD").3=r["R"]}}x joker1(){d("Tutulan \\u015fey (file://\\u015fey) : "+a);i(g,"A")}','Q|X|i|0|1|2|_|$|if|asd|fvf|str|for|var|new|sr c|gfgf|puan|isim|else|harf|none|nhnh|style|block|v alue|ipucu|nhgnh|Array|alert|bgvbv|mesaj|false|pua n1|hamle|tahmin|length|kelime|tdElem|return|trElem |u0131n|option|oyuncu2|oyuncu1|display|indexOf|Kaz anan|document|function|ipucular|oyunsonu|sesliler| oyunbasi|oyunBasi|innerHTML|tabloElem|sessizler|op tionElem|sesliTahmin|appendChild|kelimeGoster|crea teElement|getElementById|harfler|resim|oyunortasi| puan2|select2|select1|mjmj|className|selectedIndex |O|d|g|l|t|3|9|BC'.split('|'),81,80,/[\w\$]+/g,{},{},[]))