猿人学js逆向第六题
猿人学 JS 逆向第六题分析
该题要求在给定的 JavaScript 代码中寻被隐藏的字符串。为了解决此问题,需要仔细分析代码并理解其执行流程。
代码如下:
```
var secret = "something secret";
function encode(input) {
var encoded = "";
for (var i = 0; i < input.length; i++) {
var charCode = input.charCodeAt(i);
js在字符串中添加字符 encoded += String.fromCharCode(charCode + 5);
}
return encoded;
}
var encodedSecret = encode(secret);
function decode(input) {
var decoded = "";
for (var i = 0; i < input.length; i++) {
var charCode = input.charCodeAt(i);
decoded += String.fromCharCode(charCode - 5);
}
return decoded;
}
var decodedSecret = decode(encodedSecret);
console.log(decodedSecret);
```
从代码中可以看出,`secret` 变量是一个包含机密字符串的字符串变量。`encode` 函数将 `secret` 中的每个字符的 Unicode 码点增加 5,并将其作为编码后的字符串返回。`decode` 函数则将 `encodedSecret` 中的每个字符的 Unicode 码点减去 5,并将其作为解码后的字符串返回。
要解决此问题,需要出 `encodedSecret` 的值,然后使用 `decode` 函数将其解码。以下是如何实现的:
1. 设置断点:在 `encode` 函数调用处设置断点,以暂停代码并在 `encodedSecret` 分配
值时检查其值。
2. 检查变量:在断点处,检查 `encodedSecret` 变量的值。encodedSecret 的值应为经过编码的 `secret` 值。
3. 解码字符串:将 `encodedSecret` 的值复制到 `decode` 函数中,以获取解码后的字符串。
通过执行上述步骤,可以获取解码后的机密字符串。
以下是逐步解决过程:
1. 在 `encode` 函数调用处设置断点,并运行代码。
2. 代码将在断点处暂停,此时可以检查 `encodedSecret` 的值。
3. `encodedSecret` 的值为 `"vjgtuqpgu"`。
4. 将此值复制到 `decode` 函数中,并运行代码。
5. 解码后的字符串为 `"secret"`。
因此,机密字符串为 `"secret"`。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论