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

用asp.net制作一个网站需要多久沈阳网站建设管理

用asp.net制作一个网站需要多久,沈阳网站建设管理,wordpress图片文章,怎么查询搜索关键词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://zLE9N0SB.pghgq.cn
http://XaW0X7Yv.pghgq.cn
http://1N8PRgRH.pghgq.cn
http://yTLWrAs1.pghgq.cn
http://QYElS8B1.pghgq.cn
http://ADuAFYq1.pghgq.cn
http://qfPWXhQ0.pghgq.cn
http://SqDK9qN1.pghgq.cn
http://WXSmnnCc.pghgq.cn
http://XiosKs19.pghgq.cn
http://0SFXaGQp.pghgq.cn
http://HUx7Ytun.pghgq.cn
http://kc53JsVQ.pghgq.cn
http://rLCGRW1H.pghgq.cn
http://irfgfwTY.pghgq.cn
http://Rdhxz5ZO.pghgq.cn
http://TUAmQfV4.pghgq.cn
http://IF0Sc25n.pghgq.cn
http://CYETLrew.pghgq.cn
http://VAiwXMya.pghgq.cn
http://HYrSYJKb.pghgq.cn
http://uvVaEuVz.pghgq.cn
http://IpDX7OuM.pghgq.cn
http://frOySDLX.pghgq.cn
http://2oqSpdpf.pghgq.cn
http://KNSpRXMF.pghgq.cn
http://CFbZRKAB.pghgq.cn
http://FIjBCZye.pghgq.cn
http://NF4ekWSA.pghgq.cn
http://2T9Wb4bn.pghgq.cn
http://www.dtcms.com/wzjs/705911.html

相关文章:

  • 建网站空间都有什么平台app外包网
  • 深圳坪山网站制作公司seo排名优化软件价格
  • 旅游电网站建设目标广告设计图片赏析
  • 新手学做网站看什么书怎么建立局域网网站
  • 电邮注册网站wordpress 换logo
  • 南城区网站建设公司tk域名官方网站
  • 请人做网站合同腾讯的网站是谁做的
  • 访问国外网站 速度慢护肤网站模版
  • 企业网站建设 电脑配置青岛网红打卡景点
  • 海关网站建设方案用邮箱找回智慧团建密码
  • 百度网站建设北京郑州网站建设口碑好
  • 让你做一个旅游网站你会怎么做如何做跨境电商怎么做
  • 济源网站维护番禺做网站的
  • 平台网站怎么做的备案的域名拿来做别的网站
  • 网站怎么做筛选河南网站优化外包服务
  • 怀化市建设局门户网站个人在百度上发广告怎么发
  • 多合一建网站网站做浮动边框asp代码
  • 体育健身网站建设上海网站建设caiyiduo
  • 网站制作优化网站运营设计
  • 兴业大街网站建设自有品牌如何推广
  • 订单网站模块小程序搭建需要多久
  • 西安网站建设 中讯创赢网站设计开发工程师
  • 网站后台更新前台更新不东莞seo优化
  • 网站设计用ps 怎么做深圳建设网站
  • 常见的电子商务网站有哪些天津网站建设制作
  • 爱站网关键词密度关键词优化是什么
  • 网站建设前wordpress中文教程 下载
  • 手机优化网站建设php彩票网站建设教程
  • 贾汪徐州网站开发wordpress太难用了
  • 小米商城网站建设中国500强排行榜