|
[转帖]二战中那些雷人的战役
试试能回帖不 |
|
|
|
PE中的时间戳代表什么啊?好像不是创建文件时间吧
哈哈,在这里说是“创建时间”只怕会有歧义,这个时间记录的是你编译链接后生成这个PE文件的时间,可以被称为“创建时间”,但是Windows貌似自己又维护了一个列表,记录了每个文件和文件夹的“创建时间”,也就是写到磁盘的这个位置的时间。可以试一下把某个文件从某个文件夹拷贝到另一个文件夹,那么两个文件的“创建时间”就不一样了,但是PE里面的那个时间显然是不会变的。 |
|
|
|
[原创]内存补丁初探(C语言实现)
平时最烦读代码,刚才认真读了一遍lz的代码,居然读懂了,难得啊,哈哈。 |
|
[求助]帮忙看下这段代码的作用?是不是经常要用到的?
汗,lz对这么一个strlen函数问了至少三个帖子了。 这是vc优化出来的一个strlen函数,都是这样写的: lea edi, xxx ; 字符串首地址 or ecx, FFFFFFFF ;ecx存放字符串长度,初始化为-1 xor eax, eax ;al清零 repne scas byte ptr es:[edi] ;开始扫描,遇到0结束 not ecx dec ecx ;得到字符串长度 中间夹杂了一些其它指令,是编译器对程序进行优化时使用了交叉代码的方法,可以提高程序的运行效率,例如xor eax,eax之后紧跟repne scab的话,需要等到前一条指令执行完才能执行下一条指令(貌似这被称为数据相关,记不清了),会造成填不满cpu的流水线,影响了cpu的工作效率,中间加进去一个add esp,1C就不用等待了,可以保持流水线一直被填满,不让cpu空闲。 ok,就到这里了。 |
|
PE中的时间戳代表什么啊?好像不是创建文件时间吧
应该是链接生成时的时间吧 |
|
请教如何利用DELPHI加密SWF文件
ls运气好啊,可怜像我这种注册的晚的就只能自己奋斗了,我花了三周时间赚了100kx,然后买了一枚邀请码,呵呵。 ps:今天怎么这么怪,送分都没人接?快来个临时会员啊。 |
|
[求助]关于指令预取,请指点一下
哈哈,lz只是问一下为啥输出0……不过在3L又加了一句问cpu对跳转指令的处理,我就说了一下cpu和编译器对跳转怎么处理以提高效率的一些简单的处理方法,不过都是以前学计算机组成原理时候从各种书上找来的东西,不知现在又有什么好的处理方法了。 就当回忆复习一下呗,反正闲着也无聊,总比宿舍的同学听着音乐玩游戏好一些…… |
|
[求助]关于指令预取,请指点一下
对了,又想起来一种,好像是从奔腾才开始用的,好像是叫动态预测技术,记不清了,就是加了一个BTB,其实就是一个小缓存,记住自己上次遇到这个指令的时候是跳了还是没跳,然后按上次情况的取指。希望没记错。 不过我觉得这种方法实在有点……我觉得这种方法不怎么样,不过估计实际效果不错,因为在软件中for、while之类的循环很多,这种方法遇到这种循环效果很好。 哪位有时间的话可以去翻一下Intel的那五本恐怖的pdf,看一下有这方面的介绍没。 再次膜拜S大大,并祝S大大的头晕病早日好转。 |
|
[求助]关于指令预取,请指点一下
还有一种很牛X的方法,就是第一次在跳和不跳之间随便蒙一个,从第二次开始就蒙成功率大于50%的那个,如果跳的成功率比较大于50%那就在取指时取跳后的指令送进流水线,如果不跳的成功率大于50%那就取不跳的指令,然后再看这次蒙对了没,然后修改成功率,然后下一次遇到跳转指令……这种方法能保证成功率大于50%。 我就只知道这几种方法了,不知还有别的方法没,欢迎指正或者补充。 顺便膜拜S大大。 |
|
[求助]关于指令预取,请指点一下
[QUOTE=iEXE;778722]#include "stdafx.h" #include "windows.h" #include "stdio.h" int main(int argc, char* argv[]) { int A=10; _asm { xor ecx,ecx mov...[/QUOTE] 很显然,你在链接的时候没加/SECTION:.text,RWE,肯定报错。试一下这样编译: cl xxx.c /link /SECTION:.text,RWE |
|
已知一个网络验证的[正确/错误]返回值,如何设置为本地验证?
寒一个……最近论坛会自己给帖子内容的前后加上《p》 和《/p》,结果贴出的代码都成了一行的了……根本看不成。。。 |
|
问一个VC 简单的问题
都是先进行强制类型转换,转成(HANDLE *)类型,然后一个是将转换后的值赋值给xx,另一个是将转换后的值指向的那个值赋值给xx。 |
|
|
|
[求助]关于指令预取,请指点一下
噢,对了,我在上面忘了说了,其实还有一种最常见的方法,就是延迟转移,不过这是由编译器完成的,也就是重排指令序列,例如本来是mov xxx,xxx mov xxx,xxx cmp xxx,xxx jz xxx,但是编译器会把cmp给提前一些,提到mov的前面,当然前提是mov指令没修改cmp的操作数,这样的话执行jz的时候cmp的结果就已经出来了,就不需要清空指令流水线了,也能提高效率。这种方法在现在的编译器里很常见,经常看到cmp和Jcc之间有两条mov之类的指令。 |
|
运行中进程文件自修改问题
http://bbs.pediy.com/showthread.php?t=109232 这个帖子里lz的代码就修改了自己,唯一需要注意的就是链接时要添加参数/SECTION:.text,RWE,否则肯定会报错的。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值