Hôm nay mình ngồi rảnh lên chia sẻ cho các bạn một vài trang Mã Hóa and Giải Mã một đoạn code bị mã hóa. Mình sẽ chia sẽ một số dạng cơ bản như: HEX, EVAL, BASE64, VAR.
CÁC DẠNG CODE VÀ CÁCH THỰC HIỆN
1. Mã hóa dạng HEX
Mã hóa loại này sẽ có dạng như sau:
Để giải mã các đoạn mã loại này bạn có thể sử dụng trang web sau: http://jsbeautifier.org
Để giải mã các đoạn mã loại này bạn có thể sử dụng trang web sau: http://jsbeautifier.orgMã hóa loại này sẽ có dạng như sau:
var _0x8662=["\x53\x61\x79\x48\x65\x6C\x6C\x6F","\x47\x65\x74\x43\x6F\x75\x6E\x74","\x4D\x65\x73\x73\x61\x67\x65\x20\x3A\x20"Để mã hóa dạng này các bạn truy cập và mã hóa tại trang web dưới đây: https://javascriptobfuscator.com/Javascript-Obfuscator.aspx
Để giải mã các đoạn mã loại này bạn có thể sử dụng trang web sau: http://jsbeautifier.org
2. Mã hóa dạng EVAL (FUNCTION(P,A,C,K,E,R)
Để mã hóa dạng này các bạn truy cập vào website sau: http://dean.edwards.name/packer/
Sau khi mã hóa đoạn code sẽ có dạng như sau:
eval(function(d,e,a,c,b,f){b=function(a){return…Để giải mã dạng này các bạn có thể truy cập giải mã tại đây: http://dean.edwards.name/unpacker/
3. Mã hóa dạng BASE64
Mã hóa này sẽ có dạng như sau:
PCFET0NUWVBFIGh0bWw+PEhUTUw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiPjx0aXRsZT5DU1MzIEJ1dHRvbiBHZW5lcmF0b3IgfCBCZXN0IEJlYXV0aWZ1bCBDU1Để có được mã hóa dạng này các bạn truy cập và mã hóa tại trang web sau: https://www.base64encode.org/
Để giải mã các đoạn mã loại này bạn có thể sử dụng trang web sau: https://www.base64decode.org/
4. Mã hóa dạng VAR _{STRING};VAR _{STRING}
Mã hóa này cực kỳ phức tạp, ví dụ như sau:
var _6340;var _9546=’144D126A205E1697E1571A1673D1181C1571C1613C1619A1613A1619F1181F1355D1181D1223C2621E48335E1181B1649A1607C1691E1223E1343F’;var _4174=/[\x41\x42\x43\x44\x45\x46]/;var _8299=2;var _2685=_9546.charAt(_9546.length-1);var _8877;var _5445=_9546.split(_4174);var _7530=[String.fromCharCode,isNaN,parseInt,String];_5445[1]=_7530[_8299+1](_7530[_8299](_5445[1])/21);var _6937=(_8299==8)?String:eval;_8877=”;_11=_7530[_8299](_5445[0])/_7530[_8299](_5445[1]);for(_6340=3;_6340<_11;_6340++)_8877+=(_7530[_8299-2]((_7530[_8299](_5445[_6340])+_7530[_8299](_5445[2])+_7530[_8299](_5445[1]))/_7530[_8299](_5445[1])-_7530[_8299](_5445[2])+_7530[_8299](_5445[1])-1));var _1040=’_6496′;var _5869=’_1040=_8877′;function _6874(_4650){_6937(_6251);_6874(_7995);_7995(_5869);_6874(_1040);}var _6251=’_6874=_6937′;var _7995=’_7995=_6874′;_6874(_2685);Để giải mã được mã hóa dạng này, bạn cần thực hiện các bước như sau:
Bước 1: Ấn F12 và chuyển qua tab Console và dán đoạn code trên vào (Đừng ấn Enter nhé).
Bước 2: Lấy dãy số trong ngoặc gần cái var_ thứ 2 từ dưới lên và cho vào console.log(string); => console.log(_1040); với đoạn code ví dụ trên.
Đến đây, bạn ấn Enter là sẽ hiện đoạn code được mã hóa.
5. Một số trang giải mã Online khác có thể tham khảo
http://ddecode.com/hexdecoder/ (Giải mã các loại mã hóa HTML/Oct/Hex )
https://www.strictly-software.com/unpack-javascript (Giải mã các loại mã hóa dạng eval(function(p,a,c,k,e,r)…)
http://matthewfl.com/unPacker.html (Giải mã các loại mã hóa dạng eval(function(p,a,c,k,e,r)…)
LỜI KẾT
Trên đây là một số loại mã hóa và cách dịch ngược một số dạng mã hóa đơn giản. Trên thực tế, có rất nhiều các dạng mã hóa rất phức tạp khó giải mã, đa số các dạng như vậy đều yêu cầu chúng ta cần phải kết hợp nhiều công cụ hỗ trợ giải mã với nhau.
Cre: Nguyễn Duy Blog.
Không có nhận xét nào