中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

怎么自建導(dǎo)購網(wǎng)站做淘客公司seo排名優(yōu)化

怎么自建導(dǎo)購網(wǎng)站做淘客,公司seo排名優(yōu)化,哪家專門做特賣的網(wǎng)站?,自己做的網(wǎng)站怎樣賺錢這里整理一些常用的frida腳本,和ghidra 一起食用風(fēng)味更佳~ Trace RegisterNatives 注意到從java到c的綁定中,可能會在JNI_OnLoad動態(tài)的執(zhí)行RegisterNatives方法來綁定java層的函數(shù)到c行數(shù),可以通過這個(gè)方法,來吧運(yùn)行…

這里整理一些常用的frida腳本,和ghidra 一起食用風(fēng)味更佳~

Trace RegisterNatives

注意到從java到c的綁定中,可能會在JNI_OnLoad動態(tài)的執(zhí)行RegisterNatives方法來綁定java層的函數(shù)到c行數(shù),可以通過這個(gè)方法,來吧運(yùn)行時(shí)時(shí)綁定的地址關(guān)聯(lián)起來。
獲取地址之后,ghidra 按G填入地址即跳轉(zhuǎn)到目標(biāo)位置

let nativeMethods = {"methods":[]}
let addrRegisterNatives = null
var yeshen_module_base = undefinedconst OURLIB = "libEngineNative.so"                     // Replace with yoursProcess.enumerateModules().forEach(function (m) { Module.enumerateSymbolsSync(m.name).forEach(function (s) { if (s.name.includes("RegisterNatives") && (!s.name.includes("CheckJNI"))) { addrRegisterNatives = s.address} }) 
})Interceptor.attach(addrRegisterNatives, {// jint RegisterNatives(JNIEnv *env, jclass clazz, const JNINativeMethod *methods, jint nMethods);onEnter: function (args) {var calledFromLibnOffset = String(DebugSymbol.fromAddress(this.returnAddress))if(!calledFromLibnOffset.includes(OURLIB)){     // Filter out a few calls return}// console.log("\nenv->RegisterNatives()")var nMethods = parseInt(args[3]);// console.log("\tnMethods="+nMethods);var class_name = Java.vm.tryGetEnv().getClassName(args[1]);// console.log("\tclazz.name="+class_name)// console.log("\tmethods[]:");var methods_ptr = ptr(args[2]);for (var i = 0; i < nMethods; i++) {var name_ptr = Memory.readPointer(methods_ptr.add(i * Process.pointerSize*3));var methodName = Memory.readCString(name_ptr);var sig_ptr = Memory.readPointer(methods_ptr.add(i * Process.pointerSize*3 + Process.pointerSize));var sig = Memory.readCString(sig_ptr);// console.log("\t\t"+methodName+"(), sig:", sig)var fnPtr_ptr = Memory.readPointer(methods_ptr.add(i * Process.pointerSize*3 + Process.pointerSize*2));var find_module = Process.findModuleByAddress(fnPtr_ptr);yeshen_module_base = find_module.base;var fnPtr_ptr_ghidra = ptr(fnPtr_ptr).sub(find_module.base).add(0x00100000)// console.log("\t\t\tfnPtr:", fnPtr_ptr,  " ghidraOffset:", fnPtr_ptr_ghidra);nativeMethods["methods"].push({ghidraOffset : fnPtr_ptr_ghidra,methodName : class_name+"."+methodName})}}
})// let the script run for a bit,
// then dump the "nativeMethods" object on the Frida interpreter 
// or uncomment the console.log statements to dump all invocations like below://  env->RegisterNatives()
// 	    nMethods=1
// 	    clazz.name=com.app.jni.PhoneControllerHelper
//  	methods[]:
// 	    	handleSendIM2Message(), sig: (Lcom/app/jni/MessageWrite;)Z
// 		    	fnPtr: 0x733a924280  ghidraOffset: 0x1d7280

Trace sprintf

注意到sprintf可能會把關(guān)鍵的信息拼接出來,所以掛一個(gè),把目標(biāo)so的這個(gè)函數(shù)調(diào)用打出來

var libyeshenbaseModule = "libyeshen.so"
const sprintfAddress = Module.findExportByName(libyeshenbaseModule, "sprintf");
Interceptor.attach(sprintfAddress, {onEnter: function (args) {this.args1 = args[0];var fnPtr_ptr_ghidra = ptr(this.returnAddress).sub(yeshen_module_base).add(0x00100000)var caller = DebugSymbol.fromAddress(this.returnAddress);this.args2 = "sprintf is called from: " + caller + ",ghidraOffset:" + fnPtr_ptr_ghidra;},onLeave: function (retval) {ALOGE("sprintf result: " + Memory.readUtf8String(this.args1) + "," + this.args2);}
});

Trace opendir

禁止目標(biāo)so對opendir的訪問和記錄。

var libyeshenbaseModule = "libyeshen.so"
Interceptor.attach(Module.findExportByName(libyeshenbaseModule, 'opendir'), {onEnter: function (args) {var filename = Memory.readUtf8String(args[0]);if(filename.startsWith("/proc/self/net") || filename.startsWith("/sbin") || filename == "/"|| filename == "/sys/devices/system/cpu"){args[0] = ptr(0);ALOGE("opendir:" + filename + " forbidden.");}else{ALOGE("opendir:" + filename);}},onLeave: function (retval) {}
});

Trace readdir

Interceptor.attach(Module.findExportByName(libyeshenbaseModule, 'readdir'), {onEnter: function (args) {var filename = Memory.readUtf8String(args[0]);ALOGE("readdir:" + filename);},onLeave: function (retval) {}
});

Trace fread

Interceptor.attach(Module.findExportByName(libyeshenbaseModule, 'fread'), {onEnter: function (args) {var buffer = args[0];var size = args[1];var nmemb = args[2];var file = args[3];// var data = Memory.readUtf8String(buffer, size);ALOGE("fread:" + buffer + ", size: " + size + ", nmemb: " + nmemb + ", file: " + file );//+ ',data:' + data);// ALOGE("--fread end")},onLeave: function (retval) {}
});

Trace open & read

Interceptor.attach(Module.findExportByName(libyeshenbaseModule, 'open'), {onEnter: function (args) {var path = Memory.readUtf8String(args[0]);// if(path.startsWith("/proc")  && path.endsWith("/maps")){if (path == "/data" || path == "/data/app" || path == "/mnt" || path == "/system/framework" || path == "/sbin" || path == "/proc/cpuinfo" || path == "/proc/self/net" || path == "/proc/self/net/unix"){ALOGE("Access to " + path + " is denied"); args[0] = ptr("-1");// 修改返回值為 -1,表示打開文件失敗}else if (path.startsWith("/proc") && (path.endsWith("/maps") || path.endsWith("/status") || path.endsWith("/cmdline") || path.endsWith("/meminfo") || path.endsWith("/stat"))) {ALOGE("Access to " + path + " is denied"); args[0] = ptr("-1");// 修改返回值為 -1,表示打開文件失敗}else {ALOGE('open path:' + path);}}
});Interceptor.attach(Module.findExportByName(libyeshenbaseModule, 'read'), {onEnter: function (args) {var fd = args[0].toInt32();var buffer = args[1];var count = args[2].toInt32();var data = Memory.readUtf8String(buffer, count);ALOGE('---read fd:' + fd + ', count: ' + count + ',data:' + data);ALOGE("---read end")}
});

Trace custom address read in ghidra

var target_ptr_ghidra_1 = 0x001063e8;
var target_ptr_apply_1 = ptr(target_ptr_ghidra_1).sub(0x00100000).add(yeshen_module_base);
Interceptor.attach(target_ptr_apply_1,{onEnter:function(args){var fnPtr_ptr_ghidra = ptr(this.returnAddress).sub(yeshen_module_base).add(0x00100000)this.input = ",input:" + Memory.readCString(args[1]) + ",ghidraOffset:" + fnPtr_ptr_ghidra},onLeave:function(retval){ALOGE("0x001063e8 result:" + retval + this.input);// 0x001063e8 result:0x0,inputx86,ghidraOffset:0x11ab68retval.replace(0);}
});

Replace custom address‘s function to void

var target_ptr_ghidra_root = 0x11e7b0;
var target_ptr_apply_root = ptr(target_ptr_ghidra_root).sub(0x00100000).add(yeshen_module_base)
Interceptor.replace(target_ptr_apply_root, new NativeCallback(() => {// ALOGE("void 0x1e7b0 called")
}, 'void', []));
http://www.risenshineclean.com/news/6400.html

相關(guān)文章:

  • 網(wǎng)站開發(fā)語言 微信接口百度快照優(yōu)化培訓(xùn)班
  • 河北省建設(shè)執(zhí)業(yè)資格中心網(wǎng)站網(wǎng)絡(luò)營銷推廣技巧
  • 西充縣住房和城鄉(xiāng)規(guī)劃建設(shè)局網(wǎng)站google網(wǎng)站增加關(guān)鍵詞
  • 哪些網(wǎng)站是做b2b的網(wǎng)站維護(hù)一年一般多少錢?
  • 網(wǎng)站建設(shè)容易嗎seo自媒體培訓(xùn)
  • 連云港做網(wǎng)站最好惠州網(wǎng)站制作推廣
  • 專做海島游的網(wǎng)站如何交換友情鏈接
  • 網(wǎng)站建設(shè)設(shè)計(jì)解決方案網(wǎng)推拉新app推廣接單平臺
  • 電腦版qq在線登錄網(wǎng)頁入口百度地圖關(guān)鍵詞排名優(yōu)化
  • 南昌自助建站模板今天上海最新新聞事件
  • 網(wǎng)站 建設(shè) 成品小程序開發(fā)平臺官網(wǎng)
  • hbuilder做網(wǎng)站頁面背景色鄭州seo公司哪家好
  • 58同城煙臺網(wǎng)站建設(shè)肇慶網(wǎng)站推廣排名
  • 建英語網(wǎng)站第一推廣網(wǎng)
  • 有沒有什么 網(wǎng)站能夠做試卷排名優(yōu)化服務(wù)
  • 做網(wǎng)站被坑溫州云優(yōu)化seo
  • 淘寶客網(wǎng)站做百度推廣登錄百度賬號注冊
  • 網(wǎng)站建設(shè)實(shí)習(xí)生怎么樣百度一下打開網(wǎng)頁
  • 福安建設(shè)網(wǎng)站網(wǎng)絡(luò)營銷公司好不好
  • 網(wǎng)站建設(shè)空間選擇的重要性廈門seo管理
  • 進(jìn)行seo網(wǎng)站建設(shè)今日最新的新聞
  • 哪個(gè)網(wǎng)站可以做計(jì)算機(jī)二級的題關(guān)鍵詞優(yōu)化系統(tǒng)
  • 微信紅包封面分銷平臺搜索引擎優(yōu)化的內(nèi)部優(yōu)化
  • 南陽做網(wǎng)站seo的收錄網(wǎng)站的平臺有哪些
  • 網(wǎng)站建設(shè)網(wǎng)頁制seo研究中心超逸seo
  • 丹陽網(wǎng)站優(yōu)化廣東省疫情最新
  • 網(wǎng)站變灰色代碼web網(wǎng)站模板
  • 買公司 網(wǎng)站建設(shè)搜索seo優(yōu)化
  • 國外域名怎么購買windows優(yōu)化大師收費(fèi)
  • 有域名 有固定ip怎么做網(wǎng)站進(jìn)入百度搜索網(wǎng)站