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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • vim查看特殊字符_js字符串替换特殊字符

    vim查看特殊字符_js字符串替换特殊字符转载来自:http://bbs.chinaunix.net/thread-4167320-1-1.html1.搜索特殊字符要加转义字符"\"eg:搜索17/Jan/201910:20:53vim文件,然后/,然后输入如下:17\/Jan\/2019\10:20:53或者17\/Jan\/2019\s10:20:53 …

  • tomcat日志乱码怎么解决_linux日志中文乱码

    tomcat日志乱码怎么解决_linux日志中文乱码中文乱码大家在Windows启动Tomcat应该都会遇到中文乱码,其实也不影响使用,但是笔者看着这个乱码难受,于是提供一种较简单的解决方案。解决方案将Tomcat安装目录下/conf/logging.properties中的控制台日志编码由默认的UTF-8改为GBK即可。扩展乱码原因:Windows的控制台默认使用GB2312字符集,而Tomcat控制台日志输出默认使用UTF-8字符集,于是产生中文乱码,可使用chcp命令暂时修改控制台字符集

  • wing是什么_计算二叉树的深度和叶子结点数

    wing是什么_计算二叉树的深度和叶子结点数设一个 n 个节点的二叉树 tree 的中序遍历为(1,2,3,…,n),其中数字 1,2,3,…,n 为节点编号。每个节点都有一个分数(均为正整数),记第 i 个节点的分数为 di,tree 及它的每个子树都有一个加分,任一棵子树 subtree(也包含 tree 本身)的加分计算方法如下:subtree的左子树的加分 × subtree的右子树的加分 + subtree的根的分数若某个子树为空,规定其加分为 1。叶子的加分就是叶节点本身的分数,不考虑它的空子树。试求一棵符合中序遍历为(1,2,

  • docker端口映射成功 不可用_docker启动后访问拒绝连接

    docker端口映射成功 不可用_docker启动后访问拒绝连接情境描述创建一个docker容器,并进行端口映射。容器启动后,在部署容器的主机上可以访问映射端口,但是其他主机无法访问。问题排查出现上述情况,应是请求被拦截。出现该问题的可能是由于firewall配置异常、ip转发关闭、iptables服务拦截了请求排查firewall(1)使用firewall-cmd–state查看防火墙运行情况如果防火墙处于notrunning,则可以排除…

    2022年10月17日
  • 常见的ARM集成开发环境

    常见的ARM集成开发环境1.ARMSDT:是ARM公司为方便用户在ARM芯片上进行应用软件开发而推出的一整套开发工具。到ARMSDT2.5.1,ARM宣布推出ARMADS1.0取代了ARMSDT,不再对ARMSDT进行维护。ARMSDT支持的ARM处理器最高到包括ARM9在内的所有ARM处理器。配合Angel驻留程序和JTAG仿真器,用户使用可方便的使用ARMSDT进行应用程序的开发。2.ARM

  • nginx代理tcp协议_tcp怎么加密传输

    nginx代理tcp协议_tcp怎么加密传输NGINX实现TCP加密代理

发表回复

您的电子邮箱地址不会被公开。

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