请选择 进入手机版 | 继续访问电脑版

某省赛APK第三题分析

本帖最后由 Darkbright.Liu 于 2019-11-12 01:26 编辑

去掉test属性,便于安装APK:
1.png
手机运行该APK,启动IDA 调试server文件,并进行端口转发:
2.png
3.png

IDA远程挂接,定位至关键函数:
4.png
转换成C语言:
  1. unsigned int table[8] = {
  2.         0x4654B6E4,
  3.         0xC4C507A5,
  4.         0x27F067B4,
  5.         0x15F664C4,
  6.         0x71F57634,
  7.         0x563046F6,
  8.         0x265186E5,
  9.         0xD53445F7
  10. };
  11. unsigned char *arr1 = (unsigned char*)table;
复制代码
5.png
转换成C语言:
  1. for(int i=0; i<32; i++){
  2.     for(unsigned char t=i; t<0x71; t+=7)
  3.         input[i] ^= t;
  4. }
复制代码
6.png
转换成C语言:
  1. for(int i=0; i<32; i++)
  2.     input[i] = (input[i] >> 4) | (input[i] << 4);
复制代码
7.png
转换成C语言:
  1. for(int i=0; i<16; i++)
复制代码
其中swap函数:
  1. void swap(char* p1, char* p2)
  2. {
  3.      char c;
  4.      c = *p1;
  5.      *p1 = *p2;
  6.      *p2 = c;
  7. }
复制代码
8.png
转换成C语言:
  1. for(int i=0; i<16; i++)
复制代码
9.png
转换成C语言:
  1. for(int i=0; i<32; i++){
复制代码

将代码反转,得到:
  1. #include <stdio.h>

  2. unsigned int table[8] = {
  3.     0x4654B6E4,
  4.     0xC4C507A5,
  5.     0x27F067B4,
  6.     0x15F664C4,
  7.     0x71F57634,
  8.     0x563046F6,
  9.     0x265186E5,
  10.     0xD53445F7
  11. };

  12. void swap(char* p1, char* p2)
  13. {
  14.     char c;
  15.     c = *p1;
  16.     *p1 = *p2;
  17.     *p2 = c;
  18. }

  19. int main(int argc, char* argv[])
  20. {
  21.     unsigned char *arr1 = (char*)table;
  22.     unsigned char passwd[33] = {0};
  23.         
  24.     for(int i=0; i<16; i++)
  25.         swap(arr1+i, arr1+31-i);
  26.         
  27.     for(int i=16; i>0; i--)
  28.         swap(arr1+i, arr1+i-1);
  29.         
  30.     for(int i=0; i<32; i++)
  31.         arr1[i] = (arr1[i] >> 4) | (arr1[i] << 4);
  32.         
  33.     for(unsigned char i=0,t=0; i<32; i++){
  34.         passwd[i] = arr1[i];
  35.         for(t=i; t<0x71; t+=7)
  36.              passwd[i] ^= t;
  37.         passwd[i] ^= t;
  38.     }
  39.     puts(passwd);
  40.     printf("\r\n");
  41.         
  42.     return 0;
  43. }
复制代码





















7.png
标签: 暂无标签
Darkbright.Liu

写了 7 篇文章,拥有财富 129,被 2 人关注

转播转播 分享分享 分享淘帖
回复

使用道具

Ἔρως 注册会员 | 发表于 2019-12-6 23:57:37
666...汇编可以逆出来了..你这是学了多久了?
回复

使用道具

Darkbright.Liu 注册会员 | 发表于 2019-12-10 16:34:38
Ἔρως 发表于 2019-12-6 23:57
666...汇编可以逆出来了..你这是学了多久了?

多逆向分析一些简单的反汇编就会了
回复

使用道具

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

意见
反馈