吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6181|回复: 189
上一主题 下一主题
收起左侧

[Android 原创] 《安卓逆向这档事》五、1000-7=?&动态调试&Log插桩

  [复制链接]
跳转到指定楼层
楼主
正己 发表于 2022-11-17 23:10 回帖奖励
本帖最后由 正己 于 2022-11-22 21:51 编辑

|500

一、课程目标


1.配置java环境
2.了解并掌握动态调试
3.了解并掌握Log插桩

二、工具


1.教程Demo
2.MT管理器/NP管理器
3.jeb
4.雷电模拟器
5.XappDebug

三、课程内容


1.配置java环境

1.下载jdk文件并安装(课件里有)
2.配置java环境
ps:在视频里面环境配置只配置了一个JAVA_HOME
还有一个Path和CLASSPATH,请参考这篇文档,写得很详细,配置完后记得cmd窗口输入java验证一下
java 环境配置(详细教程)

2.什么是动态调试

动态调试是指自带的调试器跟踪自己软件的运行,可以在调试的过程中知道参数或者局部变量的值以及履清代码运行的先后顺序。多用于爆破注册码(CTF必备技能)

3.动态调试步骤

1.修改debug权限

方法一:在AndroidManifest.xml里添加可调试权限

android:debuggable="true"

方法二:XappDebug模块hook对应的app

项目地址

XappDebug

方法三:Magisk命令(重启失效)

1.  adb shell #adb进入命令行模式

2.  su #切换至超级用户

3.  magisk resetprop ro.debuggable 1

4.  stop;start; #一定要通过该方式重启

方法四:刷入MagiskHide Props Config模块(永久有效,但我这两台手机都不行,哭死,呜呜呜)

一般来说,在4选项中如果有ro.debuggable那就直接修改
没有的话就选5

修改ro.debuggable的值为1

2.端口转发以及开启adb权限

版本号点击七次开启开发者模式并开启adb调试权限

夜神模拟器:adb connect 127.0.0.1:62001

3.下段点

ctrl+b下断点

4.debug模式启动

adb shell am start -D -n com.zj.wuaipojie/.ui.MainActivity

adb shell am start -D -n
adb shell am start -D -n 包名/类名
am start -n 表示启动一个activity
am start -D 表示将应用设置为可调试模式

5.Jeb附加调试进程

激活jeb

在线python运行
https://tool.lu/coderunner/

算号代码:

#https://bbs.pediy.com/
#!/usr/bin/env python
import os, sys, struct, time, binascii, hashlib

RC4_Key2= 'Eg\xa2\x99_\x83\xf1\x10'

def rc4(Key, inData):
    Buf = ""
    S = range(256)
    K = (map(lambda x:ord(x), Key) * (256 / len(Key) + 1))[:256]
    j = 0
    for i in range(256):
        j = (S[i] + K[i] + j) % 256
        S[i], S[j] = S[j], S[i]
    i, j = 0, 0
    for x in range(len(inData)):
        i = (i + 1) % 256
        j = (j + S[i]) % 256
        S[i], S[j] = S[j], S[i]
        Buf += chr(S[(S[j] + S[i]) % 256] ^ ord(inData[x]))
    return Buf

def Long2Int(longdata):
    lo = longdata & 0xFFFFFFFF
    hi = (longdata >> 32) & 0x7FFFFFFF
    return hi, lo

def KeygenSN(LicenseSerial, MachineID):
    mhi, mlo = Long2Int(MachineID)
    lhi, llo = Long2Int(LicenseSerial)
    hi_Key = (mhi - lhi + 0x55667788) & 0x7FFFFFFF
    lo_Key = (mlo + llo + 0x11223344) & 0xFFFFFFFF
    Z0, = struct.unpack('<Q', struct.pack('<LL', lo_Key, hi_Key))
    Z1 = int(time.time()) ^ 0x56739ACD
    s = sum(map(lambda x:int(x, 16), "%x" % Z1)) % 10
    return "%dZ%d%d" % (Z0, Z1, s)

def ParsePost(buf):
    Info = struct.unpack('<3L2Q4LQ3L', buf[:0x40])
    flag, CRC, UserSerial, LicenseSerial, MachineID, build_type, \
          Ver_Major, Ver_Minor, Ver_Buildid, Ver_Timestamp, \
          TimeOffset, Kclass, Random2 = Info
    SysInfoData = buf[0x40:]
    assert CRC == binascii.crc32(buf[8:]) & 0xFFFFFFFF
    return Info, SysInfoData

def DecodeRc4Str(buf):
    buf = buf.decode('hex')
    i, s = ParsePost(rc4(buf[:8] + RC4_Key2, buf[8:]))
    return i, s

def GetJebLicenseKey():
    licdata = ""
    if licdata:
        i, MachineID = DecodeRc4Str(licdata)
        SN = KeygenSN(i[3], i[4])
        print "JEB License Key:", SN
        return SN

GetJebLicenseKey()
raw_input("Enter to Exit...")

快捷键:
^F6进入方法
F6跳过方法
F7从方法中跳出来
R运行到光标处

3.Log插桩

定义:Log插桩指的是反编译APK文件时,在对应的smali文件里,添加相应的smali代码,将程序中的关键信息,以log日志的形式进行输出。

调用命令


invoke-static {对应寄存器}, Lcom/mtools/LogUtils;->v(Ljava/lang/Object;)V

四、课后小作业


动态调试获取注册码
https://wwl.lanzoub.com/iZ0tt0fzsbpa
作业提交地址:
《安卓逆向这档事》第五节课后小作业贴
https://www.52pojie.cn/thread-1714883-1-1.html
(出处: 吾爱破解论坛)

五、答疑


关于jeb动态调试没有进程的问题,请看下面顶置的评论,替换个新的adb

六、视频及课件地址


百度云
阿里云
哔哩哔哩
PS:解压密码都是52pj,阿里云由于不能分享压缩包,所以下载exe文件,双击自解压

七、其他章节


《安卓逆向这档事》一、模拟器环境搭建
《安卓逆向这档事》二、初识APK文件结构、双开、汉化、基础修改
《安卓逆向这档事》第三课、初识smail,vip终结者
《安卓逆向这档事》四、恭喜你获得广告&弹窗静默卡

八、参考文档


Android修改ro.debuggable 的四种方法
Log简易打印工具,超简单的调用方法
JEB动态调试Smali-真机/模拟器(详细,新手必看)

免费评分

参与人数 59威望 +1 吾爱币 +86 热心值 +53 收起 理由
snailli1998 + 1 + 1 用心讨论,共获提升!
wuaihaizhan9527 + 1 谢谢@Thanks!
wgd0ay + 1 + 1 用心讨论,共获提升!
sobitterx + 1 + 1 谢谢@Thanks!
MYPcodcsja + 1 + 1 谢谢@Thanks!
haoera + 1 鼓励转贴优秀软件安全工具和文档!
zhangxu888 + 1 + 1 我很赞同!
weikechi626 + 1 + 1 谢谢@Thanks!
Idocc + 1 + 1 用心讨论,共获提升!
Schwarz + 1 + 1 谢谢@Thanks!
反正不是我 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
烟凌 + 1 谢谢@Thanks!
zym951206 + 1 + 1 热心回复!
VAabcjjsw + 1 + 1 我很赞同!
CC520CC + 1 + 1 谢谢@Thanks!
sunxun168 + 1 谢谢@Thanks!
笙若 + 1 + 1 谢谢@Thanks!
fightingapple + 1 + 1 谢谢@Thanks!
风烟丶残梦 + 1 论坛禁止求脱求破,求助软件分析思路,务必在主题帖中描述清楚你的分析思路.
weixu + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
XXXXXXXXMMMM + 1 + 1 我很赞同!
疾风冲刺 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
pnccm + 2 + 1 用心讨论,共获提升!
allophus + 1 + 1 谢谢@Thanks!
crizquan + 1 + 1 我很赞同!
Triflingmat + 1 + 1 谢谢@Thanks!
lanxx + 1 + 1 谢谢@Thanks!
莫问刀 + 1 + 1 谢谢@Thanks!
bluedream2001 + 1 + 1 用心讨论,共获提升!
Courser + 1 + 1 谢谢@Thanks!
cx2018 + 1 + 1 我很赞同!
xspapdc + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
superworker2022 + 1 + 1 用心讨论,共获提升!
sifeng + 1 + 1 谢谢@Thanks!
Doubts + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
qian2014 + 1 用心讨论,共获提升!
changlongyougon + 1 + 1 我很赞同!
xiaotian35 + 1 + 1 我很赞同!
zp999 + 1 + 1 谢谢@Thanks!
actor9527 + 1 + 1 用心讨论,共获提升!
liuxingtang1 + 3 + 1 谢谢@Thanks!
sanshi30 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
allspark + 1 + 1 用心讨论,共获提升!
wangdanq + 1 + 1 谢谢@Thanks!
haler.zhang + 1 + 1 热心回复!
笨笨家的唯一 + 1 + 1 热心回复!
kentish + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
芽衣 + 4 + 1 免费送分
keyyan + 1 + 1 来了来了,大佬带着牛逼教程走来了
大大连连 + 1 + 1 谢谢@Thanks!
peiwithhao + 2 + 1 我很赞同!
jafck + 1 + 1 谢谢@Thanks!——盼到了
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
QQ12349qq + 1 + 1 用心讨论,共获提升!
Frank丶 + 1 + 1 用心讨论,共获提升!
y21 + 1 + 1 努力学习
菜鸟小宝 + 2 + 1 用心讨论,共获提升!
lin2lin3lin5 + 1 + 1 谢谢@Thanks!
yuanyxh + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

来自 106#
lz0618 发表于 2022-11-19 15:00
本帖最后由 lz0618 于 2022-11-19 15:06 编辑

找到原因了,是adb版本问题,原来adb版本是1.0.31的,是雷电模拟器下的,我其他地方的adb大多也是这个版本,后来我换成1.0.41版本,就正常了,需要注意的是,雷电模拟器下的adb版本也要换成同一个版本1.0.41,否则可能连模拟器都发现不了!!!!



adb替换三个文件即可:



另外,换成新的adb版本,有时会发现有两个模拟器同时online,这时在模拟器上启动调试的app的命令加一个-s参数:

[Asm] 纯文本查看 复制代码
C:\Users\lizhong>adb -s emulator-5556 shell am start -D -n com.zj.wuaipojie/com.zj.wuaipojie.ui.MainActivity
Starting: Intent { cmp=com.zj.wuaipojie/.ui.MainActivity }


-s后面的参数“emulator-5556”是通过adb devices命令查出来的:

[Asm] 纯文本查看 复制代码
c:\>adb devices
List of devices attached
emulator-5556   device


大家都安装的一样的东西,难道你们都不出问题吗?好奇怪啊

免费评分

参与人数 2吾爱币 +5 热心值 +2 收起 理由
星空之下星星 + 1 + 1 用心讨论,共获提升!
正己 + 4 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

推荐
 楼主| 正己 发表于 2022-11-18 15:13 |楼主
双眼皮的微笑 发表于 2022-11-18 11:59
终于等到你了 家里封了一周了 每天都要上来看看,话说b站怎么还没上传啊 迫不及待,我币都准备好了。{:301_ ...

上传了哦
推荐
 楼主| 正己 发表于 2022-11-17 23:11 |楼主
剪完视频感觉动态调试讲的很拉垮,本来想用测试机再讲一遍,结果今晚测试机打不开了,明天再刷一遍系统

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Huibq120 + 1 + 1 我很赞同!

查看全部评分

3#
yuanyxh 发表于 2022-11-17 23:17
我也会jvav啊

点评

简大仙教教我  详情 回复 发表于 2022-11-17 23:19
4#
 楼主| 正己 发表于 2022-11-17 23:19 |楼主

简大仙教教我
5#
侃遍天下无二人 发表于 2022-11-17 23:20
本帖最后由 侃遍天下无二人 于 2022-11-17 23:21 编辑

可以用Android Studio调试吗,JEB感觉地位有些尴尬,对我来说既没jadx舒服,也没Android Studio常用,关键还是个付费软件,所以平时就不装

点评

可以,用java2smali插件,因为装as坑太多,所以没当做例子  详情 回复 发表于 2022-11-17 23:49
6#
lin2lin3lin5 发表于 2022-11-17 23:21
感谢楼主分享。期待已久,持续追更ing
7#
paypojie 发表于 2022-11-17 23:21
我也会java啊 之前略学过一点点
8#
fengwolf3 发表于 2022-11-17 23:25
终于等到大佬更新了
9#
ycj255999 发表于 2022-11-17 23:28
向大佬学习
10#
y21 发表于 2022-11-17 23:38
终于又更新啦!!nice
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2022-12-9 20:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表