电子取证

2024数证杯决赛团队赛

团队赛MD5值:E5297609ACCD1C8DF7E6F56F8912E734 团队赛容器密码:mW7@B!tRp Xz46Y9#KFUV^J2&NqoHqTpLCE%8rvGW AX#1k@YL3$M5!bWY 9HLFq7UZR6^T!XoVmPK28J&CY9%6 A…

团队赛MD5值:E5297609ACCD1C8DF7E6F56F8912E734

团队赛容器密码:mW7@B!tRpXz46Y9#KFUV^J2&NqoHqTpLCE%8rvGW(AX#1k@YL3$M5!bWY9HLFq7UZR6^T!XoVmPK28J&CY9%6(Arz#tbU4oXYKLp7Wq^FV9H

计算机取证#

计算机取证-1#

20#

题目描述#


计算机中曾挂载的bitlocker加密的分区的驱动器号为?(答案格式:大写字母,如C) (2.0分)

text
V

image-20250122121456418

image-20250122121501814

计算机取证-2#

20#

题目描述#


分析计算机和内存检材,计算机中的Bitlocker加密分区的恢复密钥后6位为?(答案格式:123456) (4.0分)

text
432267

image-20250122121859854

image-20250122121931430

得到

text
469876-653598-354629-023573-566423-569162-055055-432267

image-20250122122038147

计算机取证-3#

20#

题目描述#


计算机中通过向日葵接收的最后一个文件名称为?(答案格式:需带后缀名,如Abc.doc) (4.0分)

image-20250122122555721

image-20250122122610587

计算机取证-4#

20#

题目描述#


计算机中加密容器8df84968a5b8c4d072c4daa4fd02cb19的解密密码为? (2.0分)

text
ppnn13%323658970YYZZ

image-20250122123004460

在同一文件夹下发现重要文件

010打开发现密码,比赛的时候暴搜密码出的

image-20250122124651980

挂载后

image-20250122124918147

计算机取证-5#

20#

题目描述#


接上题,计算机中曾挂载的该加密容器分区中最后访问的文件,其文件名为?(答案格式:需带后缀名,如Abc.doc) (2.0分)

对应时间线和根据文件名判断Q盘

text
d7ed12489b9f8b521db78d121badbe83.jpg

image-20250122125307541

计算机取证-6#

20#

题目描述#


请找到计算机中MD5值为2EA4D8A203F6CAFBDA0F6947EE2F0FE5的文件,写出其文件内容;(答案格式:需与实际一致,且涉及符号的部分半角全角需与实际一致) (4.0分)

text
好好学习!

右键分区-递归浏览-磁盘快照-计算哈希

但是这种方式没法计算EFS加密的文件-以后比赛多个心眼

image-20250122131431238

对于文件内容需要将EFS解开

image-20250122131813695

计算机取证-7#

20#

题目描述#


计算机中sharisun520@hotmail.com在2010年5月11日收到的邮件附件图片中的联系电话为? (6.0分)

text
087864898788

image-20250122132240506

没有正确解析 导出附件

image-20250122132223273

看到加密方式base64+xor(08) 去赛博厨子解密

image-20250122132345810

image-20250122132400916

计算机取证-8#

20#

题目描述#


计算机中MD5值为E653DF74D36008353C88F5A58B8F9326的文件是从哪个网址上下载的?(答案格式:http://abc/...) (1.0分)

text
http://suprbaydvdcaynfo4dgdzgxb4zuso7rftlil5yg5kqjefnw4wq4ulcad.onion/attachment.php?aid=3909

image-20250122132956143

image-20250122133051009

计算机取证-9#

20#

题目描述#


计算机中2024年11月12日 11:23:25访问的暗网网址为?(答案格式:http://abc/...) (1.0分)

text
http://suprbaydvdcaynfo4dgdzgxb4zuso7rftlil5yg5kqjefnw4wq4ulcad.onion/Thread-The-Guess-The-Movie-game

image-20250122133140076

计算机取证-10#

20#

题目描述#


请找到嫌疑人曾经接收的文件“DefeatedJoyousNightingale.pdf“,计算其SHA-256值;(答案格式:如遇字母全大写) (6.0分)

text
B4380011D8C1E4AB6CCCA1380CE81F9B9144EA8D06E9814210D63A959B74E6E3

image-20250122133729595

计算机取证-11#

20#

题目描述#


计算机中包含由两个字母、五个数字、“CW”和四个数字组成的内容的文件名是?(答案格式:需带后缀名,如Abc.doc) (3.0分)

text
CheerfulSuperDonkey.text

GREP语法

text
[A-Za-z]{2}[0-9]{5}CW[0-9]{4}

image-20250122135322639

image-20250122135500185

计算机取证-12#

20#

题目描述#


请写出计算机中系统分区上文件系统的卷序列号;(答案格式:全部8字节,小端序,忽略空格,如FA33C08ED0BC007C) (2.0分)

text
D466CEF666CED7EE

image-20250122135001360

计算机取证-13#

20#

题目描述#


计算机中最后接入的U盘的卷标名称是什么?(答案格式:如abcd111A) (5.0分)

image-20250122152028152

image-20250122152049413

或查看注册表

text
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR

计算机取证-14#

20#

题目描述#


计算机中程序wordpad.exe一共运行了多少次?(答案格式:请直接写数字,如6) (1.0分)

text
2

image-20250122140714229

计算机取证-15#

20#

题目描述#


计算机内存中正打开的图片中的动物为?(答案格式:直接写出动物名称,如狗) (4.0分)

text

image-20250122142535735

在M:\name\Microsoft.Phot-8692\minidump找到对应进程的minidump

直接foremost出图片,或者后缀改data去gimp调参数

image-20250122150320126

计算机取证-16#

20#

题目描述#


计算机内存中本地浏览器使用哪个端口连接到了184.30.21.38?(答案格式:纯数字) (2.0分)

text
50391

image-20250122150854978

计算机取证-17#

20#

题目描述#


计算机内存中极速浏览器最后浏览的网址的登录密码?(答案格式:与实际大小写需一致) (5.0分)

text
Zhang333

image-20250122151120782

image-20250122150933727

手机取证#

手机取证-1#

20#

题目描述#


分析手机检材,请找出嫌疑人的手机号; (2.0分)

text
13023161693

image-20250122152355121

手机取证-2#

20#

题目描述#


分析手机检材,嫌疑人曾经访问的公共服务后台管理系统的URL是?(答题格式:https://abc/...) (4.0分)

text
https://ggfw.ynylbz.cn/manage/#/login?redirect=/Home

image-20250122152628033

image-20250122152515303

手机取证-3#

20#

题目描述#


分析手机检材,找出嫌疑人在笔记中记录的接头地点;(答案格式:需与实际完全一致) (4.0分)

text
上海市浦东新区木兰花路666号

image-20250122152737774

新建一个笔记 与已有的文件做对比

image-20250122155021325

image-20250122155226258

经比较 覆盖files databases shared_prefs r对应剩下几个

image-20250122155535176

image-20250122160634211

手机取证-4#

20#

题目描述#


分析手机检材,找出嫌疑人的接头暗号;(答案格式:需与实际完全一致) (6.0分)

text
送你一朵小红花

image-20250122161017916

手机取证-5#

20#

题目描述#


分析手机检材,找出嫌疑人10月23日开的腾讯会议的入会密码; (2.0分)

text
201808

image-20250122161300866

手机取证-6#

20#

题目描述#


分析手机检材,找出嫌疑人公司即将发布的新产品型号;(答案格式:需与实际大小写完全一致) (4.0分)

text
AeroX-900

image-20250122161435248

image-20250122161524258

image-20250122161547901

手机取证-7#

20#

题目描述#


分析手机检材,找到嫌疑人曾经发送的项目前期资料文件,计算其SHA256;(答案格式:如遇字母全大写) (4.0分)

text
2425440B48170763AEA97931D806249A298AFAC72A4BED92A6494E6789ACDA19

项目前期资料内嵌在资料里

image-20250122161930356

image-20250122161956070

还是挺骚的

手机取证-8#

20#

题目描述#


分析手机检材,嫌疑人曾进行过一次交易,请问嫌疑人与转账的接收者什么时候成为好友?(答案格式:2021-01-01 01:01:01) (2.0分)

text
2024-10-23 15:33:22

image-20250122162151814

image-20250122162239087

手机取证-9#

20#

题目描述#


分析手机检材,写出嫌疑人钱包账户的导入时间;(北京时区,答案格式:1990-01-01 01:01:01) (6.0分)

text
2024-11-22 17:18:30

image-20250122162614495

image-20250122162642377

image-20250122162906206

image-20250122162916998

服务器取证#

服务器取证-1#

20#

题目描述#


请写出服务器系统内核版本;(答案格式:1.1.1-11-abcdefe) (1.0分)

text
6.8.0-48-generic

服务器取证-2#

20#

题目描述#


请写出服务器的ens33网卡的ip地址; (1.0分)

text
10.172.29.128

image-20250122163426539

服务器取证-3#

20#

题目描述#


请写出mysql数据库密码; (4.0分)

text
123568

配一下网

bash
root@gass-virtual-machine:/etc/netplan# sudo chmod 600 /etc/netplan/01-network-manager-all.yaml
root@gass-virtual-machine:/etc/netplan# vi 01-network-manager-all.yaml 
root@gass-virtual-machine:/etc/netplan# sudo netplan apply
yaml
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens33:
      dhcp4: no
      addresses:
        - 10.172.29.100/8
      routes:
        - to: default
          via: 10.172.29.2
      nameservers:
          addresses: [8.8.8.8, 8.8.4.4]

翻网站目录

image-20250122164831855

image-20250122165015668

验证一下

image-20250122165046000

服务器取证-4#

20#

题目描述#


后台服务中注册中心的服务端口是多少?(答案格式:纯数字) (2.0分)

text
7000

image-20250122170325233

image-20250122170553647

服务器取证-5#

20#

题目描述#


服务器nginx日志中,哪个ip访问系统最为频繁?(答案格式:6.6.6.6) (6.0分)

text
56.111.197.176

image-20250122170219885

image-20250122172339960

服务器取证-6#

20#

题目描述#


请写出平台管理员密码加密算法;(答案格式:aes) (3.0分)

text
md5

image-20250122171056863

md5加盐 盐值在配置文件里拉

text
XehGyeyrVgOV4P8Uf70REVpIw3iVNwNs

image-20250122171110717

image-20250122171122024

image-20250122171234123

服务器取证-7#

20#

题目描述#


假设某管理员密码是123456,请问该管理员的密码在数据库中存储的值是多少?(答案格式:如有字母,全大写) (5.0分)

text
985EB5B028065701341A478A9215E7B2

md5(123456XehGyeyrVgOV4P8Uf70REVpIw3iVNwNs)

image-20250122172520449

服务器取证-8#

20#

题目描述#


已知某人卖出了5.2个ETH/USDT,请问他的二级推荐人可以获得多少个ETH佣金?(答案格式:写出数字即可,保留小数点后5位) (6.0分)

text
0.000052

这一题比较难,首先要想做这一题,需要了解java开发的一些基本知识。 我简单来说一下,首先,java查询mysql,需要有一个javabean(具体是什么,大家自行百度),简单理解就是映射mysql字段。 其次,分为control层,dao层,Imp层和service层,一般具体实现是在service,所以,我们只需要追control和service就行。 以上是我们的大前提。

摘自 https://mp.weixin.qq.com/s/nb-5IzT92ONqXxrXYMU6Ug

查看对应规则

image-20250122174251859

java
public void processOrder(ExchangeOrder order, ExchangeTrade trade, ExchangeCoin coin, boolean secondReferrerAward) {
        BigDecimal turnover;
        BigDecimal fee;
        BigDecimal incomeCoinAmount;
        BigDecimal outcomeCoinAmount;
        try {
            Long time = Long.valueOf(Calendar.getInstance().getTimeInMillis());
            ExchangeOrderDetail orderDetail = new ExchangeOrderDetail();
            orderDetail.setOrderId(order.getOrderId());
            orderDetail.setTime(time.longValue());
            orderDetail.setPrice(trade.getPrice());
            orderDetail.setAmount(trade.getAmount());
            if (order.getDirection() == ExchangeOrderDirection.BUY) {
                turnover = trade.getBuyTurnover();
            } else {
                turnover = trade.getSellTurnover();
            }
            orderDetail.setTurnover(turnover);
            if (order.getDirection() == ExchangeOrderDirection.BUY) {
                fee = trade.getAmount().multiply(coin.getFee());
            } else {
                fee = turnover.multiply(coin.getFee());
            }
            if (order.getMemberId().longValue() == 1 || order.getMemberId().longValue() == 10001) {
                fee = BigDecimal.ZERO;
            }
            orderDetail.setFee(fee);
            this.exchangeOrderDetailRepository.save(orderDetail);
            OrderDetailAggregation aggregation = new OrderDetailAggregation();
            aggregation.setType(OrderTypeEnum.EXCHANGE);
            aggregation.setAmount(order.getAmount().doubleValue());
            aggregation.setFee(orderDetail.getFee().doubleValue());
            aggregation.setTime(orderDetail.getTime());
            aggregation.setDirection(order.getDirection());
            aggregation.setOrderId(order.getOrderId());
            if (order.getDirection() == ExchangeOrderDirection.BUY) {
                aggregation.setUnit(order.getBaseSymbol());
            } else {
                aggregation.setUnit(order.getCoinSymbol());
            }
            Member member = this.memberService.findOne(order.getMemberId());
            if (member != null) {
                aggregation.setMemberId(member.getId());
                aggregation.setUsername(member.getUsername());
                aggregation.setRealName(member.getRealName());
            }
            this.orderDetailAggregationRepository.save(aggregation);
            if (order.getDirection() == ExchangeOrderDirection.BUY) {
                incomeCoinAmount = trade.getAmount().subtract(fee);
            } else {
                incomeCoinAmount = turnover.subtract(fee);
            }
            String incomeSymbol = order.getDirection() == ExchangeOrderDirection.BUY ? order.getCoinSymbol() : order.getBaseSymbol();
            MemberWallet incomeWallet = this.memberWalletService.findByCoinUnitAndMemberId(incomeSymbol, order.getMemberId());
            this.memberWalletService.increaseBalance(incomeWallet.getId(), incomeCoinAmount);
            String outcomeSymbol = order.getDirection() == ExchangeOrderDirection.BUY ? order.getBaseSymbol() : order.getCoinSymbol();
            if (order.getDirection() == ExchangeOrderDirection.BUY) {
                outcomeCoinAmount = turnover;
            } else {
                outcomeCoinAmount = trade.getAmount();
            }
            MemberWallet outcomeWallet = this.memberWalletService.findByCoinUnitAndMemberId(outcomeSymbol, order.getMemberId());
            this.memberWalletService.decreaseFrozen(outcomeWallet.getId(), outcomeCoinAmount);
            MemberTransaction transaction = new MemberTransaction();
            transaction.setAmount(incomeCoinAmount);
            transaction.setSymbol(incomeSymbol);
            transaction.setAddress("");
            transaction.setMemberId(incomeWallet.getMemberId());
            transaction.setType(TransactionType.EXCHANGE);
            transaction.setFee(fee);
            transaction.setDiscountFee("0");
            transaction.setRealFee(fee.toString());
            this.transactionService.save(transaction);
            MemberTransaction transaction2 = new MemberTransaction();
            transaction2.setAmount(outcomeCoinAmount.negate());
            transaction2.setSymbol(outcomeSymbol);
            transaction2.setAddress("");
            transaction2.setMemberId(incomeWallet.getMemberId());
            transaction2.setType(TransactionType.EXCHANGE);
            transaction2.setFee(BigDecimal.ZERO);
            transaction2.setRealFee("0");
            transaction2.setDiscountFee("0");
            this.transactionService.save(transaction2);
            try {
                if (order.getDirection() == ExchangeOrderDirection.SELL) {
                    promoteReward(fee, member, incomeSymbol, secondReferrerAward);
                }
            } catch (Exception e) {
                e.printStackTrace();
                log.error("发放币币交易推广手续费佣金出错", e);
            }
        } catch (Exception e2) {
            log.info(">>>>>处理交易明细出错>>>>>>>>>{}", e2);
            e2.printStackTrace();
        }
    }

    public List<ExchangeOrderDetail> getAggregation(String orderId) {
        return this.exchangeOrderDetailService.findAllByOrderId(orderId);
    }

    public void promoteReward(BigDecimal fee, Member member, String incomeSymbol, boolean secondReferrerAward) {
        RewardPromotionSetting rewardPromotionSetting = this.rewardPromotionSettingService.findByType(PromotionRewardType.EXCHANGE_TRANSACTION);
        if (rewardPromotionSetting != null && member.getInviterId() != null && DateUtil.diffDays(new Date(), member.getRegistrationTime()) <= rewardPromotionSetting.getEffectiveTime()) {
            Member member1 = this.memberService.findOne(member.getInviterId());
            MemberWallet memberWallet = this.memberWalletService.findByCoinUnitAndMemberId(incomeSymbol, member1.getId());
            JSONObject jsonObject = JSONObject.parseObject(rewardPromotionSetting.getInfo());
            BigDecimal reward = BigDecimalUtils.mulRound(fee, BigDecimalUtils.getRate(jsonObject.getBigDecimal("one")), 8);
            if (reward.compareTo(BigDecimal.ZERO) > 0) {
                this.memberWalletService.increaseBalance(memberWallet.getId(), reward);
                MemberTransaction memberTransaction = new MemberTransaction();
                memberTransaction.setAmount(reward);
                memberTransaction.setFee(BigDecimal.ZERO);
                memberTransaction.setMemberId(member1.getId());
                memberTransaction.setSymbol(incomeSymbol);
                memberTransaction.setType(TransactionType.PROMOTION_AWARD);
                memberTransaction.setDiscountFee("0");
                memberTransaction.setRealFee("0");
                this.transactionService.save(memberTransaction);
                RewardRecord rewardRecord1 = new RewardRecord();
                rewardRecord1.setAmount(reward);
                rewardRecord1.setCoin(memberWallet.getCoin());
                rewardRecord1.setMember(member1);
                rewardRecord1.setRemark(rewardPromotionSetting.getType().getCnName());
                rewardRecord1.setType(RewardRecordType.PROMOTION);
                this.rewardRecordService.save(rewardRecord1);
            }
            if (!secondReferrerAward) {
                log.info("控制字段 : secondReferrerAward ={} , 跳过二级推荐人返佣", Boolean.valueOf(secondReferrerAward));
            } else if (member1.getInviterId() != null && DateUtil.diffDays(new Date(), member1.getRegistrationTime()) <= rewardPromotionSetting.getEffectiveTime()) {
                Member member2 = this.memberService.findOne(member1.getInviterId());
                MemberWallet memberWallet1 = this.memberWalletService.findByCoinUnitAndMemberId(incomeSymbol, member2.getId());
                BigDecimal reward1 = BigDecimalUtils.mulRound(fee, BigDecimalUtils.getRate(jsonObject.getBigDecimal("two")), 8);
                if (reward1.compareTo(BigDecimal.ZERO) > 0) {
                    this.memberWalletService.increaseBalance(memberWallet1.getId(), reward);
                    MemberTransaction memberTransaction2 = new MemberTransaction();
                    memberTransaction2.setAmount(reward1);
                    memberTransaction2.setFee(BigDecimal.ZERO);
                    memberTransaction2.setMemberId(member2.getId());
                    memberTransaction2.setSymbol(incomeSymbol);
                    memberTransaction2.setType(TransactionType.PROMOTION_AWARD);
                    this.transactionService.save(memberTransaction2);
                    RewardRecord rewardRecord12 = new RewardRecord();
                    rewardRecord12.setAmount(reward1);
                    rewardRecord12.setCoin(memberWallet1.getCoin());
                    rewardRecord12.setMember(member2);
                    rewardRecord12.setRemark(rewardPromotionSetting.getType().getCnName());
                    rewardRecord12.setType(RewardRecordType.PROMOTION);
                    this.rewardRecordService.save(rewardRecord12);
                }
            }
        }
    }

去数据库找

image-20250122185842430

汇率为0.001

image-20250122190012820

image-20250122190026129

二级是0.1

因此5.2*0.001*0.01=0.000052

服务器取证-9#

20#

题目描述#


请找到受害人“王涵”的手机号; (1.0分)

text
15780139471

image-20250122190945900

服务器取证-10#

20#

题目描述#


请写出嫌疑人的违法交易网站的中文名称;(答案格式:2个汉字) (3.0分)

重构网站

image-20250122191424737

text
find ./ -type f -exec sed -i 's/127.0.0.1/10.172.29.100/g' {} +

服务器取证-11#

20#

题目描述#


请写出数据库中Recharge表的status字段中,0代表的中文含义; (1.0分)

text
未到账

image-20250122192402078

服务器取证-12#

20#

题目描述#


平台中所有账户中ETH余额最多的地址是多少?(答案格式:0x123F...) (6.0分)

text
0x928f5963c03340077a8d2375657fb3395fe4a790

image-20250122192445513

使用geth并且给了查询语句

ai写一个即可

text
var accounts = eth.accounts; var _max = 0; var _max_address = ''; for(var account of accounts){ var balance = eth.getBalance(account); if(balance > _max){ _max = balance; _max_address = account; }}; [web3.fromWei(_max, "ether"), _max_address]

服务器取证-13#

20#

题目描述#


区块链搭建工具是?(答案格式:abcd) (1.0分)

text
geth

同上

服务器取证-14#

20#

题目描述#


区块链对外提供的的http端口是? (2.0分)

text
8551

image-20250122194220251

image-20250122194130752

服务器取证-15#

20#

题目描述#


服务器网站数据库使用的字符集为?(答案格式:如有字母,请小写) (1.0分)

text
utf8mb4

image-20250122194345016

服务器取证-16#

20#

题目描述#


由于服务器定时清理了交易数据,请找寻整个区块链中最大的交易金额(答案格式:0x123F...) (6.0分)

text
0xbb218c4bd443824260673a92b575f6c249085b6e482d89f1445fdb4ba487b9f2
javascript
var max = web3.toBigNumber(0); var maxTx; for(var i = 0; i <= eth.blockNumber; i++) { var b = eth.getBlock(i, true); if(b && b.transactions) { b.transactions.forEach(function(tx) { if(tx.value > max) { max = tx.value; maxTx = tx; } }); } }; web3.fromWei(max, "ether")

服务器取证-17#

20#

题目描述#


请写出嫌疑人在chrome上使用的钱包名称;(答案格式:如有字母全小写) (2.0分)

text
metamask

image-20250122194559287

服务器取证-18#

20#

题目描述#


请写出chrome钱包插件使用的pbkdf2加密算法的轮次;(答案格式:纯数字) (4.0分)

text
600000

image-20250122195253552

image-20250122195726844

根据报错打断点调试也可以

image-20250122201501932

image-20250122201702789

服务器取证-19#

20#

题目描述#


Chrome钱包密码的算法中对iv的加密方式是什么?(答案格式:如有字母请小写,如md5) (4.0分)

text
aes-gcm

image-20250122201535169

题目描述#


已知服务器中嫌疑人的钱包登录密码为八位纯数字生日1994****,请写出该密码; (6.0分)

text
19940822
json
data
: 
"4OBSCQ3fpgiiQG1CUT2KVKU9Sma1ixgcZ1xBb+XeQXlX9yFbyj6HgpPH4vKktB39FPVD5wlV0fFrKkrB4YvkwS4y0P2y15GrSMvJ7ZPV2FdT+o7/s9ydryf4j/dvWssWhlpIf8+Z/GTWxrd0pEKCumJ0SgM7pNCn+LPufqgAAc8Phk1V2G78YFFn27hoPalU+mfyLirBvbcNCe7PZhUEf02OB9HJxc6NL8VGHZ0mugf8CMCU4CfoMWBjGB358XwYgqVCAYfPeP612BcqH/2qGsf4v5MUynaoWjR3CDxg6z5n/SzvayET9KxzpnP5/YwrI1Kr6KSuX8hfWa4G7Qect7gRcJ5OSP9vjDAE0Oa7+2RoOvSuDhONrit9JD1j3PlF/HLHjCWcAxFPAqQHnaXHUT7+O/UR/nHBBUjwZqXcA3NvY6Up9gEyp7v252JKw/ybv9PYsNVBNNzaOCHM+2vLu4AEdhsJjEmzz1BMnl2a10lX3PIxT6g+eVdHNVOkeESS7Xiufrh1BNEXemU+/Mj8zOzC8X3sC+h7k6V+j8FO5gFFIsGVsehmhjQ0g3hv5OjHLu+8UbJ19HVC6nzyopbHF1EbgVc4bEfnsqxpBQT4xGY27MQLFa2SlcpRpue1NpZWdhV2C8/wTSBmcgnm3PHWgvBiuA=="
iv
: 
"oi49chysOL0hAXfqbviWIA=="

salt
: 
"fhlH2383hn7sqEKiLN8zSqv/F/v9x0s3xj/1zBI1zkA="

image-20250122201755910

gpt写脚本

python
from base64 import b64decode
from Crypto.Protocol.KDF import PBKDF2
from Crypto.Cipher import AES
from Crypto.Hash import SHA256

data = "4OBSCQ3fpgiiQG1CUT2KVKU9Sma1ixgcZ1xBb+XeQXlX9yFbyj6HgpPH4vKktB39FPVD5wlV0fFrKkrB4YvkwS4y0P2y15GrSMvJ7ZPV2FdT+o7/s9ydryf4j/dvWssWhlpIf8+Z/GTWxrd0pEKCumJ0SgM7pNCn+LPufqgAAc8Phk1V2G78YFFn27hoPalU+mfyLirBvbcNCe7PZhUEf02OB9HJxc6NL8VGHZ0mugf8CMCU4CfoMWBjGB358XwYgqVCAYfPeP612BcqH/2qGsf4v5MUynaoWjR3CDxg6z5n/SzvayET9KxzpnP5/YwrI1Kr6KSuX8hfWa4G7Qect7gRcJ5OSP9vjDAE0Oa7+2RoOvSuDhONrit9JD1j3PlF/HLHjCWcAxFPAqQHnaXHUT7+O/UR/nHBBUjwZqXcA3NvY6Up9gEyp7v252JKw/ybv9PYsNVBNNzaOCHM+2vLu4AEdhsJjEmzz1BMnl2a10lX3PIxT6g+eVdHNVOkeESS7Xiufrh1BNEXemU+/Mj8zOzC8X3sC+h7k6V+j8FO5gFFIsGVsehmhjQ0g3hv5OjHLu+8UbJ19HVC6nzyopbHF1EbgVc4bEfnsqxpBQT4xGY27MQLFa2SlcpRpue1NpZWdhV2C8/wTSBmcgnm3PHWgvBiuA=="
salt = "fhlH2383hn7sqEKiLN8zSqv/F/v9x0s3xj/1zBI1zkA="
iv = "oi49chysOL0hAXfqbviWIA=="
iteration = 600000
for month in range(1, 13):
    for day in range(1, 32):
        password = f"1994{month:02}{day:02}"
        key = PBKDF2(password, b64decode(salt), dkLen=32, count=iteration, hmac_hash_module=SHA256)
        cipher = AES.new(key, AES.MODE_GCM, nonce=b64decode(iv))
        decrypted_data = cipher.decrypt(b64decode(data))
        print(f"decrypted_data {decrypted_data}")
        print(f"passowrd {password}")

image-20250122203924348

数据分析#

数据分析-1#

20#

题目描述#


分析数据库检材,请分别计算该数据库中每个用户审核通过的提现总金额,写出审核通过的提现总金额最大值; (2.0分)

text
343916.84

先对status=1筛选后聚合

image-20250122205021598

数据分析-2#

20#

题目描述#


数据库中用户真实名称为“祝钦”的有效银行卡号是多少; (2.0分)

text
72282800515037280116

image-20250122205123338

根据姓名得到uid 根据uid找有效银行卡号

image-20250122205148822

数据分析-3#

20#

题目描述#


请计算数据库中地址在江苏省的启用用户数量; (2.0分)

text
803

image-20250122205350664

数据分析-4#

20#

题目描述#


请计算手机号字段中的号码数字“8”的数量大于等于3的用户数量; (4.0分)

text
2810

image-20250122205624950

数据分析-5#

20#

题目描述#


计算每个用户审核通过的总提现金额与其总消费金额的比值,该比值大于等于0.5的用户数量是多少? (4.0分)

text
323

image-20250122210006233

导出后使用=COUNTIF(E2:E4254,">0.5")

image-20250122210334258

数据分析-6#

20#

题目描述#


计算uid为“20257”的用户的下线最大层级数是多少(自己为第1层,若用户A是自己的直接下线,那么此时用户A所在层级=2); (4.0分)

text
24

导入组织架构,手动匹配一下

image-20250122210603301

image-20250122210911652

查看归档
站内搜索

输入关键词,查找 39 篇记录。