upx IDA UNF #10 错误崩溃

这里的参数:R0: l_info 的偏移 R1:0x3BB0 R2:init 前 4 字节
LOAD:000022B4 BL restore_core_regs ; 崩溃点

2b8

EEC37000
0xeec5747c BL SUB_EEC573D4

EEC351A0 00 00 00 EF 7F 00 A0 E3 01 70 A0 E3 00 00 00 EF ................
EEC351B0 50 52 4F 54 5F 45 58 45 43 7C 50 52 4F 54 5F 57 PROT_EXEC|PROT_W
EEC351C0 52 49 54 45 20 66 61 69 6C 65 64 2E 0A 00 2D 2A RITE failed...-*
EEC351D0 00 00 00 00 73 46 01 3B 1B 06 89 08 1B 0E 89 00 ....sF.;........
EEC351E0 50 2B 11 D1 0E E0 04 39 42 58 13 01 00 00 00 00 P+......BX......
EEC351F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
EEC35200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

EEC351A0 00 00 00 EF 7F 00 A0 E3 01 70 A0 E3 00 00 00 EF ................
EEC351B0 50 52 4F 54 5F 45 58 45 43 7C 50 52 4F 54 5F 57 PROT_EXEC|PROT_W
EEC351C0 52 49 54 45 20 66 61 69 6C 65 64 2E 0A 00 2D 2A RITE failed...-*
EEC351D0 00 00 00 00 73 46 01 3B 1B 06 89 08 1B 0E 89 00 ....sF.;........
EEC351E0 50 2B 11 D1 0E E0 04 39 42 58 13 01 1B 0F 0B 2B P+......BX.....+
EEC351F0 08 D1 89 08 53 1A 89 00 12 0E 1B 02 12 06 1B 0A .щ .S...........
EEC35200 1A 43 42 50 00 29 EE D1 70 47 00 B5 00 00 00 00 .CBP.)...G......
EEC35210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

libdu.so:EEC57418 MOVS R2, #0
libdu.so:EEC5741A MOVS R7, #0xF0002
libdu.so:EEC57420 SVC 0
libdu.so:EEC57422 BX LR

EEC351B0 50 52 4F 54 5F 45 58 45 43 7C 50 52 4F 54 5F 57 PROT_EXEC|PROT_W
EEC351C0 52 49 54 45 20 66 61 69 6C 65 64 2E 0A 00 2D 2A RITE failed...-*
EEC351D0 00 00 00 00 73 46 01 3B
1B 06 89 08 1B 0E 89 00 ....sF.;........
EEC351E0 50 2B 11 D1 0E E0 04 39 42 58 13 01 1B 0F 0B 2B P+......BX.....+
EEC351F0 08 D1 89 08 53 1A 89 00 12 0E 1B 02 12 06 1B 0A .щ .S...........
EEC35200 1A 43 42 50 00 29 EE D1 70 47 00 B5
00 24 E4 43 .CBP.)...G...$..
EEC35210 32 23 03 22 0D 99 0C 98 06 1C C0 27 00 DF B0 42 2#.".........߰ B
EEC35220 00 D0 01 DE 0B 9D 0F 99 00 F0 29 F8 1F BC A0 47 ...............G
EEC35230 08 BC 03 BC 03 B4 40 18 09 4B 03 60 01 30 0B 90 ......@..K..0.. EEC35240 3F BC 1B 42 00 D0 A0 47 00 98 01 99 09 18 00 F0 ?..B.Р G........ EEC35250 2B F8 0B BC 9E 46 05 22 7D 27 00 DF 5B 27 03 BD +....F."}'...'.. EEC35260 00 DF FF BD 89 08 89 00 00 B5 0B 1C 00 F0 64 F8 ................ EEC35270 08 BC 9E 46 0B 68 04 31 03 60 04 30 01 3D 07 23 ...F.h.1..0.=.#
EEC35280 1D 42 F7 D1 ED 08 0D D0 78 47 C0 46 D4 03 2D E9 .B.......G....-.
EEC35290 DC 13 B1 E8 F0 01 F0 E7 DC 13 A0 E8 FB FF FF 1A ................
EEC352A0 D4 03 BD E8 1E FF 2F E1 00 22 0F 27 3F 04 02 37 ....../....'?..7
EEC352B0 00 DF 70 47 73 46 01 3B 00 00 00 00 00 00 00 00 ...GsF.;........

eec18aac -> eec35084 -> EEC351C0 -> EEC351F4

eec36000 源地址
EEC564CC 地址处,与 .s 源码不同, -->> 相同

libdu.so:EEC564CC MOVS R2, #0
libdu.so:EEC564CE MOVS R7, #0xF0002
libdu.so:EEC564D4 SVC 0
libdu.so:EEC564D6 BX LR

F0 01 F0 E7 -> UDF #0x10
变为如下:
D4 03 BD E8 -> LDMFD SP!, {R2,R4,R6-R9}

00 F0 54 F8 取出 f0 00

接着是每4个字节的拷贝 00 24 E4 43 32 23 03 22 0D 99 0C 98 只拷贝了这 12 字节

接着拷贝:
06 1C C0 27 00 DF B0
00 D0 01 DE 0B 9D 0F 99 00 F0 29 F8 1F BC A0 47
08 BC 03 BC 03 B4 40 18 09 4B 03 60 01 30 0B 90
3F BC 1B 42 00 D0 A0 47 00 98 01 99 09 18 00 F0
2B F8 0B BC 9E 46 05 22 7D 27 00 DF 5B 27 03 BD
00 DF FF BD 89 08 89 00 00 B5 0B 1C 00 F0 64 F8
08 BC 9E 46 0B 68 04 31
03 60 04 30 01 3D 07 23
1D 42 F7 D1 ED 08 0D D0 78 47 C0 46 D4 03 2D E9
DC 13 B1 E8 F0 01 F0 E7
DC 13 A0 E8 FB FF FF 1A
F0 01 F0 E7 1E FF 2F E1 00 22 0F 27 3F 04 02 37
00 DF 70 47 73 46 01 3B 00 00 00 00 00 00 00 00

libdu.so:EEC574BC LDMIA R1!, {R2-R4,R6-R9,R12}
libdu.so:EEC574C0 SUBS R5, R5, #1
libdu.so:EEC574C4 STMIA R0!, {R2-R4,R6-R9,R12}
libdu.so:EEC574C8 BNE loc_EEC574BC
libdu.so:EEC574CC LDMFD SP!, {R2,R4,R6-R9}

R4 拷贝错误,与源码不同,给转变为了 F0 01 F0 E7 ,并显示参数 debug:002 E7F001F0

EEC574A0 0B 68 04 31 03 60 04 30 01 3D 07 23 1D 42 F7 D1 .h.1.`.0.=.#.B..
EEC574B0 ED 08 0D D0 78 47 C0 46 D4 03 2D E9 DC 13 B1 E8 .....G....-.....
EEC574C0 01 50 55 E2 这个值也被改变 改变为 F0 01 F0 E7

LDMIA R1!, {R2-R4,R6-R9,R12}
SUBS R5, R5, #1
STMIA R0!, {R2-R4,R6-R9,R12}
BNE loc_EEC574BC
LDMFD SP!, {R2,R4,R6-R9}

与代码长度无关
到 194 时依然正常

解决:他奶奶的

IDA 翻译对应的指令如下,我给直接复制了过来,编译不会报错,没有错误信息,但在加载的时候却出现 UDF #0x10,然后崩溃
LDR R5, =0xFFFFF000

这个指令对应的是
LDR R5, [PC, #0x40]

用这个指令替换掉 FFF000

所以在写 shellcode 的时候,要仔细,不要仅看编译过了,还有其他的问题呢

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容