|
[求助]如何删除上网取证系统中的上网痕迹
真能瞎掰 这个是自虐狂——在电脑知识方面的无知造成的自我幻想被迫害狂、自我幻想被虐待狂 硬盘上存储的数据确实都是铁磁物质,但是只要原来需要的二进制数据存储的位置被新的数据所代替,恐怕只有坐上时间机器的头等舱赶回去,才可能挽救回来。 分区、格式化只是重建主扇区、文件系统、根目录...,硬盘上其它地方的二进制数据还在,这就是为什么数据恢复软件对这些情况可以起作用的原理。 格式化后重装系统,那么新的系统文件所在的区域的数据,根本就没有办法可以找回来了,因为那些数据已经全部被覆盖了。但新的系统文件没有覆盖的区域,比如非系统盘的属于其它逻辑分区的数据,找回数据的机率就很大很大。 要想数据永远消失,对整个硬盘来一次清零就可以了。 常常自我幻想被迫害,不如常常老实老实学点电脑知识来充实自己。 |
|
[讨论]一种以字节为单位的查表加密算法,请大家分析一下其强度如何?
古典密码时代Vigenere算法的一种变形。 是一种原始、简单地的置换算法,置换表是行256、列256的矩阵, 明文决定密文所在的列,密钥决定密文所在的行,密文取行首的字节。 |
|
[讨论]用Flair做VC静态库libcmt.lib的.sig(函数签名文件)
------------------- 我觉得可行的做法是:把libcmt.lib 解为很多个obj,在用依次用pcf命令生成.pat文件,最后再用sigmake 一次生成.sig文件 ------------------- 我的基本思路也是如此。 希望你能做出这样的工具,可以把libcmt.lib中的所有.obj都提取出来。 ar.exe没有成功,ar2idt.exe没有成功。 我现在没有动力和时间做这样的工具。 希望你可以做出来,贡献社区。 |
|
[讨论]用Flair做VC静态库libcmt.lib的.sig(函数签名文件)
《补充》 因为.lib文件的文件类型是Unix Archive,可以调用ar来查看。ar命令是集成在Unix Shell中的。如果你是windows的操作系统,需要在Mingw下查看。命令行为 ar -t "c:\\libcmt.lib" 在我机子上显示为 build/intel/mt_obj/_ctype.obj build/intel/mt_obj/_fptostr.obj build/intel/mt_obj/_mbslen.obj build/intel/mt_obj/_wctype.obj build/intel/mt_obj/atof.obj build/intel/mt_obj/atox.obj build/intel/mt_obj/fcvt.obj build/intel/mt_obj/gcvt.obj build/intel/mt_obj/isctype.obj ... 太多了,大概有七百个文件。 ----------------------引用 VC多线程静态库.obj文件,主要(!)在C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\crt\src\intel\mt_lib里面 ----------------------引用 这里确实是说错了,原因是我没有仔细核查原文件。MS对于文件类型的扩展还没有公开的文档描述。 这几百个文件只有一小部分(!)是以独立的(!)方式存储在下面的文件夹中。 C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\crt\src\intel\mt_lib 至于其它的文件? Unix中的.a确实集成了它所声明的所有.obj文件,但MS中的.lib我仍存疑,我的推断:有的集成了.obj,有的没有集成.obj,或有的只集成了一部分.obj。 请仔细检查libcmt.lib,来努力推翻我。 |
|
[讨论]用Flair做VC静态库libcmt.lib的.sig(函数签名文件)
IDA语境中的LIB文件是VC语境中的.obj文件,不是VC语境中的.lib文件 VC语境中的.obj文件是COFF文件类型,.lib文件是Unix Archiever文件类型(!)。 而VC多线程静态库.obj文件,主要(!)在 C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\crt\src\intel\mt_lib里面 |
|
[求助]新手求助一个简单的汇编语言问题
如果100是100h的笔误的话,上面这段代码可能会出现错误的运行结果。 因为没有考虑到源代码段和目标代码码后面重叠的情况 考虑到效率和重叠的情况,应该这样 ------------------------------<code> mov esi, 1100h mov edi,1170h mov ecx,40h std rep movsd ------------------------------</code> 当然,做一个实际可适合任合情况的memcpy()比这段代码远远复杂的多。 |
|
[求助]小问题,关于ida pro在执行中修改代码
就我所知,IDA在程序执行时修改代码的方法 程序内 (1)执行IDC脚本 (2)直接执行IDC函数,这个是最直接的方法 PatchWord(), PatchByte(), PatchDword() (3)IDA插件 程序外 (4)十六进制编辑工具,WInHEx等 第2种方法算是最直接的方法,当然与olly比起来,还是显得麻烦。 PatchByte(ScreenEA(),0xCC); |
|
[求助]TEST与JG、JL的配套使用
jg确实可以用于有符号数的比较,但其实它也可以用于其它情况。在此处,是用来判断有符号数cx是否大于零。因为jg指令本身的逻辑是看是否满足标志位ZF=0, SF=OF。 因为test本身指令的特点,不可能溢出,所以OF始终为零。 所以:如果有符号数CX大于零则跳jg,如果有符号数CX小于零或等于零,则不跳。 |
|
[求助]如何让 VS2005 编译exe后,不出现 .rsrc 区段
可以直接调用cl.exe, link.exe完成你要求的任务。 |
|
[原创]如何手工计算0x31333134的CRC-32值?
我确实就是想回答你的问题。但在写文章计算到一半时,发现我计算的是C型字符串"4131",而不是你要求的"1314",就是说我计算的是另一个字符串。但只要你根据我的文章的思路,慢慢地算,你也会找到答案。 文章中已经加入"1314"的计算过程,欢迎纠错。 |
|
[原创]PE文件格式学习小结 之 校验和的计算
Hume有一处笔误,也被你不客气地复制粘贴了。 最后和将该累加和同文件实际大小进行adc运算即得到校验和的值。 -> 最后和将该累加和同文件实际大小进行add运算即得到校验和的值。 |
|
|
|
[求助][新问题]用OD载入显示格式错误.未知格式.怎么继续
------引用 LS的能不能把修复好PE头的文件传一下,或者简单的介绍下这个怎么修复? ------引用 我也没有修复,也没有脱壳,只是跟了一小段程序而己。 使用的工具是IDA。 每一个壳的VM都不会一样。 跟一小段程序,你就会发现这个壳在大量垃圾代码中频繁进入PeP VM,处理虚拟化指令,如此而已。 |
|
[求助]一个未知壳脱后?
很像是Delphi程序的OEP |
|
[分享]Debug<<软件加密技术内幕>>--<<软件加密技术内幕>>读后感三篇
不可靠! 《色戒》: 女人不可靠 《苹果》: 男人不可靠 《投名状》:兄弟也不可靠 《集结号》:组织更不可靠 《windows》 所有节名通通不可靠,要看节的属性或数据目录 CODE, DATA, BSS,这些节名不可靠,要看节的属性 TLS, RSRC节名不可靠,要看数据目录中相关表项 VirtualSize不可靠, SizeOfRawData总可靠 计算VirtualSize,最好用(Next VirtualAddress - Current VirtualAddress) ---------------------引用 “”“我试着将'CODE','DATA'区块表的Misc.VirtualSize清零,程序仍然可以正确加载,因为这时有用的是SizeOfRawData 字段的值.但是只靠SizeOfRawData字段也是不可靠的,因为对于'BSS','.tls'区块来说,SizeOfRawData字段值为0,而这时Misc.VirtualSize便起到重要的作用了.所以仅仅只靠这两个字段中的一个是不够的,要配合起来使用,如: ---------------------引用 VirtualSize之所以能清零,是因为loader在验证程序是否合法时,当VirtualSize小于SizeOfRawData时,VirtualSize取SizeOfRawData,在你的程序中,碰巧,SizeOfRawData满足下面的公式。 不管怎么样,在对齐后,VirtualSize必须等于Current VirtualAddress - Next VirtualAddress,否则出现错误提示对话框。 这也解释了你得出的结论之一:SizeOfRawData取零时,VirtualSize可靠。 |
|
|
|
|
|
|
|
[求助]运行期间解密出来的算法,要怎么取出来?
为什么IDA不能分析? //因为是运行期间生成的代码 运行期的代码也可以分析 有的程序为了anti,当然会每次都会变化虚拟内存内的文件装载基址,你得先找到分配内存的地方,使基址每次都固定下来。比如我见过有程序用随机数分配无用的内存,当然随后分配的内存的基址会变化。那么你可以将这个随机数固定成0x0(有前提的)。 跟下去把算法记录下来 //一次性把代码跟下来?子函数太多太复杂几乎完成不了 每重新跟一次 指令会变化 想继续分析,最关键的问题还是找清楚同一内存地址处的指令为什么会变化的原因。 同一机器上,程序没有什么花样的话,一般不会有变化。 很多人都不清楚的小技巧:IDA中将用虚拟内存分配的节Segment的属性"Debugger Segment"取消,会将虚拟内存中的节保留在数据库中。 -> 很多人都不清楚的小技巧:IDA中将用虚拟内存分配的节Segment的属性"Debugger Segment"取消,会将虚拟内存中的节的数据、用户和程序自动分析的结果都保留在数据库idb中。 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值