脱壳+破解

    技术2022-05-19  21

     

    一.ASPack脱壳

     首先用peid查壳

     

    这是一个ASPack壳。然后用Ollydebug运行文件。

    F9 运行

    OEP(RVA)=1000h

    运行LordPE,dump镜像。

    然后运行ImportREC,在OEP内填入1000h,然后点自动查找IAT

    点“获取输入表”。

    打开无效函数,右键“剪切指针”。然后“修复转存文件”。

    再用PEID查壳。

    壳已经脱掉了。

     

    二.破解:

    Ollydebug载入脱壳后的程序,F9运行。

    点击CD Check,弹出窗口。

    右键Ultra String Reference->Find ASCII.。

    双击error finging cdrom.。

    je shory dumped_.0040121D为关键跳,call <jmp.&kernel32.GetDriveTypeA> 为关键call。

    F2在关键call处下断点。F9运行。点 CD Check程序在004011FC处断下来。

    F7进入函数。F8单步运行。当函数返回时 发现 eax=00000003,而下面的比较语句是

    cmp eax,5 je shory dumped_.0040121D 因此此时不会跳,弹出” error finging cdrom”

    分析可知,解决方法可以有2种:

    1.修改比较语句为: cmp eax,3

    2.修改跳:jmp shory dumped_.0040121D

    我以修改跳为例。

    右键->复制到可执行文件->选择。

    右键“保存文件”。运行文件。

    单击“CD Check”弹出窗口。

    这个CrackMe就破解了。

    三.直接破解加壳的文件。

    如果文件没有脱壳直接破解,用以上2种方法都不行

    这时可以使用软件HzorInline直接破解。

    选择要破解的文件。在Choose packer module下拉菜单里发现这软件可以破解以下的壳

    这个文件为ASPack壳,软件自动选择“aspack.dll”。然后单击“Execute”分析。

    在 ADD HERE YOUR PATCH STRING下面填入要修改的代码。

    发现00401204代码从74->EB

    代码如下:

    P,00401204,EB

    单击“Generate code to use in your project”保存文件,文件的后缀为.asm 格式。

    然后单击“Patch the PE file”

     

    运行文件。单击”CD Check”。

    这样,可以直接在加壳的文件中进行破解。

     

     


    最新回复(0)