首页
社区
课程
招聘
[求助][求助]C++
2012-4-23 19:33 5702

[求助][求助]C++

2012-4-23 19:33
5702
v11 = __PAIR__(v9, v10)
            + v46
            + __PAIR__(((v9 >> 31) | v10) + __CFADD__(v9, v9 ^ v10) + (v9 >> 31) + (v10 ^ v9), v9 + (v9 ^ v10));

上面语句什么意思,不会C++ 翻译成delphi或者VB怎么写。
全代码如下:
v33 = (a3 - 8) / 8;
      do
      {
        v9 = *(_DWORD *)(v3 + 4);
        v10 = *(_DWORD *)v3;
        v44 ^= v9;
        v42 ^= *(_DWORD *)v3;
        v3 += 8;
        v11 = __PAIR__(v9, v10)
            + v46
            + __PAIR__(((v9 >> 31) | v10) + __CFADD__(v9, v9 ^ v10) + (v9 >> 31) + (v10 ^ v9), v9 + (v9 ^ v10));
        v8 = v11 ^ v46;
        v7 = HIDWORD(v11) ^ HIDWORD(v46);
        v12 = v33 == 1;
        v46 ^= v11;
        --v33;
      }
      while ( !v12 );
      v5 = v37;
      v6 = a3;

阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

收藏
点赞0
打赏
分享
最新回复 (11)
雪    币: 316
活跃值: (128)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
心如止境 2 2012-4-23 19:43
2
0
不会,求高人
雪    币: 183
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
windowsa 2012-4-23 20:57
3
0
强大的F5啊!!
雪    币: 136
活跃值: (399)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
yzslly 4 2012-4-23 21:51
4
0
呵呵,就是看不懂那个语句
雪    币: 297
活跃值: (225)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
evilor 2012-4-23 21:55
5
0
结合反汇编看看能不能判断出局部变量或参数的变量类型或是结构啥的再去理解,单看这个,我艹这特么是啥
雪    币: 87
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Yanisar 2012-4-23 22:07
6
0
能读懂相关的运算,但是不知道程序想干嘛。。。
雪    币: 136
活跃值: (399)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
yzslly 4 2012-4-23 22:38
7
0
__PAIR__是什么意思
__CFADD__应该是相当于汇编中的adc
雪    币: 144
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
codexploit 2012-4-23 22:41
8
0
__PAIR__ 经常看见。。。好像是和64位数有关
不知道对不对
雪    币: 185
活跃值: (79)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
蛋蛋的蛋 2012-4-23 22:45
9
0
这代码。。看得真蛋疼。
就这么一点也不知道是要干嘛的
雪    币: 87
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Yanisar 2012-4-23 23:08
10
0
感觉贴出来的代码还是不够多呀
我查了一下几个东西
#define HIDWORD(x) (*((_DWORD*)&(x)+1))

关于__PAIR__
This class couples together a pair of values, which may be of different types (T1 and T2). The individual values can be accessed through the public members first and second. The class is defined as: template <class T1, class T2> struct pair { typedef T1 first_type; typedef T2 second_type; T1 first; T2 second; pair() : first(T1()), second(T2()) {} pair(const T1& x, const T2& y) : first(x), second(y) {} template <class U, class V> pair (const pair<U,V> &p) : first(p.first), second(p.second) { } }
代码多点,应该还是能够读懂的
雪    币: 17
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
livecto 2012-4-24 02:03
11
0
function __PAIR__(High, Low:DWORD):Int64;
begin
  result := (High shl ( sizeof(High) * 8) ) or Low;
end;

function __CFADD__(V1, V2:DWORD):DWORD;
begin
  result :=  V1 + V2;
end;

v11 = __PAIR__(v9, v10)
            + v46
            + __PAIR__(((v9 shr 31) or v10) + __CFADD__(v9, v9 xor v10) + (v9 shr 31) + (v10 xor v9), v9 + (v9 xor v10));
雪    币: 136
活跃值: (399)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
yzslly 4 2012-4-24 08:49
12
0
谢谢,我试下。
游客
登录 | 注册 方可回帖
返回