YYHD-工作中一些总结(2)

    xiaoxiao2021-12-14  16

    1.git提交代码: cd 进到clone 目录下面,  git pull ,    git add 加上某目录 ,   git commit -m "..." ,     git push origin master

    2.linux远程登录某机器:ssh root@10.0.0.59, root@10.0.0.59:/root/ostagram/public, scp复制文件

    3.在ida找地址:调出String window查找字符串

    4.cppFlags.addAll(["-O3", "-fvisibility=hidden"])   -----  so混淆    isGooglePlayServicesAvailable   ---- 免google更改返回值 , data段也可以hook 5.插件制作注意: 先打印对象的内存数据如前50个,2.加血时可以找dead函数,然后观察哪个数据变0了,然后自己手加上。

    6. 过签名校验: v0 = ((Context)this).getPackageManager().getPackageInfo(((Context)this).getPackageName(), 64).signatures[0].toCharsString();

    7.  U3D取对象值:   int goldfiled;         DataSet.getFieldValue("gold",&goldfiled,dataSet);  //方式1取对象数据         //LogD("<%s> gold:%d",__FUNCTION__,goldfiled);         goldfiled+=1000;         void *gold=DataSet.getFieldBoxedValue(domain,"gold",dataSet);  //方式2取对象数据         int a=*(int *)mono_object_unbox(gold);         LogD("<%s> gold:%d",__FUNCTION__,a);         DataSet.setFieldValue(domain,"gold", &goldfiled, dataSet);

    //方法调用

         void *currentMana = PlayerModel.getFieldBoxedValue(domain, "currentMana", obj);      float a = *(float *) il2cpp_object_unbox(currentMana);      //LogD("<%s> currentMana -- %f", __FUNCTION__, a);      if (a < 500) {       a = a + 100;       arg1[0] = &a;       PlayerModel.invokeMethod("SetCurrentMana", arg1, obj);      }

    8. Thumb汇编占两个字节,hook时地址-1,而arm汇编不需要

    9.去广告,可以关闭网络. U3D广告:function=ShowADView, className:IAPCNManager

         BannerView   --- show 

    10.得到沙盒的重定向路径:getTargetApplication().getExternalCacheDir().getParent() 

    11. Xposed 是hook不到native层反射调的java层的函数,因此是打不出log的。

    12.doInBackground()未及时执行,也就是它并没有在execute()调用之后马上执行,而是等待了很久才得以执行。 因为是4.0平台,所以所有 的AsyncTask并不都会运行在单独的线程中,而是被SERIAL_EXECUTOR顺序的使用线程执行。因为我的应用中还有其他地方使用 AsyncTask,所以到网络取图片的AsyncTask也许会等待到其他任务都完成时才得以执行而不是调用executor()之后马上执行。 解决方法:要么直接使用Thread,要么创建一个单独的线程池 (Executors.newCachedThreadPool())。或者最简单的解法就是使用 executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR),这样起码不用等到前面的都结束了再执行。 //new InitAsyncTask().execute(); new InitAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);  //立即执行

    13. cocos2d:  记录一下http的请求void HelloWorld::onHttpRequestCompleted,   --- fiddler 能够拦截修改请求的结果

    14. fiddler Android下https抓包全攻略

    15.获取c不定参数:

    va_list valist; va_start(valist, a2); //LogD("<%s> a2 %s , num:%d", __FUNCTION__, a2,num); int c; if(a2[j]=='s'){     c=(int)va_arg(valist, char *);     LogD("<%s> a2 %s , num:%d, data:%s", __FUNCTION__, a2,num,c); }else{     c = va_arg(valist, int); //作为下一个参数类型的参数类型,返回不定参数    // if(c==testCoin){         LogD("<%s> a2 %s , num:%d, c:%d -- lr:%x, mybaseAdd:%x", __FUNCTION__, a2,num, c,lr-mybaseAdd, mybaseAdd);    // } }

    转载请注明原文地址: https://ju.6miu.com/read-963637.html

    最新回复(0)