首页
社区
课程
招聘
[讨论][讨论]Hex-Rays 太邪恶了
2009-1-2 01:51 9366

[讨论][讨论]Hex-Rays 太邪恶了

2009-1-2 01:51
9366
几可乱真
PIMAGE_SECTION_HEADER __stdcall ImageRvaToSection(PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva)
{
  PIMAGE_SECTION_HEADER pSectionHeader; // eax@1
  unsigned int numberOfSections; // ecx@1
  unsigned int currentSection; // esi@1
  DWORD currentSectionRva; // edx@2

  pSectionHeader = (PIMAGE_SECTION_HEADER)((char *)&NtHeaders->OptionalHeader
                                         + NtHeaders->FileHeader.SizeOfOptionalHeader);
  numberOfSections = NtHeaders->FileHeader.NumberOfSections;
  currentSection = 0;
  if ( numberOfSections )
  {
    while ( 1 )
    {
      currentSectionRva = pSectionHeader->VirtualAddress;
      if ( Rva >= currentSectionRva )
      {
        if ( Rva < currentSectionRva + pSectionHeader->SizeOfRawData )
          break;
      }
      ++pSectionHeader;
      ++currentSection;
      if ( currentSection >= numberOfSections )
        goto LABEL_5;
    }
  }
  else
  {
LABEL_5:
    pSectionHeader = 0;
  }
  return pSectionHeader;
}

PVOID __stdcall ImageRvaToVa(PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva, PIMAGE_SECTION_HEADER *LastRvaSection)
{
  ULONG v4; // edi@1
  PIMAGE_SECTION_HEADER *ppLastSectionHeader; // esi@1
  PIMAGE_SECTION_HEADER pSectionHeader; // ecx@2
  ULONG currentRva; // eax@3
  PVOID result; // eax@9

  ppLastSectionHeader = LastRvaSection;
  v4 = Rva;
  if ( !LastRvaSection
    || (pSectionHeader = *LastRvaSection, !*LastRvaSection)
    || (currentRva = pSectionHeader->VirtualAddress, Rva < currentRva)
    || Rva >= currentRva + pSectionHeader->SizeOfRawData )
    pSectionHeader = ImageRvaToSection(NtHeaders, Base, Rva);
  if ( pSectionHeader )
  {
    if ( ppLastSectionHeader )
      *ppLastSectionHeader = pSectionHeader;
    result = Base + pSectionHeader->PointerToRawData - pSectionHeader->VirtualAddress + v4;
  }
  else
  {
    result = 0;
  }
  return result;
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (17)
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
北极狐狸 7 2009-1-2 08:11
2
0
改过变量名的吧......但是邪恶,就是邪恶......呵呵...
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
笨笨雄 14 2009-1-2 14:31
3
0
分支简单的无所谓,我曾经逆的一个分支比较复杂的解压缩函数,用F5,就给我搞出几千行代码。我自己动作逆,只有500行而已

HEX RAY对多重嵌套的分支还原效果不好,还有对INLINE的函数也识别不好
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
stalker 8 2009-1-2 14:32
4
0
膜拜版主12
雪    币: 211
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
needy 2009-1-2 20:07
5
0
放在不同的机器上有不同的代码,有的可读性很好, 有的很乱,变量太多. 总体而言, 确实邪恶.
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lostinmj 2009-1-2 20:27
6
0
准备也写一个,不知道难度究竟有多大?
雪    币: 1946
活跃值: (238)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
Bughoho 8 2009-1-2 21:45
7
0
买个正版的试试
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
onlywww 2009-1-6 10:05
8
0
正版和破解版效率不同?
雪    币: 2071
活跃值: (77)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
sessiondiy 4 2009-1-6 10:31
9
0
正版的光是按Enter的感觉就跟破解版不同了
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
icetowater 2009-1-6 13:31
10
0
正版的跟D版的好像没啥不同啊!还是我RP不好。我用一个CrackMe试了一下。反出来的东东没什么区别。
雪    币: 117
活跃值: (1594)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
coolspace 2009-1-6 16:37
11
0
hex-rays对分支语句或不连续case语句,极有可能变成goto,并且反复重复。
PS:另外对delphi的try-finally结构的finally后面的语句也不能识别,自动被其忽略了、
雪    币: 204
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
whyIII 2009-1-6 16:59
12
0
突然发现拥有正版的用户不在少数,真希望哪位大牛哪天一不小心又漏出个正版安装或者pj之类的
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cjkingyang 2009-3-12 17:07
13
0
我用Hex-ray 碰到这样的问题sub_10009080    endp ; sp-analysis failed,查了是SP的问题,用alt-k改SP如何IDA重新分析,这样F5就可以用了。还有常碰到 351843721i64 是什么意思!
谢谢!
雪    币: 235
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
evilight 1 2009-3-13 12:22
14
0
正版。多少钱呀
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
shoujing 2009-3-14 10:46
15
0
看不太懂。还是支持一下。
雪    币: 3758
活跃值: (3217)
能力值: ( LV15,RANK:500 )
在线值:
发帖
回帖
粉丝
曾半仙 12 2009-3-16 19:32
16
0
不支持ARM...
雪    币: 235
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
evilight 1 2009-3-17 11:04
17
0
这是反汇编出高级语言么?太强了!
雪    币: 257
活跃值: (105)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
舵手 3 2009-3-17 11:52
18
0
俺怎么弄出来的全是很难懂的代码
游客
登录 | 注册 方可回帖
返回