首页
社区
课程
招聘
[原创]神秘系统分析
发表于: 2014-3-16 23:29 11820

[原创]神秘系统分析

2014-3-16 23:29
11820

我想坛里的大神们很多参加了上周的BCTF,不知为何exploit全是liunx下的,当时看到只有玩泥巴le,希望有大神指导。玩不来liunx的只有认真的将神秘系统进行了一番分析。

附件里有解密后的idb分析记录,与分析报告。

sm.zip

(一)accesscode获取:

神秘的系统,打开发现1FEH 55AA 这是MBR(系统引导)首先分析这部分数据,主要功能就是将数据拷贝到0x8000处然后会利用输入的accesscode 去解密200H~A00H处。

解密算法根据输入的4个(0~9)循环依次解密


第一个肯定是一个call或者jmp,根据opcode可以推导

后面就是一个E8跳偏移,头执行哪个E8 *** BCTF,然后就可以推断出1337  

然后解密:

include "stdio.h"
#include <windows.h>
#define SIZE_CODE 0x800
int main()
{
 BOOL BRet = FALSE;
 DWORD dwsize = 0;
char buf[SIZE_CODE] = {0};
 HANDLE hFile = NULL;
 hFile = CreateFile("bctfos.3bbbcae1ea13b566477c99941a5eee63",GENERIC_WRITE|GENERIC_READ,
  FILE_SHARE_READ | FILE_SHARE_WRITE,
  NULL,
  OPEN_EXISTING,
  0,
  NULL
  );
 if (hFile == INVALID_HANDLE_VALUE)
 {
  MessageBox(NULL, NULL, "error", MB_OK);
  return -1;
 }
 SetFilePointer(hFile, 0x200, NULL, FILE_BEGIN);
 BRet = ReadFile(hFile, buf, 0x800, &dwsize, NULL);
 if (!BRet)
 {
  printf("sdas");
  return -1;
 }
 for (int i = 0; i*4 < 0x800; i++)
 {
  buf[i*4] = buf[i*4] ^ 0x31;
 }
 for (i = 0; 1+i*4 < 0x800; i++)
 {
  buf[1+i*4] = buf[i*4+1] ^ 0x33;
 }
 for (i = 0; 2+i*4 < 0x800; i++)
 {
  buf[2+i*4] = buf[2+i*4] ^0x33;
 }
 for (i = 0; 3+i*4 < 0x800; i++)
 {
  buf[3+i*4] = buf[3+i*4] ^ 0x37;
 }
 CloseHandle(hFile);
 hFile = CreateFile("1.txt", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ,NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
 if (hFile == INVALID_HANDLE_VALUE)
 {
  MessageBox(NULL, "1.txt", "error", MB_OK);
  return -1;
 }
 SetFilePointer(hFile, NULL, NULL, FILE_BEGIN);
 BRet = WriteFile(hFile, buf, 0x800, &dwsize, NULL);
 if (!BRet)
 {
  return -1;
 }
 CloseHandle(hFile);
 return 0;
}

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 5
支持
分享
最新回复 (18)
雪    币: 341
活跃值: (85)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
so difficult
2014-3-17 09:01
0
雪    币: 30
活跃值: (56)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
居然看成神经系统分析......
2014-3-17 10:48
0
雪    币: 35
活跃值: (139)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
,,,,囧
2014-3-17 11:18
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不明觉厉。。
2014-3-17 11:22
0
雪    币: 2882
活跃值: (1272)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjd
6
linux 而不是liunx
2014-3-17 12:40
0
雪    币: 496
活跃值: (286)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
7
把内容展开 贴出来,不要只发一个zip
2014-3-17 12:49
0
雪    币: 341
活跃值: (85)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
为什么呢,申哥
2014-3-17 19:10
0
雪    币: 35
活跃值: (139)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
9
申哥,图太多了。
2014-3-17 19:23
0
雪    币: 202
活跃值: (114)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这都能发现
2014-3-17 20:11
0
雪    币: 3366
活跃值: (1353)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
11
当时这个系统卡了半天 --- 得好好学习下--多谢!

不过求下 boches 教程 我看过那个从实模式到保护模式 李忠 的书 但是没看懂---怎么用的boches---
2014-3-22 18:02
0
雪    币: 250
活跃值: (251)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我也觉得展开好些 嘿嘿
2014-3-23 16:12
0
雪    币: 7032
活跃值: (3529)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
没听明白,大神啊。。。
2014-3-23 17:00
0
雪    币: 266
活跃值: (204)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
兄弟bochs吧
2014-3-23 21:17
0
雪    币: 35
活跃值: (139)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
15
google了一篇文章 http://www.cnblogs.com/chengxuyuancc/archive/2013/05/13/3076524.html
2014-3-24 10:50
0
雪    币: 202
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
自己学着写os就能解决很多问题
2014-3-24 21:32
0
雪    币: 3366
活跃值: (1353)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
17
多谢~ 挺好用的。
2014-3-28 22:51
0
雪    币: 3270
活跃值: (2944)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
知识含量很高,收藏慢慢消化了,感谢楼主分享
2014-3-29 20:03
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
听不懂。。。看来还有待提高
2014-4-17 15:59
0
游客
登录 | 注册 方可回帖
返回
//