170916 逆向-WHCTF(BabyRe/CrackMe)

2024-01-07 06:30

本文主要是介绍170916 逆向-WHCTF(BabyRe/CrackMe),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1625-5 王子昂 总结《2017年9月16日》 【连续第349天总结】
A. XCTF(武汉站)-Reverse
B.

CRACKME

无壳,C++
打开是一个简单的输入框和注册按钮
点击注册按钮会弹框“哎,注册码错了,你得换个新的哟!”

IDA没有main函数,看起来是MFC写的
查找字符串、断GetDlgText等API都没有结果
说明字符串都被加密过了

IDA逐个函数查找,发现有两个函数调用了MessageBoxA
查看交叉引用,发现这两个函数的call都来自于同一个函数,并且还是分支关系
这里写图片描述

回到汇编状态找到sub_401720和sub_4016e0的地址,在OD中下断,再点击注册按钮果然被401720断下来了

说明这里就是关键跳,再回到sub_401720里看看:

int __thiscall sub_401720(CWnd *this)
{CWnd *v1; // ebx@1char v3; // [sp+Ch] [bp-24h]@1v1 = this;qmemcpy(&v3, &unk_403290, 0x22u);//字符串拷贝sub_4016A0(30, &v3);//处理return CWnd::MessageBoxA(v1, &v3, 0, 0);//弹窗
}

两个函数结构类似,都是调用sub_4016A0对v3进行处理,拷贝的字符串源当然不同
sub_4016A0对字符串进行了异或解密,分别是20和30

在OD里对sub_4015E0的判断处下断,爆破之
弹窗“看到我的注册码了么,那就是flag哦”

…………果然没这么简单哦
那么关键问题就在于if里调用的函数了
因为是指针调用,所以只能在OD里看了

004015E6   .  E8 9F030000   call <jmp.&MFC42.#6334>                  ;  get注册码
004015EB   .  8B8E 94020000 mov ecx,dword ptr ds:[esi+0x294]
004015F1   .  8D86 94020000 lea eax,dword ptr ds:[esi+0x294]
004015F7   .  8379 F8 21    cmp dword ptr ds:[ecx-0x8],0x21          ;  长度=0x21
004015FB   .  75 22         jnz short 0dc17c69.0040161F              ;  关键跳1

这篇关于170916 逆向-WHCTF(BabyRe/CrackMe)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/578997

相关文章

新160个crackme - 051-Keygenning4newbies

运行分析 需要破解Name和Serial PE分析 C++程序,32位,无壳 静态分析&动态调试 ida找到关键字符串,双击进入函数 静态分析得到以下结论:1、Name长度要大于4,小于502、v5 += Name[i] ^ (i + 1)3、v7 = 最后一个Name[i] ^ (i + 1)4、Serial = (v5<<7) + 6* v7 的16进制

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到

转:android ro.debuggable属性调试修改(mprop逆向)

android ro属性调试修改(mprop逆向)      大家都知道如果需要调试android 的程序,以下两个条件满足一个就行。第一是apk的配置文件内的AndroidManifest.xml的 android:debuggable=”true”,第二就是/default.prop中ro.debuggable=1。两种方式第一种通常是解包添加属性再打包,随着加壳软件以及apk校验等,容易出

某里227逆向分析

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除! 前言 这次会简单的讲解阿里227版本滑块参数n的逆向分析流程以及简单的补环境,如果有疑问可以在评论区交流讨论,我看到会及时回复的,另外,有需要可联系我。 一

新160个crackme - 050-daxxor

运行分析 需要破解Name和Serial PE分析 C++程序,32位,无壳 静态分析&动态调试 ida找到关键字符串,双击进入函数 通过静态分析发现:1、Name通过计算得到Name12、对Name1第3、5、6分别插入byte_401290、byte_401290、word_401292,得到Name23、双击byte_401290,发现值为0x2D;双

【MyBatis学习14】MyBatis的逆向工程生成代码

1. 什么是逆向工程 mybatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java、po..)。一般在开发中,常用的逆向工程方式是通过数据库的表生成代码。 2. 使用逆向工程 使用mybatis的逆向工程,需要导入逆向

js逆向--cai招网

js逆向--cai招网 一、寻找加密入口1、抓包2、关键字搜索寻找加密入口 二、调试js三、python代码实现 一、寻找加密入口 1、抓包 目标数据来源网址为:https://search.bidcenter.com.cn/search?keywords=%E5%85%AC%E5%85%B1%E4%BD%8F%E5%AE%85,打开开发者工具进行抓包。 目标响应数据被加密。

NRF51822 小黄车智能锁 逆向工程

笔者在夜跑时发现有人将拆下的小黄车智能锁丢弃在花园角落,于是萌生了拆解的想法。 拆开外壳后发现MCU 是NRF51822 ,并且预留了Jlink 调试接口,更萌生了逆向这个电路板的想法 下面是 各个智能锁厂家提供的方案: 摩拜单车:STM32F1+GSM+GPS 使用芯片 STM32F401 + NRF51802(BLE)+TD1030 泰斗定位芯片+BQ25895(充电管理)+C3Hx(

某城user_dun,js逆向分析

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除! 前言 这次会简单的讲解某城ly headers中参数userdun的逆向分析流程以及简单的补环境,如果有疑问可以在评论区交流讨论,我看到会及时回复的,另外,有

【js逆向专题】9.SM国密系列

本教程仅供学习交流使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,请各位自觉遵守相关法律法规。 目录 一.算法简介1.1 算法分类1.1.1 `SM2` 椭圆曲线公钥加密算法1.1.2` SM4 `分组加密算法 二.算法实现1. JavaScript实现1. `SM2`2. `sm3`3. `sm4` 2`python`实现1. `sm2`2.`sm3`3. `s