逆向疑问解集

逆向疑问解集

1,为什么OD不能搜到字符串,而IDA能搜到?(干死只会搜字符串的小白)

OD搜索字符串功能的实现是一个插件(本身不具备),我用的吾爱破解的大佬写的。

大佬的插件功能是findascll函数中,它会取得反汇编中内存的模块的地址。

判断push,lea,mov;

例如找到push了,push ebp

它会判断ebp里面是不是字符串。而判断字符串的标准是是否以\0结束,是的话则是字符串。

如果是个结构体,里面有字符串则无法读取,例如01 00 00 00 d7 a2 b2 e1 ca a7 b2 dc 01 00;

它读取01 00后则判断结束,后面识别不了。

而IDA是静态反汇编,用pe文件方式,可以看

提问:能不能既让OD搜不到也让IDA也搜不到呢?

比如说字符串隐藏。

int main()

{

char s[]={0xd7,0xa2,0xb2,0xe1,0xca,0xa7 };

puts(s);

}

我们用puts(s),还是可以说看到中文提示的;

但OD和IDA都搜不到。

为什么??? 我们定位到,是十六进制,汇编则反映不出(当成代码了)以字节显示,但如果是全局变量就不行。

为什么全局变量使用字符串隐藏可以查到?

编译器会把全局变量和局部变量放在不同的位置,全局在全局区,局部在栈区。

OD中immlabe的插件是干嘛的?

调用标签,OD自带功能。有点注释的意思

如果OD我们单步步入(f8)卡住怎么办?

我们选择T恢复线程即可。

关于注册码的小白级破解问题

我们考虑使用线程进行混淆提高安全

易语言会有如下特征

在OD中

push esi

push edi

push ebx

call xxx

pop ebx

pop edi

pop esi

retn

方法

我们查找哪个地方启动的线程,鼠标右键,查找参考,查看命令。我们找不是红色的就行。进去直接

把条件nop掉

OD中[local.1],[local.2]是啥

它在c中是局部变量

我用OD修改后提示在可执行文件中无法定位到数据

软件被加上了壳,无法保存。

比如说加个最简单的壳

你不运行全是地址全是0000。只有你运行起来才出现代码。

你需要在运行后修改,不然就凉了。

我们常如下面的方法破解

xh补丁制作工具

原理:调试API

主要是writeprocessmemony;

功能强大

pyg内存官方补丁

pyg—dll劫持补丁

提问,为啥生成的dll放在同一文件夹下可以破解成功?

程序加载dll,优先加载同目录下的dll(就近加载dll),成功就不会在系统中去加

我们通常称dll劫持。

实现dll劫持补丁,万一调用到真正的DLL函数功能怎么办?

我们的dll,中间做了我们的想做的事,然后给真正的dll去做。

IDA如何修改汇编指令?

IDA的插件patch program也可以实现与OD一样修改的功能

有壳软件怎么写劫持补丁?

要壳把真实的代码之后进行修改。我们做辅助用dll注入过检测。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值