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

公司网站建设p开发江苏建设招标信息网站

公司网站建设p开发,江苏建设招标信息网站,做网站需要技术,在线seo短视频Jeb打开apk 关键代码在Native函数getResult IDA 打开 so 发现代码比较简单#xff0c;可以直接静态分析。 输出字符串也就是flag 长度是15#xff0c;然后分成三段#xff0c;第一段是可以整除3#xff0c;第二段是除3取余1#xff0c;第三段是除3取余等于2#xff1…Jeb打开apk 关键代码在Native函数getResult IDA 打开 so 发现代码比较简单可以直接静态分析。 输出字符串也就是flag 长度是15然后分成三段第一段是可以整除3第二段是除3取余1第三段是除3取余等于2 bool __fastcall Java_com_example_test_ctf03_JNI_getResult(JNIEnv *a1, int a2, int a3) {int v3; // r4const char *v4; // r8char *v5; // r6char *v6; // r4char *v7; // r5int i; // r0int j; // r0v3 0;v4 (*a1)-GetStringUTFChars(a1, a3, 0); //输入字符串if ( strlen(v4) 15 ) //判断输入字符串长度15{v5 malloc(1u);v6 malloc(1u);v7 malloc(1u);Init(v5, v6, v7, v4, 15); //输入字符串分成三段if ( !First(v5) ) //第一部分比较return 0;for ( i 0; i ! 4; i )v6[i] ^ v5[i];if ( !strcmp(v6, 5-\x16a) ) //第二部分比较{for ( j 0; j ! 4; j )v7[j] ^ v6[j];return strcmp(v7, AFBo}) 0; //第三部分比较}else{return 0;}}return v3; }Init 字符串分成三段 int __fastcall Init(int result, char *a2, char *a3, const char *a4, int a5) {int v5; // r5int v6; // r10int v7; // r6if ( a5 1 ){v6 0;}else{v5 0;v6 0;do{v7 v5 % 3;if ( v5 % 3 2 ) //除3取余 2 是第3段{a3[v5 / 3u] a4[v5];}else if ( v7 1 ) //除3取余 1 是第2段{a2[v5 / 3u] a4[v5];}else if ( !v7 ){v6;*(result v5 / 3u) a4[v5]; //除3是第1段}v5;}while ( a5 ! v5 );}*(result v6) 0;a2[v6] 0;a3[v6] 0;return result; }计算第一段 就是一个异或运算注意这里只计算了4位第5位不用算就是“l” First处理第一段 bool __fastcall First(char *a1) {int i; // r1for ( i 0; i ! 4; i )a1[i] (2 * a1[i]) ^ 0x80; //经过运算后判断是否 LN^dl 先乘以2再异或0x80, 反推就是用 LN^dl先异或0x80再除以2return strcmp(a1, LN^dl) 0; }可以算出第一段的值是 fgorl char[] chars new char[]{L,N,^,d,l};char[] res new char[5];for (int i 0; i 4; i) {res[i] (char) ((chars[i] ^ 0x80)/2);}res[4] l;System.out.println(res);计算第二段 第二段也是一个异或同样也只算4位第5位不用异或计算。注意这里的v5 不是上面计算出来的第一段的值是上面异或之后的也就是“LN^dl” for ( i 0; i ! 4; i )v6[i] ^ v5[i];if ( !strcmp(v6, a5A) )可以算出第二段的值 是 l{sra char[] c2 new char[]{0x20,0x35,0x2D,0x16,0x61}; //a5Achar[] r2 new char[5];for (int i 0; i 4; i) {r2[i] (char) (chars[i]^c2[i]); //chars 是上面的 LN^dl}r2[4] 0x61;System.out.println(r2);计算第三段 一样的套路还是异或计算4位第5位直接照搬是“}” for ( j 0; j ! 4; j )v7[j] ^ v6[j];return strcmp(v7, AFBo}) 0;可以计算出第三段 是 asoy} char[] c3 new char[]{0x41, 0x46, 0x42, 0x6F, 0x7D}; // AFBo}char[] r3 new char[5];for (int i 0; i 4; i) {r3[i] (char) (c2[i] ^ c3[i]);}r3[4] 0x7D;System.out.println(r3);组合起来就是flag 三段数据组合起来就是flag了 第一段fgorl -------------整除3对应的下标就是0,3,6,9,12 第二段l{sra -------------除3余1对应下标就是1,4,7,10,13 第三段asoy} -------------除3余2对应下标就是2,5,8,11,14 组合结果就是flag{sosorryla} 完整计算代码: public static void main(String[] args) {char[] chars new char[]{L,N,^,d,l};char[] res new char[5];for (int i 0; i 4; i) {res[i] (char) ((chars[i] ^ 0x80)/2);}res[4] l;System.out.println(res);//第二段char[] c2 new char[]{0x20,0x35,0x2D,0x16,0x61};char[] r2 new char[5];for (int i 0; i 4; i) {r2[i] (char) (chars[i]^c2[i]);}r2[4] 0x61;System.out.println(r2);//第三段char[] c3 new char[]{0x41, 0x46, 0x42, 0x6F, 0x7D};char[] r3 new char[5];for (int i 0; i 4; i) {r3[i] (char) (c2[i] ^ c3[i]);}r3[4] 0x7D;System.out.println(r3);//还原StringBuilder stringBuilder new StringBuilder();for (int i 0; i 5; i) {stringBuilder.append(res[i]);stringBuilder.append(r2[i]);stringBuilder.append(r3[i]);}System.out.println(stringBuilder);}
http://www.dnsts.com.cn/news/27639.html

相关文章:

  • 门户网站建设意义沈阳做网站优秀公司
  • 秦皇岛网站建设公司介绍怎么写
  • 室内设计网站资源巴城镇建设网站
  • 网站建设的需求分析报告wordpress开启cdn无法ip
  • 40万用户自助建站网络营销方式的使用方法
  • 网站体验分享wordpress搭的
  • 制作网站的登录界面怎么做专业做网站报价
  • jsp 淘宝网站验证码 设计wordpress 视频站主题
  • 网站开发前景咋样用Docker搭建WordPress博客
  • 不属于企业网站建设基本标准是wordpress 数据库 nginx
  • 网站建设服务套餐湘潭市高新建设局施工报建网站
  • 电商网站推广渠道个人工作室创业项目
  • 合肥蜀山网站开发双语网站开发
  • 如何开发网站做网站需要注意什么
  • 网站建设相关岗位名称网站建设管理维护责任书格式
  • 宽带推广方案分站城市网站如何做seo
  • 网站开发接单网站泰安网签成交量最新
  • 鲜花网站建设文档深圳网站建设公司是
  • 如何建立一个网站英语作文wordpress采集视频插件
  • 安卓网站开发环境网站建设优化公司
  • 辽宁城乡建设厅网站昌网站建设
  • 怎么查询网站的备案号信息流广告的三个特点
  • docker 做网站企业宣传册模板图片
  • 更改网站图标青岛正规公司网站建设公司
  • 汽车网有哪些网站大全公司域名备案网站名称
  • 公司网站怎么自己做高端建站网站
  • 免费源码资源源码站gowordpress幻灯片教程视频教程
  • 2345网址导航站网站推广的电子邮件推广
  • 临沂网站建设正规公司邯郸网站建设选哪家好
  • 高新苏州网站建设做怎个样网做站个网站