相关服务

  • 《黑客×档案》2007年第6期摘录:日04051FlInn4日S1

如发现有乱码,请点击下面链接浏览原文
正文摘录:

日04051FlInn4日S1F5004051F7B04851FC884051FE00405200558BECB9050080006日n06n0049pu5hebpmoueup,espmovecx,5Dush0push0dececx图1O按F4,让程序运行到选定位置,即004051F4那里。然后按F8继续往下单步执行程序,当执行到00405228E83BFFFFFFcallSe,up.00405168时瑞星又弹出如图7所示的对话框,说明子程序A又调用了一个子程序来产生临时文件,就叫它子程序B吧。重新运行程序,然后来到子程序B那里,如图ll。0卫1051680王lB51690缸0516B040S16D040S16E0耳aSl70558BEC6R005333C055pu5hebpmOVeDp,esppush0pushebxxor’eax,eaXpushebp图11还是按照刚才运行子程序A的方法,先按F4,再按F8单步运行子程序B,看看是子程序B的哪条指令产生了临时文件。往下执行了几行后,我发现是0040518EE8c1FFFFFFcallsetup.00405154这句产生了临时文件。原来子程序B又调用了一个子程序C……真是无穷无尽的调用啊,如果再这样讲下去估计菜鸟们就该晕了,我也难免有骗稿费的嫌疑,所以最后直接把结论写出来吧:主程序…子程序A子程序B一子程序C子程序Dcallesi。子程序D的最后几句如下:esi是一个寄存器,当子程序D执行到callesi时,esi的值为1000lb60,如图12。意思是调用位于1O001b6O处的子程序,而1000lb60已经不属于Setup.exe在内存中的地址,所以我们已经找到Setup.exe中产生临时文件的罪魁祸首了,那就是子程序D里的callesi这条指令!EnX秘嚣8秘1860EeX秘疆秘秘8101EDXFFFFFFFFE8X秘园12FF3eESP秘嚣12FF’8EBP19秘秘秘00秘ESl1尊001860EDI10秘8嵇00秘图12产生临时文件的根源找到了,接下来该修改一下代码让服务端运行时不产生临时文件。先N0P掉0040432E试试,双击O()40432E,在弹出的窗口中写nop然后点汇编,如图I3。记得在“使用NOP填充”前打勾。然后选中刚才的两个nop,右键单击,点击“复制到可执行文件”“+选择部分”,如图l4。在弹出的新窗口的黄色部分右键单击,点保存文件,如图l5。图13图14图15我保存为了n0p.exe,双击运行后弹出程序错误的对话框,如图16。图16看来别人的代码不是随便就可以改的啊。那该怎么办呢?就在我陷入迷茫准备放弃之时,一条指令映人我的眼帘:0040432774OFjes110r’tsetup.00404338,如图l7。04口43日48山30404394043d484304a43040h3040430404385F6740Fj6日n0I6n01I55lFFD6l85C9;7404lC6430S9testesi.esi{eshin。tm3.00404338push0Dush1pushebpcallesitesteax,eax1eshot‘tm3.00404338moubuteptr。ds:【ebx+1日】,1OOOecx图17如果程序在00404327处跳到00404339处的话,临时文件不就不会产生了吗?嘿嘿,该怎么改昵?聪明的读者一定想到了吧。对,把je改成jne(或者jnz),这样跳转的条件就成立了!修改后保存。双击运行后成功上线,瑞星再也没有弹出那个烦人的小框框。到此,免杀的服务端就全部做好了,如果你还嫌不够完美的话可以再加花加壳,我简单测试了几个壳,发现只有加了MaskPe和AcProtect的壳可以正常上线。(本文所涉及到的Evjl0tus1.5.2、pe_口、up×.exe、Restorat0r2007、Myc:叭c52asm和Ollydbg已收录到光盘中)墨麟鬻戮攀

阅读此文(图):   点击此处在线翻阅