标签: recompile

反编译APK,修改它然后重新编译它

我需要修改现有的APK,修改源代码然后重新编译它.

  • 我可以使用dex2jar或apktool对它进行反编译,它工作得很好
  • 从jar文件中我可以获得java源码(使用jd-gui)
  • 然后我可以修改java文件

但是现在我想知道如何重新编译java文件并将它们放回到jar文件中!(jar部分应该很简单,主要问题似乎是如何为android重新编译java文件)

我知道另一种解决方案是使用apktool然后修改smali文件,但是当我们想要添加大量代码时,它似乎真的很复杂!

我的应用程序是一个基本的HelloWorld whitout混淆.

java android decompiling recompile

63
推荐指数
5
解决办法
13万
查看次数

如何让Makefile重新编译已更改的文件?

我一直在努力让make只编译已经编辑过的文件.但是我没有太大成功,所有文件都被重新编译.有人能解释一下为什么吗?

我的文件是:

main.c
a_functions.c
Run Code Online (Sandbox Code Playgroud)

其中main.c包含main.ha_functions.c包含

这是我的makefile:

CC=gcc
CFLAGS=-Wall -I. -c
EXEC_FILE=program1


all: program

a_functions.o: a_functions.c
a_functions.c: a.h
main.o: main.c
main.c: main.h

objects: a_functions.c main.c
    $(CC) a_functions.c main.c $(CFLAGS)

program: a_functions.o main.o
    $(CC) a_functions.o main.o -o $(EXEC_FILE)
Run Code Online (Sandbox Code Playgroud)

根据建议更改makefile似乎有同样的问题::

all: program

a_functions.o: a_functions.c a.h
    gcc a_functions.c -c

main.o: main.c main.h
    gcc main.c -c

program: a_functions.o main.o
    gcc a_functions.o main.o -o program1
Run Code Online (Sandbox Code Playgroud)

c makefile recompile

58
推荐指数
2
解决办法
6万
查看次数

在可执行文件运行时重新编译是否安全?

如果我在运行时重新编译可执行文件会发生什么?操作系统在开始运行时是否将所有可执行文件的内容读入内存,因此它永远不会读取新的可执行文件?或者它会读取新的可执行文件的部分,认为它没有改变,导致可能未定义的行为?

如果我运行的脚本在循环中重复调用可执行文件,并且在脚本运行时重新编译可执行文件,该怎么办?是否保证循环的未来迭代将调用新的可执行文件,并且只有在进行切换时正在进行的调用的结果可能已损坏?

我的操作系统是Linux,但我也很好奇Windows上会发生什么.

linux windows executable recompile

27
推荐指数
4
解决办法
4078
查看次数

Git工作流程 - 更改分支和慢速重新编译

我在一个大型Scala项目上工作,我们使用Git进行版本控制.我的工作流程是在我自己的分支中处理新功能并在需要时切换.各种版本的代码都在自己的分支中.一切都很标准.

如果我必须修复某个版本的代码中的错误,我将切换到正确的分支,修复错误,提交然后切换回我所在的位置.

问题是虽然git在我转到另一个分支后立即进行,我必须重新编译代码.这需要几分钟.然后修复bug,切换回我自己的分支并再做一次重新编译,这需要几分钟.这似乎打败了Git这么快的目的.

有人遇到过这种情况么?有没有办法解决它.我确定这不是Scala特定的问题(尽管Scala在编译时速度很慢).

3年多后更新

在过去的几年里,我一直在使用@djs的答案(git-new-workdir).它对我来说非常好用.我有一个主目录和几个其他目录(如生产,下一个发布等),当我需要在那里工作时,我切换到.开销非常小,这意味着您可以快速切换到说,生产,测试某些东西,然后切换回您正在处理的内容.

更新7年以后

看起来git-worktree是git-new-workdir的替代品.使用:

cd ~/git/my-repo
git worktree add ~/git/my-linked-repo
Run Code Online (Sandbox Code Playgroud)

git branch scala recompile git-worktree

22
推荐指数
2
解决办法
1911
查看次数

dotnet dll反编译并更改代码

我需要更改.NET DLL的代码.我可以通过使用.NET反射器编译DLL来查看代码,但我无法更改DLL的代码.使用.NET Reflector,我反编译代码并保存到我的硬盘中,但是当我能够重新编译代码时,它会给出错误.

很少有代码以二进制格式反编译,很少有代码用c#反编译.是否有任何工具可以更改和重新编译DLL?

以下是我用来尝试反编译DLL的工具:

  • ILSpy
  • DisSharp
  • Reflector7.1带有Reflexil插件
  • Spices.Net.Suite.5.8
  • 部署.NET 1.0.0
  • devextras.codereflect
  • dotPeek-1.0.0.2545
  • intellilock
  • JustDecompile_BETA_2011.1.728.1

不幸的是,没有一个工具能够提供完美的源代码来重新编译DLL代码.

c# dll recompile decompiler

22
推荐指数
2
解决办法
3万
查看次数

使用-fPIC选项重新编译,但该选项已在makefile中

我做make时遇到这个错误:

relocation R_X86_64_32 against `vtable for Torch::MemoryDataSet' can not be used 
when making a shared object; recompile with -fPIC
Run Code Online (Sandbox Code Playgroud)

它说我应该重新编译-fPIC选项.我这样做,将-fPIC选项添加到CFLAGSCXXFLAGS,但我仍然得到相同的错误.有什么方法可以解决这个问题吗?我已经看到这个问题与使用64位机器有关,而且我确实使用了一个.

makefile recompile fpic

21
推荐指数
2
解决办法
3万
查看次数

apktool build apk失败了

我遇到了应用程序apktool问题非常烦人的问题.我不明白我做错了什么,或者问题是什么.我在debian和linux薄荷上试过这个.我使用了不同版本的apktool,

导致同样的错误:

I: Checking whether sources has changed...
I: Checking whether resources has changed...
I: Building resources...
Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, -F, /tmp/APKTOOL3630495287059303807.tmp, -I, /home/awesomename/apktool/framework/1.apk, -S, /home/awesomename/out/./res, -M, /home/awesomename/out/./AndroidManifest.xml]
    at brut.androlib.res.AndrolibResources.aaptPackage(Unknown Source)
    at brut.androlib.Androlib.buildResourcesFull(Unknown Source)
    at brut.androlib.Androlib.buildResources(Unknown Source)
    at brut.androlib.Androlib.build(Unknown Source)
    at brut.androlib.Androlib.build(Unknown Source)
    at brut.apktool.Main.cmdBuild(Unknown Source)
    at brut.apktool.Main.main(Unknown Source)
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, /tmp/APKTOOL3630495287059303807.tmp, -I, /home/windows/apktool/framework/1.apk, -S, /home/windows/out/./res, -M, /home/windows/out/./AndroidManifest.xml]
    at brut.util.OS.exec(Unknown Source)
    ... 7 …
Run Code Online (Sandbox Code Playgroud)

build recompile

20
推荐指数
2
解决办法
5万
查看次数

导入的java类中的public static final变量

我碰巧在我的工作场所遇到过Java代码.这是场景:有两个类 - ClassAClassB.

ClassA除了4个公共静态最终字符串值之外什么都没有.它的目的是使用那些值ClassA.variable(不要问我为什么,这不是我的代码).

ClassB进口ClassA.我编辑了字符串值ClassA并对其进行了编译.当我跑步时,ClassB我可以看到它使用的是旧值 - 而不是新值.我必须重新编译ClassB才能使用新的值ClassA!(我不得不重新编译其他导入的类ClassA!)

这只是因为JDK 1.6或我之前应该知道重新编译的ClassB!开导我.:)

java static final public recompile

18
推荐指数
1
解决办法
3万
查看次数

使用LLVM将x86代码重新编译为更快的x86代码

是否可以使用x86 32位代码的输入运行LLVM编译器?有一个庞大的算法,我没有源代码,我想让它在相同的硬件上运行得更快.我可以通过优化将它从x86转换回x86.

这段代码运行时间很长,所以我想对它进行静态重新编译.此外,我可以执行它的运行时配置文件并提供LLVM提示,哪些分支更可能.

原始代码是为x86 + x87编写的,不使用SSE/MMX/SSE2.重新编译后,它有机会使用x86_64和/或SSE3.此外,代码将以更优化的方式再生到硬件解码器.

谢谢.

x86 llvm recompile

16
推荐指数
1
解决办法
4690
查看次数

SQL Server:在proc定义中使用'WITH RECOMPILE'的效果?

我对WITH RECOMPILE存储过程选项的理解通常仅限于使用带有单个存储过程调用的子句作为尾随参数:

exec sp_mystoredproc 'Parameter1', 2, '1/28/2011' with recompile
Run Code Online (Sandbox Code Playgroud)

包含WITH RECOMPILE在实际proc定义中有什么影响?这会在每次执行时重新编译proc吗?或者只是下次更改过程?

例:

CREATE PROCEDURE [dbo].[sp_mystoredproc]
    (@string1           varchar(8000)
    ,@int2              int = 2
    ,@dt_begin          DATETIME
    with recompile
AS
... proc code ...
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server stored-procedures recompile

14
推荐指数
1
解决办法
2万
查看次数