Mo cuishle

导航

2014年3月31日 #

浅谈壳的加载步骤及手动脱壳(转载)

摘要: 作者:不详 文章来源:不详 更新时间:2005-8-21 现在玩脱壳的人越来越多了,不知道是好事还是坏事。 现在玩手动脱壳一般三样工具足矣:loader,ImpREC,TRW2000。也许是这三剑客的功能太强大,因此手动脱壳也变得象流水化作业。大致以下几个步骤就搞定了。1)loader找OEP.(OEP就是程序原来的入口点,即Original Entry Point)2)TRW2000来Dump。也就是把内存映象保存为文件。3)ImpREC修补Import Table.(也就是修补程序原来的API地址) 不过如果这样,那么我想手动脱壳也没有必要了,因为更先进的工具如各种脱壳机会更快捷有效。.. 阅读全文

posted @ 2014-03-31 09:54 Mo cuishle 阅读(382) 评论(0) 推荐(0) 编辑

2014年3月30日 #

IDA反汇编深度总结(转载)

摘要: 1,[eax]的歧义(其中eax指向SourceString):到底是*SourceString还是SourceString所处的结构的第一个偏移的结构。这个应该根据语境来,比如[eax]赋给的值的结构和第一偏移结构匹配,就是后面一种可能;反之就是第一种可能。2,IDA翻译的代码不一定是完全正确的,比如入口函数它会翻译为DriverEntry(int,PUNICODE_STRING SourceString)。所以翻译的时候还是要坚持原则,能肯定的就不一定非要完全照抄IDA的结果。3,PUNICODE_STRING和UNICODE_STRING的选择:如果出现DiskperfRegistryP 阅读全文

posted @ 2014-03-30 15:16 Mo cuishle 阅读(3993) 评论(0) 推荐(0) 编辑

2014年3月26日 #

BOOL和bool的区别(转载)

摘要: 一、1、类型不同BOOL为int型bool为布尔型2、长度不同bool只有一个字节BOOL长度视实际环境来定,一般可认为是4个字节3、取值不同bool取值false和true,是0和1的区别BOOL取值FALSE和TRUE,是0和非0的区别二:bool是标准C++数据类型,可取值true和false。单独占一个字节,如果数个bool对象列在一起,可能会各占一个bit,这取决于编译器。BOOL是微软定义的typedef int BOOL。与bool不同,它是一个三值逻辑,TRUE/FALSE/ERROR,返回值为>0的整数为TRUE,0为FALSE,-1为ERROR。Win32 API中很 阅读全文

posted @ 2014-03-26 11:14 Mo cuishle 阅读(243) 评论(0) 推荐(0) 编辑

2013年11月6日 #

汇编中的call和ret

摘要: 反汇编经常看到的CALL指令的基本格式如下:CALL 地址1功能:调用地址1处的子程序CALL指令分为两种情况,一种是段内转移;另一种是段间转移。(这里的“段”指PE文件的.text,.data映射在内存中以虚拟地址的方式呈现)在CALL指令进行的是段内转移的情况时,跟在CALL后面的地址1为一个相对位移;而CALL指令进行的是段间转移的情况时,跟在CALL后面的地址1为一个绝对内存地址。段内转移的CALL指令等价于两条指令: push eip jmp 目的位置RETN指令用于从段内转移CALL进的子程序中返回: RETN 操作数 (等价于一条指令:POP eip,然后执行ESP=E... 阅读全文

posted @ 2013-11-06 17:31 Mo cuishle 阅读(847) 评论(0) 推荐(0) 编辑

2013年11月5日 #

Test

摘要: #include int main(int argc, char *argv[]){ printf("Hello, cnblogs!\n"); return 0;} 阅读全文

posted @ 2013-11-05 23:11 Mo cuishle 阅读(131) 评论(0) 推荐(0) 编辑