"ExeCryptor v2.2.50.a脱壳脚本编写与修复指南"

需积分: 0 0 下载量 197 浏览量 更新于2024-01-18 收藏 1015KB PDF 举报
第55章-EXECryptor v2.2.50.a脱壳-Part21;第55章-EXECryptor v2.2.50.a脱壳-Part21;第五十四章-ExeCryptor v2.2.50.a-Part2 本章我们将编写一个脚本来修复 ExeCryptor 的 IAT。可能很多童鞋一听到脚本这个词就有一种头皮发麻的感觉。(嘿嘿),因为一般来说人家编写好的脚本通常都比较长,看起来非常复杂的样子,当然会感觉到头皮发麻撒。但是我这里换一种方法,我不是直接拿一个现成的脚本给大家,而是带着大家从零开始编写这个脚本,逐步添砖加瓦,这样大家接受起来就容易的多。 脚本的目标是修复ExeCryptor的IAT(Import Address Table)项。首先,我们需要定义一个变量table,用于作为IAT项的指针。我们将IAT的起始地址保存到table变量中。这样,我们就完成了table变量的初始化。 接下来,我们需要遍历整个IAT,判断其中哪些项被重定向了。如果被重定向了,就修复它们;如果没有被重定向,就继续遍历下一项。脚本的基本框架如下: ```assembly start: cmp [table],50000000 ja ToSkip log tab; ; 修复重定向项的代码 jmp next ToSkip: ; 继续遍历下一项的代码 next: cmp [table],60000000 jb start ``` 在这个脚本框架中,我们使用了cmp指令来比较table变量和50000000的值。如果table变量的值大于50000000,说明已经遍历完整个IAT,跳转到ToSkip标签继续遍历下一项。如果table变量的值小于等于50000000,说明遇到了被重定向的IAT项,执行修复的代码并跳转到next标签。 修复重定向项的代码是具体实现修复功能的部分,根据具体情况可能会有所不同。在这里,我们无法给出更具体的修复代码,但你可以根据具体需求和IAT项的结构来编写相应的修复代码。 整个脚本的执行流程是循环遍历IAT的所有项,判断是否需要修复,并在需要修复的地方执行相关修复代码。最后,跳转到next标签继续遍历下一个IAT项,直到遍历完整个IAT。