当前位置: 首页 > wzjs >正文

酒店自建网站的功能seo也成搜索引擎优化

酒店自建网站的功能,seo也成搜索引擎优化,国外做的比较好的购物网站,怎样用记事本做网站1. 前言 编写 frida JavaScript 脚本是一件 very 普遍的事情在 Android Reverse 中。为了方便编写,配置相关的环境使其能够自动补全是很关键的,即通过类名就能够获取该类的所有对外接口信息,这是面向对象编程的核心优势,可惜我没…

1. 前言

编写 frida JavaScript 脚本是一件 very 普遍的事情在 Android Reverse 中。为了方便编写,配置相关的环境使其能够自动补全是很关键的,即通过类名就能够获取该类的所有对外接口信息,这是面向对象编程的核心优势,可惜我没有对象。

首先我们还是要有一个信仰,相信这是能够配置好的,这个原因很简单,因为 frida 的控制台中就给出了相应的补全操作,只是因为操作不方便我才要去 VSCode 中配置。
在这里插入图片描述

2. 配置

In C/C++ 中我们只需要 #include 相应的头文件就能够达到在编写源码时的自动补全了,后续的补全操作都是由 MicrosoftIntelliSense 组件完成的。

同样的在 JavaScript 中包含相应的 .ts (TypeScript)文件就能够达到这样的效果。当然 .ts 绝对不是用来干这个的,只是我找到的 frida-gum 的相关文件是 .ts 的。相应的下载地址在这 @types/frida-gum。我下载的是 19.0.0 版本的,对应的 frida-17.2.* 这个版本的 APIfrida-16.1.0 是不同的,配置的时候需要找到对应版本的 index.d.ts 文件。

安装 node.js 后可以直接使用其附带的 npm 进行下载。After 下载,@types/frida-gum 目录下的 index.d.ts 复制到 Frida JavaScript 目录下即可。在文件开头添加下面的代码进行包含即可。

/// <reference path="./frida.d.ts" />

当然如果不 want 下载 node.js 可以直接从网页端产看代码,然后全选,复制到文件中保存,这里我要吐槽一下 npm 管理了,代码都展示出来了却不提供下载的接口。

完成包含后就可以在 VSCode 使用 Frida 的自动补全了。
在这里插入图片描述

3. API 变化

frida-17.2.5frida-16.1.0API 是不一样的,这里我只能说我亲身体会到的一个例子,这个 Bug 我找了好久,修完之后 I just wanna say sun your mum frida

下面的代码是 frida-16.1.0 以及很多网上教程中常用的用来 Hook Android 加载库时的操作。但在 frida-17.2.5 中这样的操作是不行的。

Module.findExportByName(null, "dlopen");

当输入上述 JavaScript 之后会在得到这样的报错信息,出现这样错误的原因是 frida-17.2.5 中没有相应的 API 实现。
在这里插入图片描述
When 我去查看相应的 API 描述 in @type/frida-gum-19.0.0 时,发现在 Module 中只有一个 findExportByName 的实现,而其参数列表只接受一个参数,并且函数没有 static 关键字修饰,必须要实例化之后才能使用。
在这里插入图片描述

While in @type/frida-gum-15.2.0 中则是另一种情况,在其 Module 中有两个 findExportByName 的实现,并且其中一个使用 static 关键字修饰,即不需要实例化也能使用。这就是代码 Module.findExportByName(null, "dlopen") 为什么在 frida-16.1.0 中能够正常使用的原因。
在这里插入图片描述

4. Some Code

这部分是我用来记录自己写的 JavaScript 代码的位置,主要是给自己以后查阅。使用的是 frida-17.2.5。包括:查找 API 函数输出调用栈颜色字

/// <reference path="./frida.d.ts" />
const CMD_RED = "\x1b[31m";
const CMD_GREEN = "\x1b[32m";
const CMD_YELLOW = "\x1b[33m";
const CMD_BLUE = "\x1b[34m";
const CMD_MAGENTA = "\x1b[35m";
const CMD_CYAN = "\x1b[36m";
const CMD_WHITE = "\x1b[37m";
// Store original console.log
const originalLog = console.log;
// Override console.log
console.log = function(...args) {originalLog(args, CMD_WHITE);
};console.log(CMD_GREEN + "[+] Enter Hook");/*** get a export function by its name* @param {string} strName : the function you want to hook* @returns {fnPoint} : the address of the function*/
function FindExportByName(strName) {var fn = null;const Modules = Process.enumerateModules();for(let i = 0; i < Modules.length; i++) {fn = Modules[i].getExportByName(strName);if(fn) {console.log(`In Module : ${Modules[i].name}, Address is : ${fn}`);break;}};return fn;
}/*** print out a thread calling stack * @param {context} Context : the context of current Thread, can be obtained in Interceptor.attach() callback*/
function TraceStack(Context) {try {const backtrace = Thread.backtrace(Context, Backtracer.ACCURATE).map(DebugSymbol.fromAddress).map(sym => sym.name + CMD_YELLOW +'[' + sym.moduleName + ']');console.log(CMD_YELLOW + 'Backtrace:');backtrace.forEach((frame, i) => console.log(CMD_GREEN + "\t" + `${i}: ${frame}`));}catch(e) {console.log(CMD_RED + "\tStack trace unavailable");console.log(CMD_RED + `\t${e}`);}console.log(CMD_GREEN + "End Trace");
}// record which lib are loaded
var setLoged = new Set(["libstats_jni.so"]);
/*** if the module isn't record in setLoged, then print it.* @param {string} libPath : the module name that is loaded* @returns : if the first that load it return 1 else return 0.*/
function LogLib(libPath) {if(libPath && !setLoged.has(libPath)) {setLoged.add(libPath);console.log(CMD_CYAN + `Load Module : ${libPath}`);return 1;}return 0;//console.log(CMD_RED + `00: ${this}`);
}function TraceModuleLoad() {var fnOpen = FindExportByName("android_dlopen_ext");if(fnOpen) {var bThere = 0;var libPath;Interceptor.attach(fnOpen, {onEnter(args) {libPath = args[0].readCString();bThere = LogLib(libPath);//Thread.sleep(10);if(bThere) {TraceStack(this.context);}},onLeave(retval) {}})console.log("Complete dlopen hook install");}
}
// get all the load module when apk start
TraceModuleLoad();console.log(CMD_YELLOW + "[-] Hook Installed");
http://www.dtcms.com/wzjs/129204.html

相关文章:

  • 营销手机网站哈尔滨推广优化公司
  • 网站开发技术 下载如何免费发布广告
  • wordpress 新闻发布建设优化网站
  • 政府门户网站建设管理情况朝阳区seo搜索引擎优化怎么样
  • xsl做书店网站百度公司电话
  • 网站制作免费打开百度一下的网址
  • 移动网站建设公司智慧软文网
  • 怎样做视频网站的外链网站推广怎么做有效果
  • win7 asp网站无法显示该页面谷歌应用商店下载
  • 淘宝做网站 评价话语推广产品的文案
  • 网站 备份 还原哪里有免费的网站推广服务
  • 网站程序如何制作东莞网络推广代运营
  • 学做网站先学什么搜狗seo培训
  • 找公司做网站注意事项seo网站内容优化有哪些
  • 营销活动网站百度网页排名怎么提升
  • 网站建设中模板代码怎么样进行网络推广
  • 默认网站停止willfast优化工具下载
  • 毕业答辩问题怎么做的这个网站人员优化是什么意思
  • 房产网站开发公司其他搜索引擎
  • 给别人做网站要问什么问题线上营销策略都有哪些
  • 学做网站看什么百度搜索引擎下载
  • 西安品牌网站建设网络广告推广平台
  • 生活服务行业网站建设个人对网络营销的看法
  • 垦利网站建设广州网络推广seo
  • 做电商海报的网站appstore关键词优化
  • php网站api接口写法百度联盟是什么
  • 什么网站专门做软件的发免费广告电话号码
  • 切换国外ip的软件推广优化网站排名教程
  • 海南三亚做网站baud百度一下
  • 网站的企业风采怎么做商品关键词举例