07 2012 档案

摘要:typedef struct _IMAGE_THUNK_DATA32 { union { PBYTE ForwarderString; PDWORD Function; DWORD Ordinal; PIMAGE_IMPORT_BY_NAME AddressOfData; } u1;} IMAGE_THUNK_DATA32;对于OrdinalFirstTunk有两种情况,Ordinal和AddressOfData,如果OridinalFirstThunk(是RVA还得转成RAW)指向的DWORD数据的最高位是1的话,表明是... 阅读全文
posted @ 2012-07-25 00:49 shremie 阅读(362) 评论(0) 推荐(0)
摘要:改了改输出格式,之前的那个格式太乱了,今天改了改,发现不会控制输出格式啊。好看多了哈。Export Directory RVA:0x00000000 SIZE:0x00000000Import Directory RVA:0x000EBD7C SIZE:0x00000140Resource Directory RVA:0x000FC000 SIZE:0x00013BE4Exception Directory RVA:0x00000000 SIZE:0x00000000S... 阅读全文
posted @ 2012-07-24 23:28 shremie 阅读(277) 评论(0) 推荐(0)
摘要:这东西很多人都已经写的不想写了,对于我来说,才是第一次啊现在已经完成了IsPeFile(判断一个文件是否为PE文件) ,ShowPeInfo(显示出IMAGE_DOS_HEADE\IMAGE_FILE_HEADER\IMAGE_OPTIONAL_HEADER的各个成员的值),RVA2Offset(相对虚拟地址转化为文件偏移),PrintfImportTable(打印处输入表的信息)写的过程中出现问题比较多的是忘记转化指针,导致输出的内容完全乱七八糟。下面贴一段RVA2Offset的代码,写的不好,求指点。DWORD RVA2Offset(LPVOID lpAddress,DWORD RVA){ 阅读全文
posted @ 2012-07-22 00:51 shremie 阅读(406) 评论(0) 推荐(0)
摘要:今天心血来潮,想看下FFI是怎么判断一个EXE加的什么壳的,流程到底是怎样的呢?很明显的一点就是FFI最后是要把结果显示出来的,所以我们可以尝试下段SetWindowText函数,然后看栈中的数据,如果有MD5 ASPack等字符出现的时候那么说明判断壳流程的那个函数就在附近,根据这点就能找到关键代码了。我这里的是00410830。找到之后略微跟踪了下,不小心把特征码的结构给看出来了,无心插柳啊。跟踪的过程中在内存数据区发现了很多特征码的结构。现在就列出ASPack v2.12的特征码结构。00D80970 02 00 00 00 8C 09 D8 00 A4 09 D8 00 AC 09 . 阅读全文
posted @ 2012-07-20 02:08 shremie 阅读(358) 评论(0) 推荐(0)
摘要:stc是set carry flag的简写,它会设置CF标志位为1,stc一般与jb指令配合相当于一个jmp。clc是clear carry flag的简写,它会清零CF标志位,cls指令一般与jnb指令配合相当于一个jmp。这两个指令我壳中见的比较多。 阅读全文
posted @ 2012-07-17 14:47 shremie 阅读(152) 评论(0) 推荐(0)
摘要:最近研究asprotect的壳,真是我的一块心病啊,这asprotect,真心不好搞。01280253 68 26AE4500 push 45AE26 ; 40152401280258 66:9C pushfw0128025A 52 push edx0128025B 035424 18 add edx, dword ptr [esp+18]0128025F C1DA E7 rcr edx, 0E70128... 阅读全文
posted @ 2012-07-17 01:45 shremie 阅读(427) 评论(0) 推荐(0)
摘要:收信地址为:173.252.194.248:1000,盗取的账号和密码发送的格式:ID=92|账号|密码刚又看了一个盗qq的,用的技术还是FakeQQ,收信地址为:http://173.252.1240/wj/user/mail.asp?ID=143-账号-密码100.bbaiduu123.bbaiduu123.com 阅读全文
posted @ 2012-07-15 05:22 shremie 阅读(233) 评论(0) 推荐(0)
摘要:一边分析样本,一般在土豆听歌,突然没声音了,一看网页,原来是502 Bad GateWay错误信息如下502 Bad GatewayThe proxy server received an invalid response from an upstream server. Sorry for the inconvenience.Please report this message and include the following information to us.Thank you very much!URL:http://www.tudou.com/programs/view/67VC0 阅读全文
posted @ 2012-07-14 13:50 shremie 阅读(471) 评论(0) 推荐(0)
摘要:从卡饭弄到一个样本,虚拟机中跑了下,发现是个消息溢出工具,能够使窗口程序进程莫名崩溃。想看下实现原理,一看是vb写的,想当初就最怕遇到vb的和易语言的程序了,相当蛋疼,汇编代码又臭又长,这几天研究了下VB的程序,发现也不是那么难。在FindWindow下断点,很快就找到了关键点。程序中用的是PostMessage,实际上经过我的测试SendMessage也是可以的,自己用vc6写了一个,成功实现。只是不知道程序为何崩溃,真正的原因是什么,有时间调试下。 阅读全文
posted @ 2012-07-13 14:28 shremie 阅读(255) 评论(0) 推荐(0)
摘要:1.VB的程序从入口点从进入了VBVM60.DLL中的ThunRtMain之后就不知道什么时候回到主模块中,让人很是费解,实际上在VBVM60.DLL中有段专门计算返回到主模块地址的代码。红色部分为HEX特征码。733BAE5A 8B7C81 0C mov edi, dword ptr [ecx+eax*4+C] ; 这里是计算地址的733BAE5E 57 push edi ; 对取得的地址检测所有要跳转到主模块的地址都会经过这里,其中的edi就是要跳转的地址,也就是自定义函数... 阅读全文
posted @ 2012-07-13 10:06 shremie 阅读(2161) 评论(0) 推荐(0)
摘要:白加黑,所谓白加黑就是用第三方的软件的某个模块实现加载,而这个模块是完全没毒的,而且还有数字签名,该模块会加载dll文件,我们写一个恶意的dll,这个dll导出那个模块需要的函数。典型的,就是暴风影音的升级程序。BaofengUpdate.exe会加载目录下的Update.dll中的RunUpdate函数。所以我们自己写一个Update.dll并且导出RunUpdate函数即可。盗号的流行方法一个主EXE,另外一张XXX.JPG,这张jpg是特别处理过的,在图片的末尾追加了一些shellcode,或者追加一个加密过的PE文件,而你用图片查看软件查看的时候能却是能显示出来一张图片,主EXE负责把 阅读全文
posted @ 2012-07-12 22:58 shremie 阅读(635) 评论(0) 推荐(0)
摘要:00402183 68 60214000 push 0040216000402188 B8 00124000 mov eax, <jmp.&MSVBVM60.DllFunctionCall>0040218D FFD0 call eax而00402160地址处的数据如下00402160 FC 20 40 00 50 21 40 00即004020FC 这是模块的名字,00402150 这是要调用的函数的名字。 阅读全文
posted @ 2012-07-12 14:12 shremie 阅读(373) 评论(0) 推荐(0)
摘要:分析某样本的时候我发现此样本中某函数是通过重定位表获取SSDT表RVA的,其中某段代码会检测ntkrnlpa.exe IMAGE_FILE_HEADER中的chracteristic是否有relocation stripped属性,如果有则直接返回。据此,我们是否可以把ntkrnlpa.exe添加上relocation stripped属性,添加上这个属性的话,该文件的checksum值肯定会变化,还得刷新下checksum值。然后注册一个关机回调,等到关机的时候再把ntkrnlpa.exe的relocation stripped属性去掉,把原来的checksum值写入。 阅读全文
posted @ 2012-07-12 10:31 shremie 阅读(188) 评论(0) 推荐(0)
摘要:先转载下某个博客园网友的文章,这里表示下感谢。http://www.cnblogs.com/hhuai/archive/2010/03/01/1675389.html////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////网上其实有很多介绍ssdt还原的文章,看起 阅读全文
posted @ 2012-07-12 09:50 shremie 阅读(961) 评论(0) 推荐(0)
摘要:一个程序如果用普通的加壳程序处理之后,脱壳之后的程序应该和原来的程序是一模一样的,压缩壳普遍都是这种情况,但是对于某些加密壳来说有入口点保护的功能,会把你原本程序的入口点的代码改变,同时在其中加入一些垃圾代码,导致你脱壳后的入口点代码和未加壳程序入口点代码是不一样的,但是不影响程序的结果,相当于把你入口点的代码给变形了。某个vb程序用asprotect 加壳之后用脚本顺利到达入口点处,我们看下入口点的代码01140253 68 26AE4500 push 45AE26 ; OEP01140258 66:9C ... 阅读全文
posted @ 2012-07-12 01:08 shremie 阅读(386) 评论(0) 推荐(0)
摘要:一直以来用的最多的就是wikipedia了,今天在搜索的过程中发现还有个wikitionary,不错,有音标,有发音,解释也专业。 阅读全文
posted @ 2012-07-07 15:39 shremie 阅读(865) 评论(0) 推荐(0)
摘要:驱动文件在编译时会按照某种算法把这个文件的checksum值写入到PE头中,在加载sys文件的时候,系统会按照这种算法计算一下这个sys文件的checksum值,把结果和PE头中的checksum比较,相等则加载成功,反之则加载失败。下面是我最近分析过的一个样本的某段代码:释放的sys文件末尾被追加了随机数据,如果加载的话,操作系统计算该sys文件的checksum值和该文件pe头中的checksum值肯定不一样,必然会导致加载失败,所以在释放了sys文件之后,自己计算checksum值,把这个值写入到PE头中,这样才能保证sys加载成功。我们自己可以测试一下,用FFI打开随便一个sys文件, 阅读全文
posted @ 2012-07-07 12:51 shremie 阅读(303) 评论(0) 推荐(0)