Currently I have some ARMv7 assembly code extracted from iOS 5 App with the help of IDA Pro, I would like to generate a control flow graph based on those assembly code. Is anyone can recommend the tool can help me to do that? I have little knowledge of assembly, but I can learned basic instruction and concepts to build the graph
Thanks anyway!
IDA generates those internally. Switch to Graph view.
Related
Hope someone can help! I'm compiling an application with Xcode 10 + Swift 5, I've set all the options I've found online for mangle, stripping, reflection metadata, debug symbols, postprocessing etc.
Yet when I drop my compiled (release build) application onto Hopper, I can see ALL the names as I wrote them, no mangling occurring.
Can anyone help? How do I mangle these?
I think you are mixing a few concepts.
What are you trying to achieve? “Hide” your code so it will be hard to reverse engineer it? In that case you should look into what is called obfuscation. There several tools and methods for that.
https://github.com/rockbruno/swiftshield
https://medium.com/swift2go/increase-the-security-of-your-ios-app-by-obfuscating-sensitive-strings-swift-c915896711e6
https://syrion.me/blog/ios-strings-obfuscation-in-swift/
I have started using Git for my other development projects (PHP, HTML, JavaScript, etc.) and can now see how beneficial it is, however I've been unable to find anything similar for Dynamics CRM 2011/2013 as a lot of the solution development is done within the web interface.
I'm guessing this is not possible, but could someone with more experience than me please confirm this or let me know which tools I should be looking into?
Thanks
You can use the Visual Studio Developer Toolkit available in the SDK to version control your plugins and web resources initially. I'd recommend this as your first step.
If you choose to take it further you can also look at using the SolutionPackager tool to version control your solutions. This will split out your solution zip file into separate version controllable files for each component. It works best when you follow the developer workflow outlined in the linked MSDN article
I'm trying to figure out if the ASM code for the function neon_asm_convert() in the example here will run on all armv7/armv7s/arm64 processors (ie., iPhone 4S/5/5S).
Unfortunately, I don't own all of these devices, so a simple run-test is out of the question.
However, I'm developing an app (testing it only using armv7) which uses the __asm__() from the neon_asm_convert(), and I would like to find out if the ASM code will also run on arm64.
I think I read that ASM code that runs on armv7/armv7s won't run on arm64 but I can't seem to find that reference anymore.
Does anyone have any pointers that cold help me out?
Looks like it's not going to run on arm64. As this answer says:
arm64 is a new ISA. The actual NEON instructions and register layout are entirely new. You will need to re-write or adapt assembly code for the new architecture.
As Tomer said, no. arm64 is a new architecture with a new instruction syntax and register layout.
However, fast implementations of this sort of colorspace conversion are available in the SDK as part of the Accelerate.framework. Except in special circumstances, you shouldn’t need to write your own assembly code for this. Specifically, you can use the vImageConvert_AnyToAny function, which provides high-performance implementations of this and many, many other common conversions that work on all of the architectures that Apple ships (armv7, armv7s, arm64, i386, x86_64).
Right now Power Tools Beta 4 provides generation of views with a right click. This is fine as far as it goes but can cause issues because you have to remember to do it.
Is there any way that I can make it do the generation of views at compile time? (i.e. some sort of pre-build action or something?
Thanks!
You can use T4 templates for generating views I created a while ago. Take a look here for the EF5 version and here for the EF6 version. You will need to do some MSBuild work to make the T4 template run on Build. You can take a look at comments for this blog post where this is discussed a little bit.
EDIT
I also recently published Interactive Views for EF6 on NuGet so now you can have pre-generated views without having to generate them at the build time.
I am working on an academic research regarding some very long functions in the Linux kernel (link, link).
For that research, I would like to use some code flow visualization tool, that would be able to plot a graph in which each vertex is a decision point and each edge is a piece of code which runs in a consequent way.
Do you know of any good, open source project that can visualize C code?
Perhaps a tool like KCacheGrind would be of help. It generates call graphs based on actual calls and cannot pre-generate a call graph without actually running the program, which may not suit your needs, but then it again it may.
History flow's are very neat for changes/diff across multiple versions.
Codeplex has a project, Dependency Visualizer which does support C also.
Gprof2Dot can render oprofile, this would get you dynamic info also.
CodeViz also (static tool) would work.
If your using gcc, gcc-xml has an introspector plugin also todo this.
You appears to want to acquire a flowchart of C source code ("decisions", "code blocks").
Something like this C flowchart?
To do this correctly, esp. for Linux kernal code, I'd expect you to have to preprocess the code first to get rid of macros and conditionals. I would assume that GCC would construct such a graph internally and that you ought to be able to get your hands on that graph.
Doxygen does some amount of 'visualization',
but you need to work on the code a bit for it to be usable.
Another interesting thing to check would be lxr
Linux Cross Referencer is a software toolset for indexing and presenting source code repositories. LXR was initially targeted at the Linux source code, but has proved usable for a wide range of software projects. lxr.linux.no is currently running an experimental fork of the LXR software.
I can recommend Sourcetrail. Can work with a compile_commands.json. Not sure if it's still maintained, though. But it's foss and you can fork it!