为OD加个【一键机器码互访定位】功能
本帖最后由 冥界3大法王 于 2018-9-3 07:26 编辑假设已知VA是: 0040100E
我想瞬间定位到WinHEX中的这个地方,楼下的你会怎么做?
请先思考,并说出几种方法来考考自己的基本功是否达标?
1.VA 、 RVA 、 文件偏移 的转换是否 熟练 ?
2. 只有熟练做到的,才可能会脱壳,懂得PE知识
3. 我们可以使用 https://bbs.pediy.com/attach-download-68459.htm 这个插件,但是!Win10中运行,你会发现,点击毫无反应
(内有源码)
第二种方法是 使用上图中的 那个 转换工具 这样就省去手工计算;但是你也得打开软件,粘入地址,粘回结果,打开WinHEX,ALT+G。。。
这样,我们的OD和WinHEX ,对比参考 和 对比修改起来并不十分方便~~
VA和RVA的计算,我们只要和基址相加或相减即可马上得到
但是! (节偏移:RVk这个就得用工具查询所在区块,就这步最恶心) 或者 自己编程 或 改代码实现
第三种 我们利用机器码+ 16进制编辑器搜索 ,这种最为简单:
比如:OD中,我们选中几行后SHIFT+C得到:8B 00 E8 80 AE FF FF 8B 0D 64 81 45 00 A1 74 80 45 00 8B 00 8B 15 60 65 45 00 E8 80 AE FF FF
这样的搜索字符串,WinHEX并不能直接接收,得干掉空格
;OD中shift+C,得到机器码传入剪贴板
StringReplace, 去空格后的字符串, clipboard, %A_Space%, , All ;这一步是去空格操作
clipboard = %去空格后的字符串%
来吧:
IfWinExist, ahk_class WHXMDI0
{
WinActivate
Sleep, 500
PostMessage,0x111,51,0,,ahk_class WHXMDI0 ;打开【搜索16进制代码】窗口
Sleep, 500
Send, ^v
;ControlSetText , Edit1, %clipboard%, 查找16进制数值 ;修改编辑框内容以便输入
ControlClick, Button7, 查找16进制数值
ExitApp
}
else
{
MsgBox, 262160, 不运行WinHEX, 耍我么`n趁早滚蛋~~?
InputBox, 变量名, 请输入WinHEX路径
Run,%变量名%, , UseErrorLevel
if UseErrorLevel <> 0
{
Run, D:\破解相关\修改_调试_监控\修改查看类\WinHEX18.7传说最后的稳定版\WinHex自制汉化修正版.exe
gosub, 来吧
ExitApp
}
}
这样机器码就马上过来搜索了
我们再从WinHEX 中的文件偏移 ,转换 回来 定位VA那也只是1秒钟的事 。 就是这么简单,楼下你掌握了吗?
最后我们再把上面的AHK代码编译成EXE 并利用OllyMoreMenu_cn.dll 加进去
这样点下菜单也就完活了。{:17_1061:}
热键 :
shift +x
shift + c
shift+V
ctrl+X
看完操作动画,是不是很爽呢? 这就是编程的魅力~~ 膜拜大神,并火钳刘明~ 膜拜法王兄{:301_1004:} 一脸懵逼进来,一脸懵逼出去{:301_999:} 小白完全看不懂 膜拜大佬 法王大佬 搞点新手教程啊 这个花里胡哨的 看不懂啊 @不苦小和尚
@noah88
@动物凶猛
@pwbvsgf
@梦古无疆
@ugly
又修改了了下,加了点动画演示。{:301_988:}
请欣赏
页:
[1]