![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
脱壳
fdddddddddg
dddddddd
展开
-
处理ASProtect的Advanced Import Protect的一些想法和过程(3)
目标:找到哪些地址有 call 01ba0000代码,并且进入壳中后又进入哪个API函数。1、在进入01ba0000开始处写入代码,可以很容易根据ESP中的内容得到call 01ba0000这句代码的地址;获得CALL 入地址pushadpushfdmov eax,dword ptr [esp+24]//这时EAX中就是想要的mov ebx,dword ptr [地址1]原创 2012-12-17 18:16:31 · 387 阅读 · 0 评论 -
处理ASProtect的Advanced Import Protect的一些想法和过程(1)
被Advanced Import Protect方法处理后,原来的Call [********]和JMP [********]变成call 01ba0000(在别的机器上可能不是01ba0000),面对这个困难,我也拜读过不少大牛的文章,但始终有点迷糊,个中困难不再说了;试想一下,既然是修改了调用API的代码,那么在虚拟内存中还是会走进系统DLL中的,那么在进入01ba0000中后,对几个系统D原创 2012-12-16 21:09:19 · 408 阅读 · 0 评论 -
对Advanced Import Protection的一些想法
正常情况下调用API有两种方式:call [aaaaaaaa] 和JMP[aaaaaaaa]其中aaaaaaaa这个地址中保存的是API入口地址;对Advanced Import Protection的个人理解是对前面两种API调用的变形。变形1、call bbbbbbbb其中bbbbbbbb是处于壳利用VirtualAlloc申请的内存中,call bbbbbbbb完成对API的原创 2012-12-16 21:07:44 · 367 阅读 · 0 评论 -
Stolen Code的一些想法
偷取过程中会偷入口处和中间任意处;执行被偷取的代码时还会加入花指令。偷的过程:在对Code段解密后把被偷的地方不放回去,而不是从被偷的地方直接复制到申请内存中再清00的过程。识别被偷:偷入口,执行到原始Code段时不是明显的某种语言的入口标志;偷中间,执行到原始Code段后在某处又跳转到申请的内存中执行一些代码又回来Code段。针对偷入口,识别各种语言入口标志,把偷的复制回来;针对偷中原创 2012-12-16 21:07:08 · 815 阅读 · 0 评论 -
处理ASProtect的Advanced Import Protect的一些想法和过程(2)
从1中知道,ASProtect把CALL [***]和JMP [***]变成CALL &&&&&,在内存中调用API后加到CODE段中CALL &&&&的下一句还是其他地方呢?在call入12000000内后会两次调用VirtualAlloc得到两个内存,第一个记为00dd0000,第二个为00cc0000;大小都为1000.考虑以下情况:00401000 call 4原创 2012-12-17 18:15:53 · 405 阅读 · 0 评论 -
手动修复输入表时的发现---对于IID输入表和IAT和INT对应关系及程序载入DLL
IMAGE_IMPORT_DESCRIPTOR struct union { DWORD OriginalFirstThunk; 4Byte }; TimeDateStamp DWORD ;04h 4Byte ForwarderChain DWOR原创 2013-03-11 16:25:30 · 1070 阅读 · 0 评论 -
对壳的一些理解
需要两个文件:待加壳的a.exe和加壳程序。加壳程序对a.exe文件处理后,对a.exe做的手脚也就是清除或者加密原文件的IAT和各个段(代码和数据段等),并且会在a.exe文件中新增加一些内容,这些内容可能独立的在一个新的段中,也可能在原来的段中,一般新的内容是可执行的,这些新的内容就构成了外壳程序;外壳程序的作用就是对加壳程序的所作所为“负责“,加壳程序对a.exe文件各段加密和压缩,那外壳程原创 2012-12-16 21:08:32 · 400 阅读 · 0 评论