Crackme 23[通俗易懂]

Crackme 23[通俗易懂]Crackme23这题很好,一环扣一环。题目出的比较细致,有很多细节问题需要注意。也有此题看出,Crackme不能急,要一步一步的来

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

这题很好,一环扣一环。
首先PEID查看
这里写图片描述
第一次见MASM32 汇编直接编写。前几道题有高级语言编写,有现成的反编译工具。但这道题没有,只能手工OD调试
用OD加载搜索字符串
这里写图片描述
发现激活成功教程成功的条件是ax == 0x10,
这里写图片描述
于是找给ax 赋值的代码,ax的值与[403166]有关
这里写图片描述
于是利用内存断点,找到所有写入[403166]有关的代码
这里写图片描述
设置内存断点,发现了猫腻
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
分析得[403188] + 0x9112478 必须为0
将内存断点设在[403188],找到了下面的算法

00401361   .  8D3D 8C314000 LEA EDI,DWORD PTR DS:[40318C]                   ; name
00401367   .  0FBE05 683140>MOVSX EAX,BYTE PTR DS:[403168]                  ; ax = i
0040136E   .  03F8          ADD EDI,EAX
00401370   .  FE05 68314000 INC BYTE PTR DS:[403168]                        ; i ++
00401376   .  A1 88314000   MOV EAX,DWORD PTR DS:[403188]                   ; 密码的16进制
0040137B   .  8B25 A0314000 MOV ESP,DWORD PTR DS:[4031A0]
00401381   .  40            INC EAX                                         ; 密码 ++
00401382   .  FF05 88314000 INC DWORD PTR DS:[403188]
00401388   .  3307          XOR EAX,DWORD PTR DS:[EDI]                      ; 密码 ^ name[i] 这里有个坑4字节异或
0040138A   .  A3 88314000   MOV DWORD PTR DS:[403188],EAX                   ; 密码 = 上式
0040138F   .  803D 68314000>CMP BYTE PTR DS:[403168],10                     ; if i != 10 loop

Jetbrains全家桶1年46,售后保障稳定

算法有了注意这里有个坑,00401388 . 3307 XOR EAX,DWORD PTR DS:[EDI]这里是与四字节异或,小端序要转成大端序
最后写出exploit

name = raw_input("name:")
s = 'A'+name+'\x00'*(0x14-len(name)) #A 用来填充
s = bytes(s).decode('ascii')
print s
sub = 0xffffffff - 0x9112478 + 1
for i in range (0x10,0,-1):
    string = '0x'+'0'*(2-len(hex(ord(s[i+3]))[2:]))+hex(ord(s[i+3]))[2:]+ '0'*(2-len(hex(ord(s[i+2]))[2:]))+hex(ord(s[i+2]))[2:] + '0'*(2-len(hex(ord(s[i+1]))[2:]))+hex(ord(s[i+1]))[2:]+ '0'*(2-len(hex(ord(s[i]))[2:]))+hex(ord(s[i]))[2:]
    sub ^= int(string,16)
    sub -= 1
print sub
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215454.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 笔记《Thinking in Java》第2章 一切都是对象[通俗易懂]

    笔记《Thinking in Java》第2章 一切都是对象[通俗易懂]第二章一切都是对象1.数据可以存在哪寄存器。因为它在CPU内部,所以最快。但是Java无法直接控制它。栈。在RAM上,但是,CPU可以通过栈指针快速的分配存储,向下就分配新内存,向上就释放内存,所以速度很快。代价是,Java系统必须确切的知道数据在栈里的生命周期,所以灵活性有限。Java的对象引用存在这。堆。也是在RAM上,不过跟栈比,编译器不用知道数据在堆里的生命周期,所以在堆里分配…

    2022年7月8日
    23
  • 1024程序员节是什么意思(懂硬件的程序员多吗)

    你真的懂啥是1024吗?今天就是一年一度的1024节了!packagecom.ocnyang.app;/***程序员们,1024快乐。*/publicclassHello1024{publicstaticfinalStringPROGRAM_APES=”程序猿”;publicstaticfinalStringPROGRAM_GIRL

    2022年4月10日
    43
  • 记录关于微信开放平台扫码登录的问题「建议收藏」

    记录关于微信开放平台扫码登录的问题「建议收藏」1、开放平台扫码登录需要snsapi_login权限,此权限需要注册微信开放平台账号并完成交钱认证。2、添加网站应用,并等待审核通过。通过后会分配一个独立的appid和appsecret。3、网站应用的授权回调域名需要严格按照xxx.yyy.zz的顶级域名填写4、开发时的主要问题是redirect_uri这里:   A、此redirect_uri是微信回调域名,是可以接受请求的真实地址  …

    2022年5月2日
    46
  • spring security3.2配置—权限管理

    spring security3.2配置—权限管理

    2021年11月28日
    41
  • MVC框架模式与SpringMVC框架

    MVC框架模式与SpringMVC框架1 框架与设计模式框架 设计模式这两个概念很容易被人混淆 但其实这两者之间还是存在差别的 框架通常是代码重用 而设计模式是设计重用 nbsp 设计模式是对反复出现的问题的解决方案的描述 是一种思想用于处理细节的 比框架更加抽象 框架是已经用代码实现的 可以执行也可以复用 设计模式是比框架更小的元素 一个框架往往会包含一个或者多个设计模式 框架总是针对某一特定领域的 而设计模式则可以适用于各个

    2025年9月13日
    6
  • strtok函数与函数用法实例

    strtok函数与函数用法实例strtok函数简介及运用实例(利用strtok函数分割字符串及单词逆序)

    2025年8月7日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号