[转组第5天] | 天枢分享Reverse入门

2018-04-28

  天枢reverse分享:

   字节序:大端模式:高低低高;小端模式:高高低低

  

   函数传参方式:

    Windows

      – 32位: 参数从右至左按顺序压栈

      – 64位:前四个参数通过rcx、rdx、r8、r9寄存器传参,剩余参数从右至左按顺序压栈。 

    Linux

      – 32位:参数从右至左按顺序压栈

      – 64位:前六个参数通过rdi、rsi、rdx、rcx、r8、r9寄存器传参,剩余参数从 右至左按顺序压栈

   函数调用约定:

    cdecl  - 主要在C语言中使用,调用者负责处理栈。

    stdcall   - 常用于Win32API,该方式由被调用者清理栈。

    fastcall  - 与stdcall方式类似,在函数传参时,前两个参数会通过寄存器ECX、EDX传。

   代码混淆:

    jz/jnz花指令:重新反汇编jz/jnz要跳转的地址处的指令,修改后,patch掉花指令,重新生成伪代码。

    call+pop花指令:也是调整地址处指令,patch掉花指令,重新解析。

      call $+5 指令,call指令占5字节,所以这句实际就是执行下一条指令,常用于执行加密或解密代码。

    SMC(Self-Modifying Code)代码混淆,1.直接调试到解密完的步骤;2. idapython进行恢复。

    idapython例子(伪代码):  //主要是静态分析用。

    from idc import *

    from idaapi import *

    for i in range(start,end):

      temp = Byte(i)

      PatchByte(i, temp^0x45) 

    IDA F5常见错误处理:

    please position the cursor within a function; 花指令,按上面处理花指令的方法。

    position sp value has been found; 堆栈平衡问题,多半存在一个恶意指令修改了堆栈,IDA general可以设置查看堆栈平衡。将恶意指令干掉或者其他。

    call analysis failed. 函数参数个数分析错误,修正函数参数个数。

    OD断点介绍:

      INT 3断点:

       - 改变断点地址处的第一个字节为0xCC

       - OD快捷键F2

       硬件断点:

         - 依赖于DRX调试寄存器

         - DR0~DR3四个寄存器用来存放断点地址

         - DR6和DR7用来控制断点的大小和触发断点的时机

         - OD快捷键F4、F8

       内存断点:

       - 改变内存分页的属性

          - 内存访问断点,通常是将内存属性设为PAGE_NOACCESS

        - 内存写入断点,通常是将内存属性设为PAGE_EXECUTE_READ

        - 由于分页粒度的限制,最小改变一页的属性

  总结:

    基础知识很重要

  预计明天:

    Android安全相关

转载于:https://www.cnblogs.com/nww-570/p/8971812.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
CTF逆向入门是指逆向工程的入门级别的题目,要求参赛选手具有较强的反汇编和反编译的能力,并且能够进行逆向分析。这类题目通常涉及到软件逆向和破解技术。通过解决这些题目,参赛选手可以提高他们的逆向分析能力。 在逆向入门的题目中,通常会给出一段代码或者一个文件,参赛选手需要根据给定的逻辑推导出正确的用户名和密码。例如,在引用中的代码中,通过逻辑判断和计算,可以得到正确的用户名和密码。 另外,在引用中的代码中,输入的字符会根据一定的规则进行转换,然后与给定的字符串进行比较,如果一致则认为成功。 总的来说,CTF逆向入门是一种通过解析逆向工程相关题目来提高逆向分析能力的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [CTF逆向(reverse入门脑图](https://download.csdn.net/download/qq_32465127/10744933)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Reverse入门[不断记录]](https://blog.csdn.net/weixin_53090346/article/details/129099449)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值