查壳:UPX(-)[modified] 脱壳

UPX(-)[modified] 脱壳_技术

 

入口点,经典pushad指令,可以根据esp定律跟oep,这里直接搜索popad指令

 UPX(-)[modified] 脱壳_技术_02

ctrl+f  --popad,搜到2条

UPX(-)[modified] 脱壳_技术_03

第一条popad下断,f9运行

UPX(-)[modified] 脱壳_搜索_04

 

跳过循环,jmp处下断,f9运行

 UPX(-)[modified] 脱壳_搜索_05

 

f7步进来到OEP

 UPX(-)[modified] 脱壳_技术_06

 

 使用scylla插件dump

 UPX(-)[modified] 脱壳_技术_07

 

发现一条无效IAT,先delete,dump保存,f9运行,暂停,在无效地址处设置运行点,f8单步,发现最后调用user32.CallNextHookEx

 UPX(-)[modified] 脱壳_技术_08

 

修改此IAT

 UPX(-)[modified] 脱壳_搜索_09

 

 UPX(-)[modified] 脱壳_技术_10

 

FIX

 UPX(-)[modified] 脱壳_技术_11

 

再次查壳

 UPX(-)[modified] 脱壳_技术_12

 

 

 运行

UPX(-)[modified] 脱壳_技术_13

 

 

 

 

 

ps:那个无效IAT可能是模拟某api,不跟啦,简单测试了下程序,主体正常;