能力值:
( LV2,RANK:10 )
|
-
-
2 楼
算法已知的话,如果对算法的精髓不太了解,可以写个小程序用穷举法,不停的修改这一部分中某些不重要的部分,试图吻合HASH值
如果了解算法漏洞,可以通过计算精确拟合出你需要的HASH值,比如说MD5撞车程序
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
穷举法想要碰撞出火花实在太难了。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
是啊是啊,MD5的话,不可能,CRC32的话,有点希望。
最好的办法还是分析算法,找到碰撞漏洞
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
列出算法,求达人帮忙。。。
|
能力值:
( LV5,RANK:70 )
|
-
-
6 楼
现在手机上,得玩电脑了,给你写个^_^
LX的写得很好啊^_^
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
[QUOTE=streamload;939060]自己不会编程, ,有个很简单的算法,哪位达人帮忙写个小程序,实现它。。或者写个delphi或VC++的函数来实现它。
有个文件aa.bin,以16进制形式读取它的前0x1000个字节,每4个字节为一个单位。记为aa[1],aa[2],aa[3]。。。aa[n]。以此类推。
tem...[/QUOTE]
没听说过懂算法而不懂编程的,更多的是懂编程而不懂算法....请问楼主什么职业?
|
能力值:
( LV15,RANK:670 )
|
-
-
8 楼
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE hFile = CreateFile(_T("aa.bin"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (INVALID_HANDLE_VALUE == hFile)
return 0;
DWORD hiSize;
DWORD fileSize = GetFileSize(hFile, &hiSize);
if (hiSize == 0 && fileSize < 0x1000)
return 0;
DWORD fileData[0x400];
ReadFile(hFile, fileData, sizeof(fileData), &hiSize, NULL);
CloseHandle(hFile);
DWORD tempData = fileData[0];
for (DWORD index = 1; index < 0x400; ++index)
{
BYTE b = (BYTE)fileData[index];
if (b <= 0x80)
tempData -= fileData[index];
else
tempData += fileData[index];
tempData ^= fileData[index];
}
printf("%X", tempData);
return 0;
}
BTW: 把 KX 交出来。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
[QUOTE=cntrump;941240]#include <windows.h>
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE hFile = CreateFile(_T("aa.bin"), GENERIC_READ, FILE_SHARE_READ...[/QUOTE]
用VC6.0编译有6个错误啊。。
另外,怎么没有看到异或??
还有,fileData[25],这个25,好像不对吧??0x1000/0x4=0x400吧。。
|
能力值:
( LV15,RANK:670 )
|
-
-
10 楼
[QUOTE=streamload;941274]用VC6.0编译有6个错误啊。。
另外,怎么没有看到异或??
还有,fileData[25],这个25,好像不对吧??0x1000/0x8=0x200=512吧。。[/QUOTE]
已经改过来了。
你再编译试试,如果再有错,把编译错误发出来。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
自己搞错了。。我再试试
|
能力值:
( LV15,RANK:670 )
|
-
-
12 楼
试试那么久?
不会跑路了吧?
|
能力值:
( LV13,RANK:410 )
|
-
-
13 楼
楼上,你的循环部分用取反再加,这样好像能快一些?
还有文件大小完全没必要关心,只要VirtualAlloc一块0x1000大的内存再ReadFile就行了,不足的地方全是0,不影响运算的吧?
附ASM(C/C++白痴撸过……)
xor edx,edx
lea esi,offset buffer
lodsd
mov ecx,eax
@1:
mov eax,[esi]
cmp cl,80h
ja @2
not eax
inc eax
@2:
add ecx,eax
xor ecx,[esi]
add esi,4
cmp esi,offset buffer+1000h
jbe @1
|
能力值:
( LV15,RANK:670 )
|
-
-
14 楼
文件没有 0x1000 字节, 还算个啥。。
|
能力值:
( LV13,RANK:410 )
|
-
-
15 楼
谁关心呢,简单又能用就好,反正你那个循环还不是一样算满1000h么。。。
|
能力值:
( LV15,RANK:670 )
|
-
-
16 楼
擦。我是读取了 0x1000 个字节进来的。肯定要算完了。
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
请问用ASM如何读入文件??传递文件位置指针?
能否写个完整的代码?
谢谢
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
不好意思,下午临时有事,出去了。。
试了下,结果正确。。
不过,想请问下,加入读入文件后,要在VC内联ASM代码,怎样传递文件指针来用ASM源码计算?
|
能力值:
( LV15,RANK:670 )
|
-
-
19 楼
你没有看过我的代码?
我是直接读取 0x1000 字节, 然后就关闭文件了.读进来的数据都保存在内存中.
哪里还有文件指针.
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
我是想问,假如要那样操作,要怎么写代码。。不是基于你已经写好的代码。。。
|
能力值:
( LV15,RANK:670 )
|
-
-
21 楼
附加条件不理会。
10 kx 已经给你省了 90 ub 了。
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
路过!!!!!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
只是顺便问一下啊。。。眼里只有Kx。。。哎
|
能力值:
( LV15,RANK:670 )
|
-
-
24 楼
我的态度不好,见谅。
我想表达的意思是。如果还有其他问题,欢迎新开悬赏帖。
|
|
|