|
现在很多软件作者为了防止他人逆向其软件,都会加壳保护防止逆向逆向,对于我们这些新手也叫菜鸟级的,既然想吾爱汇编论坛,脱壳是第一步,我也在学习啦,第一步就是个人电脑里面必须装的必备脱壳及修复工具,现在发一个工具介绍,我想对新手应该有用,大家可以复制工具名字,去网上下载:
脱壳工具以及脱壳一般流程
查壳(PEID、FI、PE-SCAN)--->寻找OEP(OD)--->脱壳/Dump(LordPE、PeDumper、OD自带的脱壳插件、PETools)--->修复(Import REConstructor)
【工具介绍】
1、查壳
PEID--功能强大的侦壳工具,自带脱壳插件(但是,效果不怎么样)
工作原理:核心是userdb.txt(大家看看就完全明白了)[通过壳的入口特征码进行辨认]
使用方法:可以拖放、也可以把PEID添加到右键菜单里面去
FI--功能强大的侦壳工具,DOS界面。
使用方法:可以拖放、可以使用DOS命令行
2、寻找OEP
ollydbg的四个区域
左上角是cpu窗口,分别是地址,机器码,汇编代码,注释;注释添加方便,而且还能即时显示函数的调用结果,返回值.
右上角是寄存器窗口,但不仅仅反映寄存器的状况,还有好多东东;双击即可改变Eflag的值,对于寄存器,指令执行后发生改变的寄存器会用红色突出显示.
cpu窗口下面还有一个小窗口,显示当前操作改变的寄存器状态.
左下角是内存窗口.可以ascii或者unicode两种方式显示内存信息.
右下角的是当前堆栈情况,还有注释啊.
几个经常使用的快捷键
F2:在需要的地方下断点(INT3型断点)
F3:选择打开程序
F4:运行到所选择的那一行
F7:单步进入
F8:单步跟踪
F9:执行程序(运行程序)
其中要特别讲一下3个F9的区别和作用:
根据Ollydbg.hlp的中文翻译
Shift+F9 - 与F9相同,但是如果被调试程序发生异常而中止,调试器会首先尝试执行被调试程序指定的异常处理(请参考忽略Kernel32中的内存非法访问)。
Ctrl+F9 - 执行直到返回,跟踪程序直到遇到返回,在此期间不进入子函数也不更新CPU数据。因为程序是一条一条命令执行的,所以速度可能会慢一些。按Esc键,可以停止跟踪。
Alt+F9 - 执行直到返回到用户代码段,跟踪程序直到指令所属于的模块不在系统目录中,在此期间不进入子函数也不更新CPU数据。因为程序是一条一条执行的,所以速度可能会慢一些。按Esc键,可以停止跟踪。
看这些中文介绍大家可能还不是很明白,用我们通俗的语句来说就是:
Ctrl+F9 运行至retn (一般到了retn之后接上F7返回)
Alt+F9 运行至上层调用的下句
Shift+F9 忽略异常运行
文件:
1.其中包括该菜单的下部有上次打开的纪录,该纪录保存有上次未清除的断点.
2.附加.对付那些Anti-Debug程序.先运行程序,再运行od,文件-->附加.
查看:
1.执行模块(Alt+E),查看程序使用的动态链接库
2.查看断点.Alt+B
调试:
1.运行(F9)加载程序后,运行!
2.暂停(F12)
3.单步进入(F7)遇见CALL进入!进入该子程序.
4.单步跳过(F8)遇见CALL不进去!
5.执行到返回(ALT+F9)就是执行到该子程的返回语句
查看-->文件
二进制文件编辑功能.查看-->文件,打开的文件是二进制显示.选中要改变的机器指令,空格,修改,右击-->保存.
其他的一些具体的大家还是要看看OD的中文帮助的
3、Dump
OD自带的脱壳插件--到达OEP之后右键。。。
LordPE、PeDumper--选择所调试的进程--右键--完整脱壳
4、修复
Import REConstructor 1.6
脱壳后,程序肯定不能正常运行,当然需要这个软件修复下啦~~
5 自校验
很多软件脱壳后,会碰到这个问题,其实也简单,找到弹错误框上面CALL,断点,一般下面有个关键跳,自己根据情况跳还是不跳,或者开两个OD,一个是原来的,一个事脱壳后的,比较下,就知道怎么修改了~
还有就是因为汇编对于逆向来讲太重要了,希望大家一定认真记熟下面的语句以及公式!
就像练习功夫一样,只有熟悉它的一招一式,勤加练习。才能真正学会一种武术。
软件逆向常用汇编指令
cmp a,b // 比较a与b
mov a,b // 把b值送给a值,使a=b
ret // 返回主程序
nop // 无作用,英文(no operation)简写,意思“do nothing”(机器码90)
(ultraedit打开编辑exe文件看到90相当汇编语句的nop)
call // 调用子程序,子程序以ret结尾
je或jz // 相等则跳(机器码是74或84)
jne或jnz // 不相等则跳(机器码是75或85)
jmp // 无条件跳(机器码是EB)
jb // 若小于则跳
ja // 若大于则跳
jg // 若大于则跳
jge // 若大于等于则跳
jl // 若小于则跳
pop xxx // xxx出栈
push xxx // xxx压栈
最后说一下,当然现在的作者都很bt,为了防止软件逆向,都会加例如se,vmp,tmd等猛壳,这些猛壳不是我等小菜菜玩的,只有大神们玩的份。好了就说到这里吧。都是些基础的东东。大婶们不要取笑哈。
最后愿论坛越办越好。
|
评分
-
参与人数 23 | HB +30 |
THX +16 |
收起
理由
|
猫妖的故事
| |
+ 1 |
|
花盗睡鼠
| + 2 |
+ 1 |
[吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守! |
29590
| |
+ 1 |
|
24567
| + 2 |
|
|
逍遥游
| + 1 |
|
|
一路走来不容易
| |
+ 1 |
|
Soul1999
| + 1 |
|
|
temp
| + 1 |
+ 1 |
|
上帝的恩赐
| + 2 |
|
|
WolfKing
| + 2 |
|
[吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少! |
zxjzzh
| |
+ 1 |
[吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少! |
风里去
| |
+ 1 |
[吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少! |
冷亦飞
| + 1 |
|
|
消逝的过去
| |
+ 1 |
|
SmallEXpel
| |
+ 1 |
|
jaunic
| |
+ 1 |
|
hnymsh
| |
+ 1 |
|
lies
| + 1 |
|
|
周日午后
| + 3 |
+ 1 |
感谢!新技能get√ |
东子郭
| + 1 |
+ 1 |
评分=感恩!简单却充满爱!感谢您的作品! |
haliyou001
| |
+ 1 |
评分=感恩!简单却充满爱!感谢您的作品! |
daily
| + 3 |
+ 1 |
积极评分从我做起,感谢! |
Shark恒
| + 10 |
+ 1 |
支持原创,感谢楼主! |
查看全部评分
|