吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3855|回复: 17
收起左侧

[原创] Windows逆向分析入门(三)——方法篇

[复制链接]
KongKong20 发表于 2020-6-23 09:07
本帖最后由 KongKong20 于 2020-6-23 09:09 编辑

前言
  上一篇,聊到逆向分析是找偏移,有依据地找,效率会快。这一篇聊下找偏移方法。只说概念,具体的细节,后续会配合实战再展开细说。

找偏移的方法
1、内存
  逆向的目的,是找功能或者数据在内存的地址。最直接的方法,就是在内存里面搜索。

       对于数据:可以直接在内存搜索。
  对于功能:如果知道代码的特征码,也可以直接在内存寻找。
  (所谓代码的特征码,具体是一串字符串,在内存是唯一的,可以用来搜索定位)。

2、界面
  带界面的软件,一般流程就是:
    1、软件生成界面,界面上会有按钮,编辑框这些控件。
    2、用户操作界面,点击按钮或者输入文字等等。
    3、软件接收到用户的操作,调用对应的功能。
    4、调用的功能对数据进行处理。
    5、处理结果显示在界面上。

  如果知道这个流程在代码里面是怎么实现的,就能找到对应的功能和数据。

3、日志
  软件运行的过程,是没办法像视频那样可以倒放。
  想了解软件的运行过程,需要在软件里面埋下标记。
  当软件运行过程,经过做标记的位置,就可以输出信息。(也就是所谓的日志)
  而逆向分析,通过日志找到标记,能知道对应的功能在哪里。

4、字符串
  代码里面写的字符串,编译成软件的过程,会被当作全局数据,存在固定的地方。
  而字符串可能有对应的功能,比如 send msg,可能出现在发送信息的功能附近。
  通过搜索字符串,看看哪里用了这个字符串,就可以找到对应的功能。

5、系统函数
  写代码的过程中,需要用到一些比较基础的功能。(比如读写文件,收发网络信息)
  这个时候直接用系统提供的接口就可以了。
  这些接口是公用的,所以偏移固定的。
  通过拦截这些接口,就可以定位了。

6、第三方库
  软件可以看成由多个模块组成的,像搭积木那样。
  而这些模块大多通用的,比如:界面模块,日志模块。
  为了加快开发速度,一般会使用别人写好的第三方模块。
  如果第三方模块是开源的,相当知道软件的一部分代码。
  通过第三方的代码,可以推算出软件还没解开的另一部分。

下一篇,找到偏移之后,聊聊利用偏移写代码的思路。

免费评分

参与人数 7吾爱币 +6 热心值 +6 收起 理由
as614001 + 1 + 1 我很赞同!
numbersi + 1 用心讨论,共获提升!
小兔一样的小白 + 1 + 1 热心回复!
dn120 + 1 + 1 用心讨论,共获提升!
china-ray + 1 + 1 用心讨论,共获提升!
smile5 + 1 用心讨论,共获提升!
月饼煎鱼 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

刀大喵 发表于 2020-6-23 09:36
还热乎的
hnwang 发表于 2020-6-23 09:38
alwayslichk 发表于 2020-6-23 09:55
sxisir 发表于 2020-6-23 10:57
期待后续的继续更新
蝶舞残剑 发表于 2020-6-23 14:16
期待后续
吃饭最大 发表于 2020-6-23 14:32
期待后续更新
blindcat 发表于 2020-6-23 16:10
感谢楼主分享
evill 发表于 2020-6-23 21:11
期待实战,抽象的东西很模糊
【如果有一天】 发表于 2020-6-23 22:28
完全不知道是啥意思
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-29 13:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表