170514 逆向-IDC脚本一例
来源:互联网 发布:各国历年gdp数据 编辑:程序博客网 时间:2024/06/05 20:48
1625-5 王子昂 总结《2017年5月14日》 【连续第225天总结】
A.加密与解密 IDC脚本的使用100%
B.IDC可以用来通过处理代码提取或处理信息
一些特殊反汇编任务需要IDC的协助。
比如对代码段加密的程序,可以先用IDC先写一段解密的代码,解密后再进行反汇编
eg:
push ebp
mov ebp,esp
sub esp,8
call 401080
call 401060
xor eax,eax
mov esp,ebp
pop ebp
retn 10h
分析401060处的子程序发现没有意义
再分析401080,发现可以解密401060处的代码
mov eax,offset loc_#1060
mov bl,[eax]
xor bl, 1
mov [eax], bl
inc eax
cmp eax,00401074
jg short locret_401096
jmp short loc_401085
retn
这样的方法叫做SMC(Self Modifying Code)技术,即自己修改自己的代码。只有在程序运行时,才会由程序在某处运行一段还原代码来解密这段加密数据,再执行。
本段解密方法就是把每个数据与1做xor(异或)运算
使用IDC脚本的模拟解密代码为:
#include <idc.idc>
//from:解密代码起始地址,size:代码长度,key:此处值为1
static decrypc(from,size,key){
auto i,x;
for(i=0;i<size;i=i+1){
x=Byte(from);
x=(x^key);
PatchByte(from,x);
from=from+1;
}
}
单击菜单可以将这段代码载入IDA中,再打开IDC命令执行窗口,以十六进制形式输入命令decrypte(0x00401060,0x15,0x1); 即可
最后记得通知IDA重新分析这段代码
C.明日计划
加密与解密IDA
PYQT
- 170514 逆向-IDC脚本一例
- 逆向常用脚本
- idc
- IDC
- IDC
- IDC?
- IDC
- IDC
- IDC
- IDC
- IDC
- IDC数据中心知识讲解(一)
- android 逆向 初级(一)
- 逆向学习一
- 逆向入门(一)
- 【移动安全】ida idc脚本实现加密指令修改
- 一体式IDC系统将引领产业未来
- 最全IDC数据中心知识讲解(一)
- 我与python约个会:02开发环境搭建~安装python3
- ubuntu日志文件介绍
- 基于stm32cube的stm32系列不定长度串口接收(IDLE接收)
- 行为型模式之解释器模式(Interpreter)
- TI C2000 MCU Boot过程分析-以TMS320F28069为例
- 170514 逆向-IDC脚本一例
- 一、Java多线程和高并发
- Linux:Linux常用网络指令
- Pycharm 亲测可用的在线注册
- Mybatis 接口编程中dao 层接口没有注解和<bean> 为什么能被实例化为bean??
- CKEditor文件上传
- iOS 免越狱修改微信运动步数
- StringUtils 方法总结
- 在ASP.NET MVC 中获取当前URL、controller、action