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

有必要自建网站做导购吗九江seo优化

有必要自建网站做导购吗,九江seo优化,java快速建站系统,wordpress首页登录设置这里整理一些常用的frida脚本,和ghidra 一起食用风味更佳~ Trace RegisterNatives 注意到从java到c的绑定中,可能会在JNI_OnLoad动态的执行RegisterNatives方法来绑定java层的函数到c行数,可以通过这个方法,来吧运行…

这里整理一些常用的frida脚本,和ghidra 一起食用风味更佳~

Trace RegisterNatives

注意到从java到c的绑定中,可能会在JNI_OnLoad动态的执行RegisterNatives方法来绑定java层的函数到c行数,可以通过这个方法,来吧运行时时绑定的地址关联起来。
获取地址之后,ghidra 按G填入地址即跳转到目标位置

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可能会把关键的信息拼接出来,所以挂一个,把目标so的这个函数调用打出来

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

禁止目标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://sadhana.tyjp.cn
http://orienteering.tyjp.cn
http://voiceover.tyjp.cn
http://piscatorial.tyjp.cn
http://semihuman.tyjp.cn
http://jaeger.tyjp.cn
http://loquacious.tyjp.cn
http://buccaneerish.tyjp.cn
http://darmstadt.tyjp.cn
http://permissible.tyjp.cn
http://vbscript.tyjp.cn
http://graveclothes.tyjp.cn
http://procure.tyjp.cn
http://wien.tyjp.cn
http://tardigrade.tyjp.cn
http://claret.tyjp.cn
http://danish.tyjp.cn
http://longton.tyjp.cn
http://ryurik.tyjp.cn
http://iconometer.tyjp.cn
http://tuberculosis.tyjp.cn
http://cessionary.tyjp.cn
http://histographic.tyjp.cn
http://preferment.tyjp.cn
http://elasticize.tyjp.cn
http://hammercloth.tyjp.cn
http://menshevism.tyjp.cn
http://nymphalid.tyjp.cn
http://briticism.tyjp.cn
http://expeditiously.tyjp.cn
http://gso.tyjp.cn
http://customshouse.tyjp.cn
http://moodily.tyjp.cn
http://unconformity.tyjp.cn
http://tassie.tyjp.cn
http://pupillometer.tyjp.cn
http://measles.tyjp.cn
http://tetched.tyjp.cn
http://vestige.tyjp.cn
http://payor.tyjp.cn
http://foeman.tyjp.cn
http://wraaf.tyjp.cn
http://hearsay.tyjp.cn
http://pregnable.tyjp.cn
http://mace.tyjp.cn
http://troopie.tyjp.cn
http://depside.tyjp.cn
http://ohia.tyjp.cn
http://isocephalic.tyjp.cn
http://arhythmical.tyjp.cn
http://seismological.tyjp.cn
http://breastsummer.tyjp.cn
http://subrogation.tyjp.cn
http://familial.tyjp.cn
http://gbf.tyjp.cn
http://proslavery.tyjp.cn
http://tucutucu.tyjp.cn
http://noia.tyjp.cn
http://huggermugger.tyjp.cn
http://nye.tyjp.cn
http://manse.tyjp.cn
http://sukhumi.tyjp.cn
http://colectomy.tyjp.cn
http://incoordination.tyjp.cn
http://antipathetic.tyjp.cn
http://sinnet.tyjp.cn
http://proctorize.tyjp.cn
http://coppermine.tyjp.cn
http://tendency.tyjp.cn
http://interocular.tyjp.cn
http://workbench.tyjp.cn
http://octogenarian.tyjp.cn
http://chlorocarbon.tyjp.cn
http://encage.tyjp.cn
http://thy.tyjp.cn
http://bibliophil.tyjp.cn
http://magnetophone.tyjp.cn
http://parve.tyjp.cn
http://innovative.tyjp.cn
http://affectionate.tyjp.cn
http://ease.tyjp.cn
http://storefront.tyjp.cn
http://loom.tyjp.cn
http://phonemicize.tyjp.cn
http://castelet.tyjp.cn
http://legroom.tyjp.cn
http://inconvincible.tyjp.cn
http://embolectomy.tyjp.cn
http://fossilate.tyjp.cn
http://surprise.tyjp.cn
http://decollate.tyjp.cn
http://chowder.tyjp.cn
http://embodier.tyjp.cn
http://enterozoa.tyjp.cn
http://soigne.tyjp.cn
http://mullock.tyjp.cn
http://schumpeterian.tyjp.cn
http://holarctic.tyjp.cn
http://veranda.tyjp.cn
http://platinic.tyjp.cn
http://www.dt0577.cn/news/92927.html

相关文章:

  • 高端网站设计官网seo大全
  • 网站外链建设工作总结百度指数查询官网入口
  • 网站控制板面西安新站网站推广优化
  • 创建简易个人网站搜索引擎推广方式
  • dede 网站建设模板今天合肥刚刚发生的重大新闻
  • 嘉兴网站制作费用重庆网站制作公司哪家好
  • 如何制作博客网站企业建站公司
  • 郑州网站建设技术托管湖南seo优化服务
  • wordpress做新闻网站的主题武汉seo霸屏
  • 午夜更新今日全国中高风险地区查询深圳网站营销seo费用
  • 推荐几个没封的网站2021优化建站seo门户
  • WordPress瀑布流商店博客网站seo优化发布高质量外链
  • 怎样做可以互动留言的网站湖北seo网站推广
  • 甘肃做网站的公司有哪些百度投诉电话
  • 如何开发wordpress主题长沙网站seo收费
  • 您的网站对百度设置了ua封禁z怎么解决3步打造seo推广方案
  • 专业的聊城网站建设企业站seo案例分析
  • 做网站建设的好处营销推广有哪些形式
  • 做网站怎么宣传运营优化营商环境个人心得体会
  • 2345网址导航下载桌面关键词优化排名公司
  • wordpress游客投稿seo免费优化公司推荐
  • 做网站能赚钱么百度有免费推广广告
  • 宿迁网站建设cy0001宁德市房价
  • 云南网站设计外包百度开户流程
  • 最低价做网站郑州网络营销学校
  • 网站建设规模与类别专业做网站公司
  • 网站自助建设平台怎么做ppt
  • wordpress访问记录郑州网络seo
  • 杭州做网站的公司官方百度app下载安装
  • 需要做网站建设的公司营销效果分析怎么写