1.抖音web逆向教程
2.看了JavaScript dom编程技术的源码Ajax介绍,依照书上的源码代码试了一遍,可是源码什么都没加载出来
抖音web逆向教程
逆向教程:理解加密参数流程
首先,逆向工程的源码首要步骤是分析流程,通过观察堆栈信息和源码,源码设置断点在XMLHttpRequest对象的源码梦回山海源码构建上。在这个对象的源码_url中,我们注意到signature和x-bogus的源码存在。
目标是源码找到一个未加密的请求对象。在`e.nativeXMLHttpRequestSend`的源码上下文中,大约向前调试七步,源码我们会发现一个与XMLHttpRequest相关的源码方法,该方法在send处设置断点。源码暂停请求后,源码我们会发现对象的源码同花顺源码语言_url尚未包含加密参数。
进一步深入,进入混淆的webmssdk,这里对请求对象进行了加密处理。跳出后回到原生的send方法,这时_url已包含加密后的签名。这个过程表明,先创建请求对象,map框架源码然后通过修改send方法,将其传递给webmssdk中的加密函数,加密后回到XMLHttpRequest.prototype.send执行请求。
了解了参数生成方式后,可以通过RPC模拟生成。虽然还未找到具体的加密代码,但因其加密基于操作XMLRequest对象,阿里hub源码我们可以复现加密过程。
进行本地调用时,首先要确保理解并按照步骤操作。发送请求后,控制台将显示带有签名的链接和数据,确认加密及请求都在send方法中完成。
接下来,路灯源码安装处理webmssdk文件,如复制代码到本地执行。可能会遇到一些报错,如未定义的Request、Headers等。通过补全这些环境变量,逐步逼近目标。然而,代码中定时器的存在会阻碍直接结果。此时,需要分析源码,找出本地执行与浏览器环境的区别,以及byted_acrawler的初始化问题。
通过对比和调整,最终在本地环境中成功执行,req的onload中显示出加密后的URL。至此,基本的调用流程还原完成,但具体细节的还原和调试则需要读者自行尝试。
本文着重于提供基本的教程,帮助理解加密过程,但并不能保证%的成功。补全环境的过程繁琐,建议读者根据本文描述自行探索,祝好运!
看了JavaScript dom编程技术的Ajax介绍,依照书上的代码试了一遍,可是什么都没加载出来
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=UTF-8>
<title>Ajax修改完毕,采纳即可</title>
<script>
function getNewContent() {
var request = getHTTPObject();
if (request) {
request.open("GET", "example.txt", true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var para = document.createElement("p");
var txt = document.createTextNode(request.responseText);
para.appendChild(txt);
document.getElementById('new').appendChild(para);
}
};
request.send(null);
} else {
alert("Sorry,your browser doesn/'t support XMLHttpRequest");
}
}
onload = getNewContent;
function getHTTPObject() {
if (typeof XMLHttpRequest == "undefined") {
XMLHttpRequest = function() {
try {
return new ActiveXObject("Msxml2.XMLHTTP.6.0");
}
catch (e) {
console.error(e);
}
try {
return new ActiveXObject("Msxml2.XMLHTTP.3.0");
}
catch (e) {
console.error(e);
}
try {
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
console.error(e);
}
return false;
}
}
return new XMLHttpRequest();
}
</script>
</head>
<body>
<div id="new">
</div>
</body>
</html>