ollyScript脱壳脚本 for AHpack(0.1)[-]
来源:互联网 发布:淘宝优惠券群怎么加人 编辑:程序博客网 时间:2024/05/22 15:45
前言
继续做脱壳练习.
AHpack(0.1)[-] 是压缩壳, 手工用ESP定律完成脱壳.
尝试用ollyScript模拟手工脱壳, 试验完成了.
如果是那种步骤比较繁杂的脱壳任务, 用脚本完成脱壳, 那性价比应该蛮高的.
记录
// @file ollyScriptDump_AHpack(0.1)[-].txt// @brief ollyScript脱壳脚本 for AHpack(0.1)[-]var vEIP // eip值var vEP // EP值var vESP // ESP值var vEspValue // [ESP]的值var vImageBase // ImageBase值, 用于计算ImpREC填写的OEP值var vImpRecOEP // 在ImpREC中填写的OEP值var vPeNameDumpTo // 脱壳后的PE名称, 不要加路径, 和被脱壳程序在同一目录var vTmp mov vPeNameDumpTo, "dumpByOllyScript.exe" LCLR // 清除Script日志窗口内容 bc * // 清除所有F2断点 BPHWCALL // 清除所有硬断点 eval ">> task begin ..." log $RESULT eval "ollyScript version = {$VERSION}" log $RESULT mov vEIP, eip eval "EIP = {vEIP}" log $RESULT GMI eip, MODULEBASE // 得到ImageBase mov vImageBase, $RESULT eval "ImageBase = {vImageBase}" log $RESULT GMI eip, ENTRY // 得到EP值 mov vEP, $RESULT eval "EP = {vEP}" log $RESULT cmp vEP, eip je L_BEGIN // 报错信息-此脚本必须在EP处开始运行 eval "error:\r\n脚本需要从EP({vEP})开始运行, 但是EIP = ({eip})\r\n请重新载入程序后, 再运行此脚本" msg $RESULT jmp L_ENDL_BEGIN: sto // F8 // 下栈顶访问硬断点 mov vESP, esp mov vEspValue, [esp] eval "[esp({vESP})] = ({vEspValue})" log $RESULT bphws vESP, "r" // 对栈顶指向的地址下硬件访问断点 eob L_HBP_R_PROC // 如果刚卸载了安全软件(e.g. 火绒4.0), 不重新启动计算机, 就使用go或run命令, 会有报错提示, 打断了自动化脚本. // Unable to open or read executable file 'C:\WINDOWS\system32\dtrampo.dll' go // 这里不会再执行了, 已经交给了调试器L_END: eval "<< task end" log $RESULT retL_HBP_R_PROC: eval ">> L_HBP_R_PROC" log $RESULT call fnDispDisasmCmdOnCurEip sto // F8 call fnDispDisasmCmdOnCurEip sto // F8 // 到达了OEP call fnDispDisasmCmdOnCurEip an eip // 分析代码 cmt eip, "this is OEP" // 脱壳 dpe "dumpByOllyScript.exe", eip // 脱壳完成, 提示我使用ImpREC进行IAT修复 mov vImpRecOEP, eip sub vImpRecOEP, vImageBase eval "脱壳完成: 请停在此处, 对[{vPeNameDumpTo}]进行IAT修复\r\n impREC's OEP = {vImpRecOEP}" mov vTmp, $RESULT log vTmp msg vTmp jmp L_ENDfnDispDisasmCmdOnCurEip: mov vEIP, eip GCI vEIP, COMMAND // 得到当前EIP的汇编命令信息, e.g. "call ebp" mov vDisasmCmd, $RESULT eval "{vEIP} {vDisasmCmd}" // 打印当前反汇编命令 log $RESULTret
脚本日志
Script Log WindowAddress Message46B0FF $RESULT: >> task begin ...46B0FF $RESULT: ollyScript version = 1.6546B0FF $RESULT: EIP = 46B0FF46B0FF $RESULT: ImageBase = 40000046B0FF $RESULT: EP = 46B0FF46B100 $RESULT: [esp(12FFA4)] = (7C930208)46B29A $RESULT: >> L_HBP_R_PROC46B29A $RESULT: 46B29A mov edx, 004271B046B29F $RESULT: 46B29F jmp edx4271B0 $RESULT: 4271B0 push ebp4271B0 vTmp: 脱壳完成: 请停在此处, 对[dumpByOllyScript.exe]进行IAT修复 impREC's OEP = 271B04271B0 $RESULT: << task end
0 0
- ollyScript脱壳脚本 for AHpack(0.1)[-]
- ollyScript脱壳脚本 for ABC Cryptor(1.0)[-]
- OllyScript脚本练习
- 调试工具----OllyScript脚本专题
- 脱壳脚本-for ExE Pack(1.4)[-]
- 脱壳脚本-for DragonArmor(0.0.4.1)[-]
- OllyScript脚本大全和相关案例
- ExeCryptor脱壳脚本
- OD脚本脱壳
- 【原创】一个dex脱壳脚本
- ESP定律脱壳的OD脚本
- WinLicense无key脱壳脚本改进
- 乐见Safengine licensor终于有了脱壳脚本
- 脱壳
- 脱壳
- 脱壳
- 脱壳
- 脱壳
- 高性能缓存Memcached使用教程
- linux 命令
- 4. Median of Two Sorted Arrays
- Git使用详解(30分钟理解Git)
- SpringBoot中配置logback
- ollyScript脱壳脚本 for AHpack(0.1)[-]
- javascript遍历
- com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效
- 解决putty连接报 connection refused
- Linux中文乱码问题终极解决方法
- memcache缓存服务器01
- 简单工厂模式
- Maven jar包无法下载的问题 .lastUpdated
- org.springframework.util.StringUtils 方法commaDelimitedListToStringArray(String str)