TC官方合作论坛
标题:
为什么获取自身大小跟属性查看的大小不一样的?
[打印本页]
作者:
tobydu
时间:
2014-8-5 09:42
标题:
为什么获取自身大小跟属性查看的大小不一样的?
我用R大的代码获取本身的大小
hFile=window.getmyhwnd()
hHeap=dllcall("Kernel32.dll","int","GetProcessHeap")//此行以及以下一行为:分配内存,因为GetFileSize第二个参数要传整型指针,所以我们自己分配一块4字节的内存区域,首地址当作指针给API.
lpFileSizeHigh=dllcall("Kernel32.dll","int","HeapAlloc","int",hHeap,"int",0,"int",4)
FileSize=dllcall("kernel32.dll","int","GetFileSize","int",hFile,"int",lpFileSizeHigh)//得到大小.返回大小低字节,第二个参数为指针,指向存放文件大小高字节的内存区域.
FileSizeHigh=进程.读4byte(-1,lpFileSizeHigh)//这里也可以换成ReadProcessMemory,因为需要的功能比较简单就用自带的API吧.
dllcall("Kernel32.dll","int","HeapFree","int",hHeap,"int",0,"int",lpFileSizeHigh)//释放分配的内存区域.
FileSize+=FileSizeHigh*256//"组合"成真正的文件大小.
help.messagebox(FileSize)
这里显示是4M多,但是在windows看文件的大小才3M多,为什么?小白一个,请教各位大神
作者:
tobydu
时间:
2014-8-5 11:17
如果我想得到文件大小来检测我的辅助有没有被动过手脚,应该怎样做?
作者:
如此美丽。
时间:
2014-8-5 14:20
http://bbs.tyuyan.com/forum.php? ... 6%E5%A4%A7%E5%B0%8F
作者:
如此美丽。
时间:
2014-8-5 14:23
.. 一般只有脱壳才会被变动大小 .. 假如把 jnz 给你改成 jmp 之类的手段 或者是等长度的修改 也不会变动大小
楼主可以采用二进制打开自身文件 并用CRC效验 写入自身文件尾的后八位或其他空白地方
作者:
b44412545
时间:
2014-8-5 14:31
如此美丽。 发表于 2014-8-5 14:23
.. 一般只有脱壳才会被变动大小 .. 假如把 jnz 给你改成 jmp 之类的手段 或者是等长度的修改 也不会 ...
以前用MD5,结果最近网上看见大神现场复制MD5到另一个文件,艾玛吓尿了
作者:
tobydu
时间:
2014-8-5 16:02
看来这个方法没用了谢谢
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1