似乎在 IDA 中使用 F5 已经成为了时尚,可以轻易的通过IDA中的汇编码转C代码插件反汇编别人的代码,即使没有一点汇编基础的人都可以反汇编了,这对我们写的程序是极大的威胁。唯一的办法就是加上几段花花(i like FlowrCode),让那些不懂汇编人离开反汇编的世界吧。。。
VC++ Code:
_asm
{
jb label
jnb label
_emit 0xE8
label:
}
Delphi Code:
asm
begin
jb label
jnb label
db $E8
label:
end;
很显然,这只是一段极其简单的花代码,但是对付 IDA 的 Hex-Rays Decompiler 插件却是很的效的,这段代码可以放在任意位置,如在VC++中:
NTSTATUS DriverEntry()
{
//随便位置写入即可
}
测试后就会出现下面这种情况了。。。 在 IDA 的 function 竟然找不到加入花代码的 Hook 函数了,见图1:
经过查找后,原来在这里,见图2:
然后 F5 试试看看可不可以把这段汇编代码转换成C代码?见图3:
哈哈。。。爽,达到我们的要求了,虽然人家还是可以看你的反汇编代码,但是总比人家直接看C代码好的多了。这招对付一些没有真本事,但又想偷学他人代码的人很有效哈。。。
VC++ Code:
_asm
{
jb label
jnb label
_emit 0xE8
label:
}
Delphi Code:
asm
begin
jb label
jnb label
db $E8
label:
end;
很显然,这只是一段极其简单的花代码,但是对付 IDA 的 Hex-Rays Decompiler 插件却是很的效的,这段代码可以放在任意位置,如在VC++中:
NTSTATUS DriverEntry()
{
//随便位置写入即可
}
测试后就会出现下面这种情况了。。。 在 IDA 的 function 竟然找不到加入花代码的 Hook 函数了,见图1:
经过查找后,原来在这里,见图2:
然后 F5 试试看看可不可以把这段汇编代码转换成C代码?见图3:
哈哈。。。爽,达到我们的要求了,虽然人家还是可以看你的反汇编代码,但是总比人家直接看C代码好的多了。这招对付一些没有真本事,但又想偷学他人代码的人很有效哈。。。
花指令是对付一些静态反汇编工具最好的办法