7. Use the start, bearing, turn and turn of operations to obfuscate the code
It is to confuse people through fancy and complex object reference methods and judgment methods.
This is the most advanced type of confusion techniques. Common methods include:
Copy the codeThe code is as follows:
Triple operator?:
String operation
Object functions
Object inheritance
Function reference
Nameless function
Recursive functions
……etc. It is usually necessary to work together with several other types of techniques.
Give a simple but beautiful example:
Copy the codeThe code is as follows:
function GoNewScene(){var _0xeca5x0=["\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x4D\x61\x69\x6E\x2E\x61\x73\x70\x3F\x52\x3D\x30\x2E\x31\x32\x36\x33\x34\x37\x31\x31\x38\x36\x37\x31\x34\x33\x37\x30\x35\x39"];Temp1[_0xeca5x0[0x0]]=_0xeca5x0[0x1];}
function CheckOK(){var _0xdda5x0=["\x47\x61\x6D\x65\x2E\x61\x73\x70\x3F\x53\x63\x65\x6E\x65\x3D","\x26\x58\x3D","\x26\x59\x3D","\x6C\x6F\x63\x61\x74\x69\x6F\x6E","\x52\x65\x47\x6F\x28\x29","\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74"];var _0xdda5x1=_0xdda5x0[0x0]+SceneMapID+_0xdda5x0[0x1]+SceneX+_0xdda5x0[0x2]+SceneY;fMain[_0xdda5x0[0x3]]=_0xdda5x1;window[_0xdda5x0[0x5]](_0xdda5x0[0x4],0x64);}
function ReGo(){var _0xe88ax0=["\x47\x61\x6D\x65\x2E\x61\x73\x70\x3F\x53\x63\x65\x6E\x65\x3D","\x26\x58\x3D","\x26\x59\x3D","\x6C\x6F\x63\x61\x74\x69\x6F\x6E"];var _0xe88ax1=_0xe88ax0[0x0]+SceneMapID+_0xe88ax0[0x1]+SceneX+_0xe88ax0[0x2]+SceneY;Temp1[_0xe88ax0[0x3]]=_0xe88ax1;}
Its "clear code" is
Copy the codeThe code is as follows:
function GoNewScene(){
="?R=0.126347118671437059"
}
function CheckOK(){
="?Scene="+SceneMapID+"&X="+SceneX+"&Y="+SceneY
(ReGo(),100)
}
function ReGo(){
="?Scene="+SceneMapID+"&X="+SceneX+"&Y="+SceneY
}
The above example is taken from the old post/?tid=1831289
Directions of the topic:
1. Please post and give examples of the code "obfuscation|encryption" that you have seen and think is classic (or desirable). If possible, it is best to judge the classification based on the above classification and indicate which category of skills it belongs to.
2. Please introduce the "confusion|encryption" method or tool you have used. If possible, it is best to give an evaluation of the characteristics.
3. Please talk about your own opinions on JS "confusion|encryption" (understanding, requirements, prejudice...). Be careful not to be meaningful and not add to the water.