相关服务

  • 《黑客×档案》2007年第1期摘录:因为自解压文件的代码结构比较紧

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

因为自解压文件的代码结构比较紧甯,所以我们需要添加一个新的区块,可以使用zeroadd添加,也可以使用LordPE来构造,个人认为使用zerOadd就足够了。区段名可以随意,大小填lO0就够了,一定要选择备份哦(图3)。单击“Addnewse(:tion!”添加,成功的话会出现如图4所示的提示框。修改好后运行一下试试,提示“压缩文件格式未知或已经损坏”,现在就要用到备份的文件了,使用wINHEx打开备份文件和添加区段后的文件,在备份文件中查找l6进制5261722llA07(为什么?因为这是文件头),从此处开始选取至文件结束,按CTRL+c复制,将其复制到添加区段后的文件的末尾,如图5,保存并关闭,再次执行文件测试,可以正常解压了。图5使用LordPE打开文件,点击按钮“块”,可以看到新添加块的虚拟偏移量在20O00(图6),因为文件的基址是400000,所以新块的虚拟地址是420000,关闭窗口,使用O】】ydbg反汇编打开制作好的RAR自解压程序,打开后0D停在40l000处(图7),可以看到程序一上来就是一个变形的jmp(caII)。图6篓瓣[圈羔≯黼篡三。。…;,掣黑?004n1006L.E8n7220100call<1mD.&HFRHEL32.ExltP……>L}H….,小知识:变形lJMP图7~9o一…CAOL和J删争都可以实现跳转的功能,有的程使腮@霞LJL来代替0Mp域干扰逆向工程分析人员线i奁别是否力燮形J融矿的一个简单方法是此较的黟标地址和当前地址,如果两者离的很近,i霜£是变形JmP誊。h~~“……*¨………Nw*………~。序会的视callI一般我们现在拖动滚动条向下走,到41324O处可以看到一大堆的JMP,继续向下找跳往这几个函数及其地址(小编:在windows2003的系统上测试找到的地址和文中是不同的):地址和函数名记下后,我们按CtrjfG转到420000处开始编写代码,因为在调用uRLD0w11loadTol_jlcA和winExec时需要用到八个字符串,我们邮需硬在这里添加上。在420000处点击右键菜单,选抒“.逊制”,“编辑”(图8)。在编辑对话榧里输入你要下载的文件的uRI。,我下载的是图片,个头小便于测试.不要选择“保持大小”(图9),点击确定后,代码窗口变成了乩7玛(图l()).不用管它们,空开一行,在420031处重复t述步骤,输入存放的路径和文件乞,我输入的是“c:、、1.exc”,同样不要管乱码问题,在420—03B处输入’芋符串“ur】In011.m】’‘,在420047处输入字符串“URIJi)ownl()a(1ToFilcA”.在42005F处输入字符串“nlsvcrt.d¨”,舀i4:2006~)处输入彳箭串“be刚ntllread”,在42007b处输入。j,。菏串“WinExec”,在420085处输人字衍串“KEI{NEL32.(1}r接下来,我们礼42O093处计始写执行代码,第一段代码和解释如F:

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