首页
社区
课程
招聘
[求助]求助一个测试题目的逆向分析
发表于: 2015-5-29 09:43 5298

[求助]求助一个测试题目的逆向分析

2015-5-29 09:43
5298
附件是一个LINUX  64位的程序,程序启动后会打开UDP 12543端口等待远程数据。通过逆向分析程序里面对数据的算法应该可以达到执行代码或者其他的效果。 求助大神帮忙分析下。小弟感激不尽。

各位大牛,都帮忙分析一下吧。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 3542
活跃值: (1867)
能力值: ( LV6,RANK:93 )
在线值:
发帖
回帖
粉丝
2
真狠,还用64位考
2015-5-29 10:36
0
雪    币: 14
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
就是坑爹的很啊,我搞了几天了都只吧流程搞清楚了。由于不熟悉C语言,那个解密函数还是没有理清楚,所以求助各位大牛了
2015-5-29 11:00
0
雪    币: 967
活跃值: (1138)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
你已经被取消资格了,赶快投别家吧
2015-5-29 11:02
0
雪    币: 14
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
考试已经结束了哦,但是我还是想知道题目如何解。
2015-5-29 11:26
0
雪    币: 2829
活跃值: (2633)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
6
如果收到的长度是在0-1024之间
发送
parrot:oh!oh!oh!
parrot:收到的内容
否则发送
parrot:please don't say too much!

解密就是取反
2015-5-29 13:07
0
雪    币: 14
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
IDA F5后的解密函数 是这样的,应该发送什么数据能够符合这个解密呢?  也就是说加密后的数据用这个解密 并且和 “悙悙悙”比较。。那这个如何实现?

__int64 __fastcall decryptFunction(__int64 a1)//传递过来的数据应该是指针
{
  signed int i; // [sp+18h] [bp-8h]@1
  signed int v3; // [sp+1Ch] [bp-4h]@0

  for ( i = 0; ; ++i )//初始开始的时候i的值就已经是1了
  {
    *(_BYTE *)(a1 + i) = ~*(_BYTE *)(a1 + i);//取*(_BYTE *)(指针 + 1)的二进制反码
    if ( i > 6 && !strncmp((const char *)(a1 + i - 6LL), "悙悙悙", 6uLL) )//如果i>6,并且比较(a1 + i)-6后的前6个字符是否不等于 悙悙悙
    {
      v3 = 1;
      continue;//继续循环
    }
    if ( v3 && *(_BYTE *)(a1 + i) == -61 )//如果v3 和a1 + i == -61 循环结束
      break;
  }
  return (unsigned int)(i + 1);//返回i +1
}
2015-5-29 13:56
0
雪    币: 2829
活跃值: (2633)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
8
悙悙悙其实
nop

-61
是retn

和你发生的数据没有关系,以上两个判断只是解密是否结束
2015-6-1 10:01
0
雪    币: 14
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
那这个题应该发送什么数据过去呢?
2015-6-2 09:14
0
游客
登录 | 注册 方可回帖
返回
//