首页
社区
课程
招聘
[原创] KCTF2021秋季赛 声名远扬 WP
2021-12-3 20:09 17407

[原创] KCTF2021秋季赛 声名远扬 WP

2021-12-3 20:09
17407

FindCrypto插件发现程序有CRC操作,main函数里那一堆花指令都没敢动。然后按钮点击函数不太好找,断GetWindowsText和SetWindowsText都不太好使,最后玄学通过代码段上一堆不知道什么东西的东西交叉引用定位到按钮点击函数Sub_41D2D0

 

 

点击函数里面先对输入做了变表base64操作,填充位换成了"!" 可以直接写IDAPython脚本把表爆出来

1
2
3
4
5
6
7
8
9
10
11
box = ""
cpu.eip=0xD4E7AE
for dl in range(64):
    cpu.edx=dl
    run_to(0xD4E7BD)
    wait_for_next_event(WFNE_SUSP, -1)
    print(dl, get_wide_byte(cpu.eax))
    box += chr(get_wide_byte(cpu.eax))
    cpu.eip=0xD4E7AE
print(box)
# prvo9CHSJOcPIb6xRVUXQz0qBGDE72LNZduaefYT5K_8-4FAhlimjkngt1yMWs3w

 

然后会通过call fword天堂之门跳到前面那段shellcode上去跑x64代码。

 


 

然后就是挂windbg对着IDA一步步调,最后发现直接就是比较,扣出正确的密文解就行了

 

 

1
2
3
4
5
6
7
8
9
10
11
import base64
fake_box = "prvo9CHSJOcPIb6xRVUXQz0qBGDE72LNZduaefYT5K_8-4FAhlimjkngt1yMWs3w"
box = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
ciper = "GYldGg-iIoJlPX9hPXpjPqfdEY21B01TBTzeGqfKNR!!".replace("!", '=')
flag_base64 = ""
 
ciper_list = list(ciper)
for i in ciper_list:
    flag_base64 += box[fake_box.find(i)]
print(flag_base64)
print( base64.b64decode(flag_base64.encode()) )

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞3
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回