avatar

目录
按钮事件(PC逆向1)

按钮事件

易语言 按钮事件 特征码

FF 55 FC 5F 5E

VC VB Delphi 按钮事件脚本

bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*
Script written by ~icy~学习班
Script : Delphi & VB事件断点查找脚本
Date : 2007-04-20
Test Environment : OllyDbg 1.1, ODBGScript 1.51, Winxp Win2003
*/
var DelphiAddr
mov DelphiAddr,401000
Delphiloop:
find DelphiAddr,#740E8BD38B83????????FF93????????#
cmp $RESULT,0
je VB
add $RESULT,0A
bp $RESULT
add $RESULT,1
mov DelphiAddr,$RESULT
jmp Delphiloop
VB:
var VBAddr
mov VBAddr,401000
VBloop:
find VBAddr,#816C2404??000000#
cmp $RESULT,0
je Exit
add $RESULT,08
bp $RESULT
add $RESULT,1
mov VBAddr,$RESULT
jmp VBloop
Exit:
eval "Delphi & VB事件断点设置完毕!"
msg $RESULT
ret

处理时钟

在按钮事件下断,在未点击按钮时,一直被断下,有点像心跳包的感觉,就是有时钟干扰,两种方法处理

1.Pchunter

使用Pchunter 移除定时器

打开Pchunter,进程,找到目标进程,右键->查看->查看进程定时器->选择定时器->移除

2.OD断点条件

有时候,有的闹钟是有实际功能的,如果直接移除了,软件就没用了,或者退出了,所以可以像处理心跳包一样,下条件断点。

在按钮事件下断,断下来以后,F7跟进去,可以看到这里的闹钟并没有什么用处,记录下地址00401C44


脱壳

1.ASP壳

拖入OD,断在这里,然后按F8跟了一下,过了CALL以后就会把程序运行起来,所以要F7`跟进去

进入call里面以后,一路F8,当碰到这种,跳转上去的,就在下一个代码那里按F4

一路F8到了这里,这里是一处OEP,继续F8,会返回出去。

到了这里,在push ebp 处右键

点击用OD脱壳进程

填写好修正为的地址,然后点击脱壳


2.UPX壳

拖入OD,像跟ASP壳一样,一路F8下来,到这里,就是一个Delphi的特征位置。

对下面的代码进行删除分析,然后F8跟过去JMP的地址,就是OEP的地址了


3.ESP定律

把加壳的软件拖入OD,然后按一次F8,然后观察右侧寄存器窗口,ESP处,右键

ESP->右键->HW break [ESP](就是在ESP的地址下硬件断点)->F9运行

然后就会直接跳到这里,刚才这里就是Delphi的特征,JMP过去以后就是OEP的地址


4.内存镜像法

托加壳软件进OD,然后点击右上方的m,然后找出资源段,按f2下断,然后点F9运行

m->找资源段->F2->F9

然后在找代码段,在F2下断,在运行

代码段->F2->F9

然后点击C,会发现来到这么一个位置,然后往下拉,就可以看见那个OEP


5.标志法

加了壳的程序拖进去以后,就会看见一个特征,头部都是pushad,按住汇编语法,pushad开头,那么就有popad结尾,所以可以通过搜索popad来查找

Ctrl +F 输入popad

然后一路 Ctrl +L ,搜索下一个,没几下就到这里了,就是易语言的OEP入口


文章作者: KeyboArd
文章链接: https://www.wrpzkb.cn/pojie1/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 KeyboArd's Blog
打赏
  • 微信
    微信
  • 支付寶
    支付寶

评论